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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机定时器实验.docx

1、单片机定时器实验实验三 单片机内部定时器应用实验目的1、理解单片机内部定时器的工作原理及使用方法2、了解单片机定时中断程序的编写和调试方法3、掌握定时器的基本使用方法实验仪器单片机开发板、万利仿真机、稳压电源、计算机实验原理1、单片机定时器的工原理MCS-51 单片机内部有两个16 位可编程的定时器/计数器T0 和T1。它们即可用作定时器方式,又可用作计数器方式。其中T0 由TH0 和TL0 计数器构成;T1 由TH1 和TL1 计数器构成。工作于定时器方式时,通过对机器周期(新型51单片机可以对振荡周期计数)的计数,即每一个机器周期定时器加1,来实现定时。故系统晶振频率直接影响定时时间。如果

2、晶振频率为12MHZ,则定时器每隔(1/12MHZ)12=1us 加1。工作于计数器方式时,对P3.4 或P3.5 管脚的负跳变(10)计数。它在每个机器周期的S5P2 时采样外部输入,当采样值在这个机器周期为高,在下一个机器周期为低时,计数器加1。因此需要两个机器周期来识别一个有效跳变,故最高计数频率为晶振频率的1/24。特殊功能寄存器TMOD 用于定时器/计数器的方式控制。高4 位用于设置T1,低4 位用于设置T0。如图4-7所示。图4-7 定时器模式控制字格式TCON 寄存器用于定时器的计数控制和中断标志。如图4-8所示。图4-8 定时控制寄存器数据格式编写程序控制这两个寄存器就可以控制

3、定时器的运行方式。单片机内部定时器/计数器的使用,简而概之:(1)如需用中断,则将EA和相关中断控制位置1;(2)根据需要设置工作方式,即对TMOD设置;(3)然后启动计数,即对TR0或TR1置1。(4)如使用中断,则计数溢出后硬件会自动转入中断入口地址;如使用查询,则必须对溢出中断标志位TF0或TF1进行判断。2、用定时器编写一个秒计时器假设系统使用的晶振频率为12MHZ,即每个机器周期为1us。如使用方式1,则定时时间最长是2161us=65536us=65.536ms,小于1s。故必须设置一个软件计数单元,即假设定时器定时中断时间为50ms,则必须定时中断20次才达到1s并对秒计时单元加

4、1,20即为软件计数次数。最后再把秒计时单元的值转成显示数码送显示缓冲区。图4-9 定时器应用程序流程图实验内容1、单片机定时器秒计时器LEDCLK BIT P3.4;LEDDIN BIT P2.3;LEDDATA DATA P0; DSEG AT 30Hdispbuf: ds 8;显示缓冲区timetick: ds 1second: ds 1minute: ds 1hour: ds 1TIMECOUNT EQU 50000 CSEG at 0000H SJMP MAIN ORG 000BH LJMP P_T0 ORG 0030;中断服务程序P_T0: PUSH PSW PUSH ACC PU

5、SH DPH PUSH DPL MOV TH0,#(65535-TIMECOUNT)/256 MOV TL0,#(65535-TIMECOUNT)MOD 256 SETB RS0;后面所使用的R0r7 DJNZ timetick,P_T02 MOV timetick,#20 INC second; cjne second,#60,P_T01; MOV SECOND,#0; inc minute;P_T01: MOV A,second MOV B,#100 DIV AB MOV R0,#dispbuf+2 MOV R0,A DEC R0 MOV A,B MOV B,#10 DIV AB MOV

6、R0,A DEC R0 MOV R0,BP_T02: CLR RS0 POP DPL POP DPH POP ACC POP PSW RETIMAIN: mov sp,#60h MOV dispbuf,#0 MOV dispbuf+1,#0 MOV dispbuf+2,#0 MOV dispbuf+3,#0 MOV dispbuf+4,#0 MOV dispbuf+5,#0 MOV dispbuf+6,#0 MOV dispbuf+7,#0 MOV TH0,#(65535-TIMECOUNT)/256;3CAF MOV TL0,#(65535-TIMECOUNT)MOD 256; MOV TM

7、OD,#01H;设定定时器的工作方式 SETB ET0;允许T0溢出中断 SETB TR0;启动t0 SETB EA;开启总中断MAIN1: ACALL DISP SJMP MAIN1DISP: MOV R6,#8 MOV R0,#dispbuf CLR LEDCLK CLR LEDDIN NOPDISP1: SETB LEDCLK MOV A,R0 MOV DPTR,#LEDTAB MOVC A,A+DPTR MOV LEDDATA,A; MOV R7,#5 ACALL DelayNms INC R0 SETB LEDDIN CLR LEDCLK DJNZ R6,DISP1 RET; 大延时

8、DelayNms:D1: ACALL Delay1ms DJNZ R7,D1 RET; 延时子程序Delay1ms: push 07 mov R7,#250delay1: NOP NOP DJNZ R7,delay1 POP 07 RETLEDTAB:DB 03H,9FH,25H,0DH;0,1,2,3 DB 99H,49H,41H,1FH;4,5,6,7 DB 01H,09H,11H,0C1H;8,9,A,B DB 63H,85H,61H,71H;C,D,E,FEND2、修改上面的程序,设计一个N秒倒计时器(N为学号后两位)。倒计时时间到后,重新开始计时。LEDCLK BIT P3.4;LE

