ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:231.40KB ,
资源ID:2435900      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2435900.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机论文.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机论文.docx

1、单片机论文单片机定时器/计数器在流水灯中的应用 班级: 学号: 姓名: 专业: 摘要:自计算机问世以来,单片机技术在社会各领域中得到了广泛的应用。在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式市发展速度,成为日后此系统中的核心部分。由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。1、基本内容利用80C51单片机芯片控制8个发光二极管和一个按钮。要求上电后,系统按照依次

2、亮一个灯的次序进行循环,当按下按钮一次时,8个发光二极管依次递增点亮,全亮后灭,10次后回到单灯循环点亮,每盏灯点亮时间为50ms,系统晶振设为12MHz。1.硬件电路原理图 基于单片机定时中断的流水灯控制系统硬件原理图(如下图所示),输入按钮通过INT0与单片机相连,输出发光二极管经晶体管驱动和单片机的P1.0相连。单片机的第31引脚EA=1,电源外接+5V。2.程序分配 按键采用INT0中断方式工作,下降沿触发,高优先级,TCON=11H,IP=01H,灯亮后的持续时间采用定时器T0工作来实现,设置T0工作在16位计数器方式。TMOD=01H,定时时间为50ms,中断10次为500ms,T

3、H0=TH0H,TL0=TL0H,用伪指令来实现,便于调节时间长短。从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则就看不到“流水”效果了。流水灯控制系

4、统硬件原理图3.程序设计TH0H EQU 6CH ;定义TH0H定时器初值高位数TH0L EQU 8BH ;定义TH0L定时初值的低位数 ORG 0000H LJMP MAIN ;转主程序 ORG 0003H SJMP AINT0 ;转外部中断0入口 ORG 000BH SJMP AT0 ;转T0中断入口 ORG 0030HAT0:PUSH PSW ;T0中断程序 PUSH ACC INC R7 MOV TH0,#TH0H MOV TL0,#TH0L SETB TR0 ;重新启动T0D定时 POP ACC POP PSWAINT0:PUSH PSW ;INT0中断程序 PUSH ACC SET

5、B 20H.0 ;置标志位20H.0 POP ACC POP PSW RETIMAIN: MOV P1,#00H ;初始化 MOV P3,#0FFH ; MOV SP,#60H ;堆栈指针 MOV 20H,#00H ; MOV IP,#01H ;设置INT0为高优先级 MOV TMOD,#01H ;设置T0为16位定时器方式 MOV TH0,#TH0H ;送定时器初值高8位 MOV TL0,#THOL ;送定时器初值低8位 MOV TCON,#11H ;INT0下降沿触发,启动T0定时 MOV IE,#10000011B ;开EA,T0和INT0中断NEXT: MOV A,#01H MOV P

6、1,A ;点亮第一个LED MOV R5,#10 ;循环流水十次计数器 MOV R7,#00 ;0.5s计数器NEXT: JNB 20H.0,NEXT2;有键按下则NEXT2 CJNE R7,#10,NEXT1 MOV R7,#00H RL A MOV P1,A SJMP NEXT1NEXT2:MOV R7,#00 MOV R6, #08 MOV A, #01H MOV P1,ANEXT3:CJNE R7,#10,NEXT3 MOV R7, #00 MOV A, P1 RL A ORL A, #01H MOV P1, A DJNE R6, NEXT3 DJNE R5, NEXT2 ;循环10次

7、未满则转NEXT2 MOV 20H, #00H SJMP NEXT END2、工作原理定时器/计数器T0和T1的实质是加1计数器,即每输入一个脉冲,计数器加1,当加到计数器全为1时,再输入一个脉冲,就使计数器归0,且计数器的溢出是TCON中的标志位TF0或TF1置1,向CPU发出中断请求。只是输入的技术脉冲来源不同,把他们分成定时与计数两种功能。作定时器时脉冲来自于内部时钟振荡器,作计数器时脉冲来自于外部引脚。在作定时器使用时,输入脉冲是由内部振荡器的输出位12分频后送来的,所以定时器可看作是对机器周期的计数器。若晶振频率为12MHz,则机器周期是1微秒,定时器每接收一个输入脉冲的时间为1微秒

8、;若晶振频率为6MHz,则机器周期是1微秒,定时器每接收一个输入脉冲的时间为2微秒。因此,要定时时间的长短,只需计算一下脉冲个数即可。在作计数器使用时,输入脉冲是由外部引脚P3.4(T0)或P3.5(T1)输入到计数器的。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1.由于检测一个从1到0的下降沿需要两个机器周期,因此要求被采样的电平至少要维持一个机器周期,以保证在给定的电平再次变化之前至少被采样一次,否则会出现漏计数现象,所以最高计数频率为晶振频率的1/24.当晶振频率为12MHz时,最高计数频率不超过500kHz,

9、即计数脉冲的周期要大于2微秒;当晶振频率为6MHz时,最高计数频率不超过250kHz,即计数脉冲的周期要大于4微秒。加1计数器实际上是由2个8位的特殊功能寄存器TH0、TL0或TH1、TL1构成的。这些寄存器用于存放定时器或计数器的初值。可以用MOV指令给计数器赋初值,即给TH0、TL0和TH1、TL1赋值。一般情况下,当计数器工作时,这些寄存器中的值随计数器脉冲做加1变化。3、结构基本结构是两个16位寄存器T0和T1,每个都是由两个独立的8位寄存器(TH0、TL0和TH1、TL1)组成,用于存放定时器/计数器的初值。TMOD是定时器/计数器工作方式寄存器,由它确定定时器/计数器的工作方式和功

