电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
单片机专区
【郭天祥TX-1C增强版51单片机开发板试用体验】+个人自学笔...
【郭天祥TX-1C增强版51单片机开发板试用体验】+个人自学笔...
heaton426
LV4工程师
| 2017-07-25 23:16:15
浏览量 1271
回复:0
发表新帖
本帖最后由 heaton426 于 2017-7-25 23:19 编辑
学习单片机,个人人为开始时不用过多的去深究它是什么,也就是说不用刻意的去理解它是冯诺依曼体系结构还是哈佛结构,不用去记忆它是由中央处理器、中断控制器、震荡电路、程序存储器、数据存储器、定时器、I/O接口等部分构成,也不用去记cpu由算数逻辑单元(ALU)、寄存器、控制器等构成。单片机,你把他看成和你的PC机一样就成。当然这里的一样只是原理上的类同,都是通过程序达到一定功能的电路,只不过PC相对来说功能显示的更直接,单片机的效果需要通过搭设专门的外接电路来表达。
学习单片机个人认为最重要的不是去看这个教程,那个教程,而是去仔细阅读厂家的datasheet,教程能教给你用at的51点灯,能够交给你单一的芯片,但教不会你活学活用的方法,以至于很多人学习了一遍教程感觉自己会了一些东西,然而再实际的项目里又感觉什么也不会。因为看别人的教程其实就是再吃别人嚼过的馍,虽然吃着方便,却没有嚼的过程。照着别人的东西做固然方便,但却很容易发生变个样就不会的状况。所以回过头来仔细阅读厂家的datasheet,未尝不是一个好的学习方式,能让你更直观的理解单片机。
另外说一下个人一个不一定正确也不成熟的观点,学单片机其实就是学习对寄存器的操作,单片机的各种功能的实现,其实都可看作对不同的寄存器进行配置而直接或者间接实现的。stm32需要对i/o接口进行相关配置才能工作,51看似不用,没有涉及寄存器,但i/o接口的寄存器实际也是存在的,只不过因为通常不需要配置的关系被忽略。
寄存器是什么?本质上,寄存器和ram,rom没有区别,都是存储器,但根据功能,又分为工作区寄存器与特殊功能寄存器。特殊功能寄存器(SFR)其实就是一些用来控制定时/计数器、串行I/O口等器件的独立的存储单元。
在郭老师的开发板上,用的是stc89C52RC,首先我们下载stc官网的stc89C52的datasheet,来看一看这款芯片SFR的相关内容。
该芯片的
SFR
与高
128
字节的
RAM
地址是一样的,都是
80h~ffh
,貌似地址空间是重叠的,但是再物理上是独立的,需要是通过不同的寻址方式来区分,
SFR
必须使用直接寻址指令访问。当然这些指令一般情况下大家是接触不到的,因为我们通常使用的是高级语言,这些事情编译器都替我们做了。
我们可以看一下这款芯片的
sfr
及其地址映射,操作单片机其实就是对这些
sfr
的操作,也就是通过寻址然后赋值完成
sfr
的配置,使其完成相应功能。在我们学习单片机各项功能的过程中其实就是在学习
sfr
的操作配置,学习
GPIO
,就是在学习
P0
、
P1
、
P2
、
P3
、
P4
这四个寄存器的操作,定时器、串口、中断也是在学习相关操作而已。这些
SFR
中有一部分和计算有关和实际功能无关,比如程序计数器
PC
,累加器
ACC
,
B
寄存器、程序状态字寄存器
PSW
,堆栈指针
SP
,数据指针
DPTR
等,这些寄存器我们暂时并不需要关注,因为编译器的关系,我们书写的高级语言(
C
语言)被自动翻译了,不需要像汇编一样人工去操作这些。
本帖最后由 heaton426 于 2017-7-25 23:19 编辑
学习单片机,个人人为开始时不用过多的去深究它是什么,也就是说不用刻意的去理解它是冯诺依曼体系结构还是哈佛结构,不用去记忆它是由中央处理器、中断控制器、震荡电路、程序存储器、数据存储器、定时器、I/O接口等部分构成,也不用去记cpu由算数逻辑单元(ALU)、寄存器、控制器等构成。单片机,你把他看成和你的PC机一样就成。当然这里的一样只是原理上的类同,都是通过程序达到一定功能的电路,只不过PC相对来说功能显示的更直接,单片机的效果需要通过搭设专门的外接电路来表达。
学习单片机个人认为最重要的不是去看这个教程,那个教程,而是去仔细阅读厂家的datasheet,教程能教给你用at的51点灯,能够交给你单一的芯片,但教不会你活学活用的方法,以至于很多人学习了一遍教程感觉自己会了一些东西,然而再实际的项目里又感觉什么也不会。因为看别人的教程其实就是再吃别人嚼过的馍,虽然吃着方便,却没有嚼的过程。照着别人的东西做固然方便,但却很容易发生变个样就不会的状况。所以回过头来仔细阅读厂家的datasheet,未尝不是一个好的学习方式,能让你更直观的理解单片机。
另外说一下个人一个不一定正确也不成熟的观点,学单片机其实就是学习对寄存器的操作,单片机的各种功能的实现,其实都可看作对不同的寄存器进行配置而直接或者间接实现的。stm32需要对i/o接口进行相关配置才能工作,51看似不用,没有涉及寄存器,但i/o接口的寄存器实际也是存在的,只不过因为通常不需要配置的关系被忽略。
寄存器是什么?本质上,寄存器和ram,rom没有区别,都是存储器,但根据功能,又分为工作区寄存器与特殊功能寄存器。特殊功能寄存器(SFR)其实就是一些用来控制定时/计数器、串行I/O口等器件的独立的存储单元。
在郭老师的开发板上,用的是stc89C52RC,首先我们下载stc官网的stc89C52的datasheet,来看一看这款芯片SFR的相关内容。
该芯片的
SFR
与高
128
字节的
RAM
地址是一样的,都是
80h~ffh
,貌似地址空间是重叠的,但是再物理上是独立的,需要是通过不同的寻址方式来区分,
SFR
必须使用直接寻址指令访问。当然这些指令一般情况下大家是接触不到的,因为我们通常使用的是高级语言,这些事情编译器都替我们做了。
我们可以看一下这款芯片的
sfr
及其地址映射,操作单片机其实就是对这些
sfr
的操作,也就是通过寻址然后赋值完成
sfr
的配置,使其完成相应功能。在我们学习单片机各项功能的过程中其实就是在学习
sfr
的操作配置,学习
GPIO
,就是在学习
P0
、
P1
、
P2
、
P3
、
P4
这四个寄存器的操作,定时器、串口、中断也是在学习相关操作而已。这些
SFR
中有一部分和计算有关和实际功能无关,比如程序计数器
PC
,累加器
ACC
,
B
寄存器、程序状态字寄存器
PSW
,堆栈指针
SP
,数据指针
DPTR
等,这些寄存器我们暂时并不需要关注,因为编译器的关系,我们书写的高级语言(
C
语言)被自动翻译了,不需要像汇编一样人工去操作这些。
0
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
0
×
举报
举报人:
被举报人:heaton426
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子