9、DDIN BIT P2.3;LEDDATA DATA P0; DSEG AT 30Hdispbuf: ds 8;显示缓冲区timetick: ds 1second: ds 1minute: ds 1hour: ds 1TIMECOUNT EQU 50000 CSEG at 0000H SJMP MAIN ORG 000BH LJMP P_T0 ORG 0030H;中断服务程序P_T0: PUSH PSW PUSH ACC PUSH DPH PUSH DPL MOV TH0,#(65535-TIMECOUNT)/256 MOV TL0,#(65535-TIMECOUNT)MOD 256 SETB

10、 RS0;后面所使用的R0r7 DJNZ timetick,P_T01 MOV timetick,#20 dec secondMOV A,second CJNE A,#00,P_T01 MOV SECOND,#33P_T01: MOV A,second MOV B,#100 DIV AB MOV R0,#dispbuf+2 MOV R0,A DEC R0 MOV A,B MOV B,#10 DIV AB MOV R0,A DEC R0 MOV R0,B CLR RS0 POP DPL POP DPH POP ACC POP PSW RETIMAIN: mov sp,#60h MOV dispb

11、uf,#0 MOV dispbuf+1,#0 MOV dispbuf+2,#0 MOV dispbuf+3,#0 MOV dispbuf+4,#0 MOV dispbuf+5,#0 MOV dispbuf+6,#0 MOV dispbuf+7,#0 mov timetick,#20 mov second,#33 MOV TH0,#(65535-TIMECOUNT)/256;3CAF MOV TL0,#(65535-TIMECOUNT)MOD 256; MOV TMOD,#01H SETB ET0;允许T0溢出中断 SETB TR0;启动t0 SETB EA;开启总中断MAIN1: ACALL

12、DISP SJMP MAIN1DISP: MOV R6,#8 MOV R0,#dispbuf CLR LEDCLK CLR LEDDIN NOPDISP1: SETB LEDCLK MOV A,R0 MOV DPTR,#LEDTAB MOVC A,A+DPTR MOV LEDDATA,A; MOV R7,#5 ACALL DelayNms INC R0 SETB LEDDIN CLR LEDCLK DJNZ R6,DISP1 RET; 大延时DelayNms:D1: ACALL Delay1ms DJNZ R7,D1 RET; 延时子程序Delay1ms: push 07 mov R7,#25

13、0delay1: NOP NOP DJNZ R7,delay1 POP 07 RETLEDTAB: DB 03H,9FH,25H,0DH;0,1,2,3 DB 99H,49H,41H,1FH;4,5,6,7 DB 01H,09H,11H,0C1H;8,9,A,B DB 63H,85H,61H,71H;C,D,E,FEND思考题1、在实验程序基础上编写一个24小时计时时钟。LEDCLK BIT P3.4;LEDDIN BIT P2.3;LEDDATA DATA P0;DSEG AT 30Hdispbuf: ds 8;显示缓冲区timetick: ds 1second: ds 1minute: d

14、s 1hour: ds 1TIMECOUNT EQU 50000 CSEG at 0000H SJMP MAIN ORG 000BH LJMP P_T0 ORG 0030H;中断服务程序P_T0: PUSH PSW PUSH ACC PUSH DPH PUSH DPL MOV TH0,#(65535-TIMECOUNT)/256 MOV TL0,#(65535-TIMECOUNT)MOD 256 SETB RS0;后面所使用的R0r7 DJNZ timetick,P_T02 MOV timetick,#20 INC second MOV A,second CJNE A,#60,P_T01;秒

15、MOV SECOND,#0 inc minute;MOV A,minute;分CJNE A,#60,P-T01INC HOUR;时MOV A,HOURCJNE A,#12,P-T01MOV HOUR,#0P_T01: MOV A,second MOV B,#100 DIV AB MOV R0,#dispbuf+2 MOV R0,A DEC R0 MOV A,B MOV B,#10 DIV AB MOV R0,A DEC R0 MOV R0,BP_T02: CLR RS0 POP DPL POP DPH POP ACC POP PSW RETIMAIN: mov sp,#60h MOV disp

16、buf,#0 MOV dispbuf+1,#0 MOV dispbuf+2,#0 MOV dispbuf+3,#0 MOV dispbuf+4,#0 MOV dispbuf+5,#0 MOV dispbuf+6,#0 MOV dispbuf+7,#0 MOV TH0,#(65535-TIMECOUNT)/256;3CAF MOV TL0,#(65535-TIMECOUNT)MOD 256; MOV TMOD,#01H;设定定时器的工作方式 SETB ET0;允许T0溢出中断 SETB TR0;启动t0 SETB EA;开启总中断MAIN1: ACALL DISP SJMP MAIN1DISP:

17、 MOV R6,#8 MOV R0,#dispbuf CLR LEDCLK CLR LEDDIN NOPDISP1: SETB LEDCLK MOV A,R0 MOV DPTR,#LEDTAB MOVC A,A+DPTR MOV LEDDATA,A; MOV R7,#5 ACALL DelayNms INC R0 SETB LEDDIN CLR LEDCLK DJNZ R6,DISP1 RET; 大延时DelayNms:D1: ACALL Delay1ms DJNZ R7,D1 RET; 延时子程序Delay1ms: push 07 mov R7,#250delay1: NOP NOP DJNZ R7,delay1 POP 07 RETLEDTAB: DB 03H,9FH,25H,0DH;0,1,2,3 DB 99H,49H,41H,1FH;4,5,6,7 DB 01H,09H,11H,0C1H;8,9,A,B DB 63H,85H,61H,71H;C,D,E,FEND2、说说把显示程序放在主程序和定时中断程序的优缺点。答:显示程序放在主程序时会一直占用空间执行,但执行速度比较快显示程序放在中断程序是通过中断服务程序中被调用而执行的,每中断一次调用一次,故执行耗时间。

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

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