单片机技术简易秒表教程.ppt_第1页
单片机技术简易秒表教程.ppt_第2页
单片机技术简易秒表教程.ppt_第3页
单片机技术简易秒表教程.ppt_第4页
单片机技术简易秒表教程.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目4:简易秒表,任务1. 采用2位数码管显示00-99,任务1. 采用2位数码管显示00-99(老师引导学),步骤: 1.在proteus中绘制2位数码管的显示电路。 2.绘制程序流程图,在KEIL中编写相关程序。 3.把HEX文件加入到proteus去,全速运行程序。 4.利用KEIL与proteus联机仿真,单步运行程序。 5.理解程序执行过程。 6.知识点梳理。 7.学生上机练习,并准备完成任务2。,仿真较果图,任务1的程序设计流程图,开始,寄存器初始化,关闭数据码管数据端口(P0=00H),给数码管数据端口送数,打开对应数码管控制脚,数据码管个寄存器+1,数码管个数寄存器=2?,数码管控制寄存器左移1位,调用延时函数,N,Y,1. proteus标识符net快速画图: 第一步: 点击这个“LBL”按钮。 第二步: 按一下键盘的字母A键,弹出一个对话框。 将STRING修改成: net=P0#,号的意思就是变化的数字,怎样变就靠下面的两个参数,Count(初始值) 和Increament (增量)。按ok键后,移到单片机P0口,就会出现一只小手,还有一个小绿色方块,就可以添加lable了,按一下就加1。 结果就会出现,P00,P01,P02,。 2.各,任务1的知识点梳理,任务2. 采用4位数码管显示0000-FFFF(学生自己做),步骤: 一、每组学生讨论出该任务实施的方案 提示: 1.在proteus中绘制4位数码管的显示电路。 2.绘制程序流程图,在KEIL中编写相关程序。 3.把HEX文件加入到proteus去,全速运行程序。 4.利用KEIL与proteus联机仿真,单步运行程序。 二、按照方案实施 三、评估检查,任务3. 用定时器T0实现秒表(老师引导学),步骤: 1.定时器T0、T1工作原理。 2.在proteus中绘制4位数码管的显示电路。 3.绘制程序流程图,在KEIL中编写相关程序。 4.把HEX文件加入到proteus去,全速运行程序。 5.利用KEIL与proteus联机仿真,单步运行程序。 6.理解程序执行过程。 7.知识点梳理。 8.学生上机练习,并准备完成任务4。,4.1 定时器/计数器(timer/counter)的结构及工作原理,图 4.1 定时器/计数器结构框图,4.1.1 定时器/计数器(timer/counter)结构 单片机内部有两个16位的可编程定时/计数器 既可以用为定时器使用可作为计数器计外部脉冲个数 定时/计数器的工作方式 、定时时间、启动、停止都由软件指令控制 寄存器:TH0 TL0 TH1 TL1 TCON TMOD,一、 定时器/计数器的方式寄存器TMOD (Operation mode selection register),1. M1M0工作方式控制位,2. C/T 定时器方式或计数器方式选择位 若C/T=1时, 为计数器方式; C/T = 0时, 为定时器方式。 3. GATE 定时器/计数器运行门控标志位 若GATE=0时, 则只要 TR0 (或 TR1)置 1, 定时器 /计数器就被选通, 而不管 INT0 (或 INT1)的电平是高还是低。 若GATE=1时, INT0 (或INT1)引脚为高电平且TR0(或TR1 )置 1 时, 相应的定时器 /计数器才被选通工作, 这时可用于测量在INTx端出现的正脉冲的宽度。,二、 控制及标志寄存器TCON (Control register of timer/counter),TCON是一个8位寄存器。由它控制定时器的启、停、溢出、中断等。其中有些位是控制设置,有些是标志位,各位都有对应的地址,故可位寻址。,4.1.2 定时器初始化 一、定时器初始化的主要内容 1. 选择工作方式。即通过方式寄存器TMOD进行设置。 例如:欲设置T0为定时方式1,TMOD状态应置为:,T1,T0,指令:MOV TMOD,#01H;则可以使T0工作在方式1状态 若要设置T1为计数方式1,指令是怎样? 注意:TMOD不能位寻址。,2. 给定时器初赋。即把初值装入TH0、TL0或TH1、TL1。 例:T0初值为3CB0H,T1初值为00FFH。 利用指令: MOV TH0,#3CH ;送T0值 MOV TL0,#0B0H MOV TH1,#00H ;送T1值 MOV TL1,#0FFH 如果T0赋初值为78DEH,如何编写程序?,3. 启动定时器。 SETB TR0 ;启动T0 SETB TR1 ;启动T1 例:设定时器T1为方式1,初值3CB0H,程序如下: MOV TMOD,#10H MOV TH1,#3CH ;送T0值 MOV TL1,#0B0H SETB TR1 ;启动T1 如果T0赋初值为78DEH,如何编写程序?,二、定时器初值设定方法 定时时间与定时器的工作方式有关。 定时时间与初值的大小有关。 定时时间与时钟周期有关。 即使同样的时间,工作方式不同,初值则不同;时钟频率不同,即使工作方式相同,初值也不同。,一般设定初值分以下几步进行: 1.根据定长短,选择工作方式。 方式0 M=213=8192 方式1 M=216=65536 方式2 M=28=256 方式0 M=28=256 原则上,定时时间长,选用16位或13位计数器,即方式0或1。若定时间短,选用8位,即方式2或3,2.定时初值计算 设初值为X,最大计数值为M。初值X与机器周期T机、定时器T的关系如下: (M - X)T机 = T T机 = 12个时钟周期 = 12/fosc X = M T/T机 结论: (1)计数次数为(M - X),初值越大,达到满值所需计数次越小,基时钟频率一定,定时就越短。 (2)时钟频率越大,时钟周期限越短,机器周期越小,计数器加1一次时间就越短。,例:采用T1,方式1,定时50MS,计算初值。已知晶振频率fosc=12MHZ. 因为fosc=12MHZ. 所以 T机 = 1us 定时方式1时, M=216=65536 所以 X = M - T /T机 = 65536 50000/1 = 3CB0H 只要把该值装入到T1中,定时器T1溢出一次的时间为50ms,若需要继续定时,应再装入该初值。溢出信号使用TCON寄存器中的溢出标志位TF1置“1”,称硬件置位。,例1:用定时器T0编写一个1秒延时程序,使用塔灯每秒闪烁一次。 (1)选择工作方式 (2)计算机定时器的初值 (3)重复循环次数。 (4)绘制程序流程图,编写程序。 (5)绘制PROTEUS图,调试程序。,例2:用定时器T0编写一个0-9的10秒定时器,并在数码管上动态显示。 (1)选择工作方式 (2)计算机定时器的初值 (3)重复循环次数。 (4)绘制程序流程图,编写程序。 (5)绘制PROTEUS图,调试程序。,程序设计流程图(task4-3-3.asm),开始,T0工作初始化,数码管显示的初始值,数码管动态扫描初始化,使其中1数码管正常显示,数据码管个寄存器+1 改变数码管数据,数码管个数寄存器=2?,数码管控制寄存器左移1位,调用延时函数,N,Y,T0重新赋初值,T0溢出标志位TF0 = 1?,Y,到1秒否(即要循环20次),Y,循环次数寄存清0,(41H) = 9 ?,Y,(41H) = 0,返回,(41H) +1,N,N,N,例3:用定时器T0编写一个00-59的60秒定时器,并在数码管上动态显示(学生根据流程图完成程序编写)。 (1)选择工作方式 (2)计算机定时器的初值 (3)重复循环次数。 (4)绘制程序流程图,编写程序。 (5)绘制PROTEUS图,调试程序。,程序设计流程图(task4-3-4.asm),T0重新赋初值,T0溢出标志位TF0 = 1?,Y,到1秒否(即要循环20次),返回,N,N,延时函数,秒个位 (41H) = 9 ?,秒十位 (40H) =5?,个位(41H) = 0,(40H) +1,N,(41H) +1,N,十位(40H) = 0,Y,Y,4.2 中断系统及应用,4.2.1 中断系统结构, CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,MCS-51单片机的中断系统结构图,引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。,80C51的中断系统有5个中断源(8052有 6个) ,2个优先级,可实现二级中断嵌套 。,4.2.2 中断源,4.2.3 中断标志及控制寄存器 1. 中断标志寄存器TCON、SCON, IT0(TCON.0),外部中断0触发方式控制位。 当IT0=0时,为电平触发方式。 当IT0=1时,为边沿触发方式(下降沿有效)。 IE0(TCON.1),外部中断0中断请求标志位。 IT1(TCON.2),外部中断1触发方式控制位。 IE1(TCON.3),外部中断1中断请求标志位。 TF0(TCON.5),定时/计数器T0溢出中断请求标志位。 TF1(TCON.7),定时/计数器T1溢出中断请求标志位。,(2)SCON的中断标志,RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。 TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。,当两个以上中断同时发生,先响应最高优先级。 分成高优先级和低优先级。 如何确定5个中断源的优先级高、低顺序? (1)自然优先级,2. 中断优先级寄存器IP,(2) 中断优先级寄存器IP,80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的 。,PX0(IP.0),外部中断0优先级设定位; PT0(IP.1),定时/计数器T0优先级设定位; PX1(IP.2),外部中断0优先级设定位; PT1(IP.3),定时/计数器T1优先级设定位; PS (IP.4),串行口优先级设定位; PT2 (IP.5) ,定时/计数器T2优先级设定位。,PS、PT1、PX1、PT0、PX0的5位中哪个为“1”,则对应中断源为高优先级;为“0”者为低优先级。同级中断按自然优先级排队。 例:如果PT1=1,PX0=1,其余为0,则中断优先级控制寄存器为05H. 利用指令 MOV IP , #05H,就把T1、INT0设置为高优先级,其余为低优先级。 若T1、/INT0同时发生中断申请 ,按自然优先级,先响应外部中断即/INT0,后响应定时器T1的中断。,CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。,3.中断允许控制寄存器(IE),EX0(IE.0),外部中断0允许位; ET0(IE.1),定时/计数器T0中断允许位; EX1(IE.2),外部中断0允许位; ET1(IE.3),定时/计数器T1中断允许位; ES(IE.4),串行口中断允许位; EA (IE.7), CPU中断允许(总允许)位。,ES、ET1、EX1、ET0、EX0某位为“1”,则允许相应用中断源中断,为“0”则禁止该中断源中断(该中断被蔽)。 EA是总中断源的总控制位。EA=1允许有中断,EA=0禁止全部中断。 例:若允许T0中断,禁止其它中断,则中断允许控制字为82H(EA=1,ET0=1) 指令: MOV IE , 82H 另外,IE寄存器可以位寻址,也可用位寻址指令设置它。 指令: SETB EA SETB ET0,80C51单片机的中断优先级有三条原则:,CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。 正在进行的低优先级中断服务,能被高优先级中断请求所中断。,为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。,4.2.4 中断响应的条件及响应过程 1. 基本条件,首先中断源要发出中断请求,即把中断标志寄存器TCON、SCON相应用位置“1”。 中断总允许位EA=1,CPU允许响应中断申请。 IE寄存器相应中断允许位置“1”,允许该中断源发出中断申请,进行中断。 没有更高一级中断响应。 例:T0溢出时发出中断申请把TF0置1 (如果此时无更高级中断被响应,且EA=1、ET0=1 )响应中断。,2.响应过程,CPU响应中断,主程序断点地址入堆栈,中断服务程序入口地址装入PC寄存器,进入中断服务程序,执行中断服务程序的RETI指令,主程序断点地址出堆栈,并赋给PC寄存器,回到主程序,3.中断入口地址,4.采用中断时的程序结构,例如, 现有外部中断 1 提出申请, 且主程序中有R0、 R1、 DPTR、累加器A需保护, 则编制程序应为:,ORG 0000H AJMP MAIN ORG 0013H LJMP INT1 ORG 0100H MAIN: ; 主程序 ORG 1000H,INT1: PUSH ACC ; 中断服务程序 PUSH DPH PUSH DPL PUSH 0 PUSH 1 POP 1 POP 0 POP DPL POP DPH POP ACC RETI,例3:用定时器T0中断方式,编写一个00-59的60秒定时器,并在数码管上动态显示 (1)选择

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论