学习笔记 从零开始学单片机(0) 系统结构

      最近想研究研究嵌入式系统,由于虽然是计算机专业的,但是硬件知识很差,再加上毕业若干年,全部忘光光。可以说,一切几乎是从零开始了。我还是从简单点的单片机开始学习,看了一眼,感觉比较容易些,从浅入深的学习吧。原来学东西好囫囵吞枣,学了一大堆几乎都是些皮毛,我这次写这个日志,一个是把它当做我的学习笔记,另外也是敦促我自己踏踏实实的学习。

      言归正传,去年在二手市场上花了¥2.00(也够抠门的了)买来了一本《单片微型机 原理、应用与实验》,复旦大学出版社的(我就是由买书的爱好,有没有用看到就想买),就拿它当做我的课本了吧。单片机这个东西,要理论联系实际,没有实验啥都是白学!于是跑到淘宝上花了3百多RMB买来开发板一套,附赠视频教程。预览了一遍,都是简单介绍一下理论(很多东西都没有说清楚),主要就是讲解了一下C代码,一切都得靠自己,哪有那么多现成的。

      教材上用的是汇编语言,写程序真是麻烦,还是用C吧,大不了C搞不定的时候嵌汇编不就完了么!

      还是从51,这个虽然比较老,但是很经目前典用应仍然很广泛的这类芯片开始学习,下面是一个典型的8051引脚图。

 

 8051引脚

 

                            图1.1 8051引脚图

      制造工艺为HMOS(参考数电)的MSC-51单片机采用的是只引脚双列直插封装。12个时钟是一个机器周期,51的指令1~4个机器周期。

1 电源引脚:

Vcc接(+5v)电源

Vss接地。

2 时钟引脚:

XTAL1XTAL2外接晶体振荡器。

3 控制引脚:

RST/Vpd:复位信号/备用电源输入(H/L

ALE/PROC:地址锁存允许信号/编程脉冲输入端(H/L

PSEN:程序存储器输出控制(L

EA/Vpp:内外程序存储器选择控制端/施加较高编程电压(+21V12V)的输入端(L/H

4I/O口引脚

 

P0口:是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8LS型的TTL负载。

P1口:是准双向8I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4LS型的TTL负载。对80528032P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。对EPROM编程和程序验证时,它接收低8位地址。

P2口:是准双向8I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4LS型的TTL负载。

P3口:是准双向8I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3能驱动(吸收或输出电流)4LS型的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是真正的双向口,其他都是准双向口。其他都是准双向口。

 

单片机控制的时候就是向4I/O口送高低电平,另外我们需要关注的是它的存贮器,和寻址方式。

1)程序存贮器:

可以在单片机内部或者在外部,PC就是从0地址开始执行的,此时要设置一个跳转指令,跳向用户设计的主程序。MSC-51的中断入口是固定的,它们的地址是0BH13H1BH23H……。地址通常从3开始,每隔8个字节安排一个中断入口。

2)内部RAM数据存贮器

工作寄存器区(由PSW的第三和第四位指示):在需要的时候它们也可以作为数据缓冲器。

00H~07H:工作寄存器区0R0~R7

08H~0FH:工作寄存器区1R0~R7

10H~17H:工作寄存器区2R0~R7

18H~1FH:工作寄存器区3R0~R7

位寻址区:20H~2FH,它们每一位都占据地址空间00H~7FH,用于存放程序标志、位控制信息,同样它们也可以作为一般的数据缓冲器。

堆栈和数据缓冲器:30H~7FH。进栈是,SP先加1在写入,复位后SP07H。所以对SP初始化时SP=6FH

3)特殊功能寄存器(地址空间80H~FFH

复位时寄存器的状态如下:PC0),PSW0),SP07H),P0~P3FFH),SBUF(未知)

4)外部RAMI/O

MSC-51可以扩展64KBRAMI/O口,它们是统一编址的。

 

 

8051中断系统

 

 8051中断系统结构图

5个中断源:INT0(P3.2),INT1(P3.3)外部中断源;TF0(定时器0),TF1(定时器1),RI/TI(串口输入输出中断)三个内部中断源。

2级的中断优先级(如图所示)

与中断有关的寄存器:

TCON

D7D6D5D4D3D2D1D0
TF1TR1TF0TR0IE1IT1IE0IT0

 

IT0:外部中断INT0触发方式选择(0,电平触发L;1,跳沿触发H2L),软件设置

IE0:外部中断INT0请求标志位,CPU响应中断后硬件清零

IT1:外部中断INT0触发方式选择,与IT0类似

IE1:外部中断INT0请求标志位,,与IE0类似

TR0:与TR1类似

TF0:T0溢出请求标志位,CPU响应中断后清零,查询方式下由软件清零

TR1:T1运行控制位。TR11时,T1开始工作;TR10时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。

TF1:T1溢出请求标志位,与TF0类似

 

SCON

D7D6D5D4D3D2D1D0
      TIRI

 

TI:串口发送中断请求标志位,硬件自动置位,在中断服务程序中软件清零

RI:串口接受中断请求标志位,硬件自动置位,在中断服务程序中软件清零

 

 

IE

D7D6D5D4D3D2D1D0
EA  ESET1EX1ET0EX0

 

EA:中断允许控制位,1-开中断 0-关中断

ES:串口输入输出中断控制位,1-允许中断 0-禁止中断

ET1:T1中断控制位,1-允许中断 0-禁止中断

EX1:INT1中断控制位,1-允许中断 0-禁止中断

ET0:T0中断控制位,1-允许中断 0-禁止中断

EX0:INT0中断控制位,1-允许中断 0-禁止中断

 

IP

D7D6D5D4D3D2D1D0
   PSPT1PX1PT0PX0

 

PS:串口输入输出中断优先级控制位,1-高 0-低

PT1:T1中断优先级控制位,1-高 0-低

PX1:INT1中断优先级控制位,1-高 0-低

PT0:T0中断优先级控制位,1-高 0-低

PX0:INT0中断优先级控制位,1-高 0-低

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值