最近想研究研究嵌入式系统,由于虽然是计算机专业的,但是硬件知识很差,再加上毕业若干年,全部忘光光。可以说,一切几乎是从零开始了。我还是从简单点的单片机开始学习,看了一眼,感觉比较容易些,从浅入深的学习吧。原来学东西好囫囵吞枣,学了一大堆几乎都是些皮毛,我这次写这个日志,一个是把它当做我的学习笔记,另外也是敦促我自己踏踏实实的学习。
言归正传,去年在二手市场上花了¥2.00(也够抠门的了)买来了一本《单片微型机 原理、应用与实验》,复旦大学出版社的(我就是由买书的爱好,有没有用看到就想买),就拿它当做我的课本了吧。单片机这个东西,要理论联系实际,没有实验啥都是白学!于是跑到淘宝上花了3百多RMB买来开发板一套,附赠视频教程。预览了一遍,都是简单介绍一下理论(很多东西都没有说清楚),主要就是讲解了一下C代码,一切都得靠自己,哪有那么多现成的。
教材上用的是汇编语言,写程序真是麻烦,还是用C吧,大不了C搞不定的时候嵌汇编不就完了么!
还是从51,这个虽然比较老,但是很经目前典用应仍然很广泛的这类芯片开始学习,下面是一个典型的8051引脚图。
图1.1 8051引脚图
制造工艺为HMOS(参考数电)的MSC-51单片机采用的是只引脚双列直插封装。12个时钟是一个机器周期,51的指令1~4个机器周期。
(1) 电源引脚:
Vcc接(+5v)电源
Vss接地。
(2) 时钟引脚:
XTAL1、XTAL2外接晶体振荡器。
(3) 控制引脚:
ALE/PROC:地址锁存允许信号/编程脉冲输入端(H/L)
PSEN:程序存储器输出控制(L)
EA/Vpp:内外程序存储器选择控制端/施加较高编程电压(+21V或12V)的输入端(L/H)
(4)I/O口引脚
P0口:是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。
P1口:是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。对EPROM编程和程序验证时,它接收低8位地址。
P2口:是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4个LS型的TTL负载。
P3口:是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3能驱动(吸收或输出电流)4个LS型的TTL负载。
P3.0 10 RXD(串行输入口)
P3.1 11 TXD(串行输出口)
P3.2 12 INT0(外部中断0)
P3.3 13 INT1(外部中断1)
P3.4 14 T0(定时器0外部输入)
P3.5 15 T1(定时器1外部输入)
P3.6 16 WR(外部数据存储器写脉冲)
P3.7 17 RD(外部数据存储器读脉冲)
在4个端口当中,只有P0是真正的双向口,其他都是准双向口。其他都是准双向口。
单片机控制的时候就是向4个I/O口送高低电平,另外我们需要关注的是它的存贮器,和寻址方式。
(1)程序存贮器:
可以在单片机内部或者在外部,PC就是从0地址开始执行的,此时要设置一个跳转指令,跳向用户设计的主程序。MSC-51的中断入口是固定的,它们的地址是0BH,13H,1BH,23H……。地址通常从3开始,每隔8个字节安排一个中断入口。
(2)内部RAM数据存贮器
工作寄存器区(由PSW的第三和第四位指示):在需要的时候它们也可以作为数据缓冲器。
00H~07H:工作寄存器区0(R0~R7)
08H~0FH:工作寄存器区1(R0~R7)
10H~17H:工作寄存器区2(R0~R7)
18H~1FH:工作寄存器区3(R0~R7)
位寻址区:20H~2FH,它们每一位都占据地址空间00H~7FH,用于存放程序标志、位控制信息,同样它们也可以作为一般的数据缓冲器。
堆栈和数据缓冲器:30H~7FH。进栈是,SP先加1在写入,复位后SP为07H。所以对SP初始化时SP=6FH。
(3)特殊功能寄存器(地址空间80H~FFH)
复位时寄存器的状态如下:PC(0),PSW(0),SP(07H),P0~P3(FFH),SBUF(未知)…
(4)外部RAM和I/O口
MSC-51可以扩展64KB的RAM和I/O口,它们是统一编址的。
8051中断系统
5个中断源:INT0(P3.2),INT1(P3.3)外部中断源;TF0(定时器0),TF1(定时器1),RI/TI(串口输入输出中断)三个内部中断源。
2级的中断优先级(如图所示)
与中断有关的寄存器:
TCON
IT0:外部中断INT0触发方式选择(0,电平触发L;1,跳沿触发H2L),软件设置
IE0:外部中断INT0请求标志位,CPU响应中断后硬件清零
IT1:外部中断INT0触发方式选择,与IT0类似
IE1:外部中断INT0请求标志位,,与IE0类似
TR0:与TR1类似
TF0:T0溢出请求标志位,CPU响应中断后清零,查询方式下由软件清零
TR1:T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。
TF1:T1溢出请求标志位,与TF0类似
SCON
TI:串口发送中断请求标志位,硬件自动置位,在中断服务程序中软件清零
RI:串口接受中断请求标志位,硬件自动置位,在中断服务程序中软件清零
IE
EA:中断允许控制位,1-开中断 0-关中断
ES:串口输入输出中断控制位,1-允许中断 0-禁止中断
ET1:T1中断控制位,1-允许中断 0-禁止中断
EX1:INT1中断控制位,1-允许中断 0-禁止中断
ET0:T0中断控制位,1-允许中断 0-禁止中断
EX0:INT0中断控制位,1-允许中断 0-禁止中断
IP
PS:串口输入输出中断优先级控制位,1-高 0-低
PT1:T1中断优先级控制位,1-高 0-低
PX1:INT1中断优先级控制位,1-高 0-低
PT0:T0中断优先级控制位,1-高 0-低
PX0:INT0中断优先级控制位,1-高 0-低
上一篇:51单片机自学笔记(一)——keil软件的使用
下一篇:51单片机开发之独立按键
推荐阅读最新更新时间:2024-11-13 15:53
设计资源 培训 开发板 精华推荐
- 使用 Analog Devices 的 RH118 的参考设计
- LTC2656IUFD-L12 八路、12 位数模转换器的典型应用
- 使用符合 EN55022 B 类(24Vin 和 48Vin,双输出)具有 EMC 滤波的 RP40-4812SFR DC/DC 转换器的典型应用
- AD9705-DPG2-EBZ,使用 AD9705 单通道、10 位、175 MSPS 数模转换器的评估板
- LT1308BIS8 5V 至 12V 升压转换器的典型应用电路
- LT3088HM 基准缓冲器的典型应用
- jlink_ob
- 具有延迟启动功能的 NCV2575 反相升降压稳压器的典型应用电路
- NCV2002SN1T1G方波振荡器运放典型应用电路
- #第七届立创电赛#电流计_暑期训练营
- 【实时抽奖】MPS AI电源解决方案合集,咨询抽【按摩眼罩、体脂秤、电脑支架】等好礼
- 有奖直播:新科技、新课堂、新学期~ ADI软件定义无线电ADALM-Pluto入门实战
- 看是德科技利用校准降低仪器测量不确定度、提高测试精度 直播享好礼!
- 看是德科技5G精彩专题,让你了解更多关于5G的那些事~ 下载赢好礼!
- EEWorld有奖主题征文来了~现金奖励等你来拿!
- 下载文章:“深入了解信号发生器”丰富知识赢取好礼
- 是德科技有奖直播:湾区圆桌派-穿越频谱壁垒:毫米波技术的创新之路
- 7月21日有奖直播|ADI开关/多路复用器系列产品的典型应用
- 英飞凌&英恒|如何选择一颗合适的车用MOSFET
- 有奖直播 | Keysight HDMI 2.1b 测试技术研讨会