10、能。TCON是定时器/计数器的控制寄存器,用于控制T0、T1的启动和停止以及设置溢出标志。 80C51单片机定时器/计数器结构原理图四、控制与实现80C51单片机定时器/计数器控制与实现由两个特殊功能寄存器TMOD和TCON完成。TMOD用于设置定时器/计数器的工作方式,TCON用于控制定时器/计数器的启动和中断申请。1.工作方式寄存器TMODTMOD是一个特殊的寄存器,用于设定T0和T1的工作方式。只能对其进行字节操作,不能位寻址。其格式如下:(1)GATE:门控位。 GATE=0时,只要软件使TR0或TR1置1就可启动定时器,与INT0或INT1引脚的电平状态没有关系。 GATE=1时,只

11、有INT0或INT1引脚为高电平且TR0或TR1由软件置1后,才能启动定时器。(2):定时或计数功能选择位。 =0时,用于定时; =1时,用于计数。(3)M1和M0位:T1和T0工作方式选择位。定时器/计数器有4种工作方式,由M1、M0进行设置,如下表所示:M1 M0工作方式功能选择 0 0方式013位定时/计数器(TH高8位加上TL低5位) 0 1方式116位定时/计数器 1 0方式28位自动重装初值定时器/计数器 1 1方式3模式3只针对T0,T0分成两个独立的8位定时/计数器,T1无模式3系统复位时,TMOD所有为清零,定时器/计数器工作在非门控方式0状态。2.控制寄存器TCONTCON

12、既参与中断控制,又参与定时控制。其低4位用于外部中断,高4位用于控制定时器/计数器的启动和中断申请。其格式如下:(1)TF1和TF0:T1和T0的溢出标志位。 当定时器/计数器产生计数溢出时,由硬件置1,向CPU发出中断申请。中断响应后,由硬件自动清零。在查询方式下,这两位作为程序的查询标志位;中断方式下,作为中断请求标志位。(2)TR1和TR0:定时器/计数器控制运行位。 TR1(TR0)=0时,定时器/计数器停止工作;TR1(TR0)=1时,启动定时器/计数器工作。TR1和TR0根据需要,由用户通过软件将其清零或置1。3.下面对上述提到的工作方式作详细说明:80C51单片机定时器/定时器T

13、0有4种工作方式(方式0、1、2、3),T1有3种工作方式(方式0、1、2)。另外,T1还可作为串行通信接口的波特率发生器,以T0为例。(1)方式0 在方式0下,T0的方式0逻辑结构图如下: 在此工作方式下,定时器中的计数器是一个13位的计数器,由TH0的8位和TL0的低5位组成,TL0高3位未用,最大计数值为。定时器/计数器初值的计算及其赋值: 用作定时器时,定时时间T=(-T0的初值)时钟周期12,则 T0的初值=-T/(时钟周期12) 将T0初值的十进制形式的数转换成二进制数,低5位TL0,TL0的高3位为任意值,一般取0,高8位送TH0,即实现了给定时器赋初值的要求。 用作计数器时,计

14、数次数值N=-T0的初值,则T0的初值=-计数初值N 将T0初值的十进制形式的数转换成二进制数,低5位TL0,TL0的高3位为任意值,一般取0,高8位送TH0,即实现了给计数器赋初值的要求。(2)方式1 在此方式下,T0构成16位定时/计数器,其中TH0作为高8位,TL0作为低8位,最大计数值位,其余同方式0类似。 定时器/计数器初值的计算及其赋值: 用作定时器时,定时时间T=(-T0的初值)时钟周期12,则T0的初值=-T/(时钟周期12),并将T0初值的十进制形式的数转换成二进制数,低8位送TL0,高8位送TL1。 用作计数器时,计数次数值N=-T0的初值,则T0的初值=-计数初值,将T0

15、初值的十进制形式的数转换成二进制数,低8位送TL0,高8位送TL1。(3)方式2 在方式2下,TH0和TL0被当作两个8位计数器,计数过程中,TH0寄存器8位初值并保持不变,由TL0进行加1计数,当TL0计数溢出时,除了可产生中断申请外,还将TH0中保存的内容向TL0重新装入,以便于从预定计数初值开始重新计数,而TH0中的初值仍然保留,以便下轮计数时再对TL0进行重装初值。方式2的最大计数值只有,T0方式2逻辑结构如图所示: 定时器/计数器初值的计算及其赋值: 用作定时器时,定时时间T=(-T0的初值)时钟周期12,则T0的初值=-T/(时钟周期12),并将T0初值的十进制形式的数转换成二进制数,分别送TL0和TH0。 用作计数器时,计数次数值N=-T0的初值,则T0的初值=-计数初值,将T0初值的十进制形式的数转换成二进制数,分别送TL0和TH0。(4)方式3 只有定时器T0有此工作方式。在方式3下,T0被拆成两个独立工作的8位计数器TL0和TH0。其中TL0用原T0的控制位、引脚和中断源,T0的方式3逻辑结构图如下所示:可见,方式3增加了一个8位定

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1