收藏 分销(赏)

单片机定时器实验.doc

上传人:精**** 文档编号:1487327 上传时间:2024-04-29 格式:DOC 页数:10 大小:95.51KB
下载 相关 举报
单片机定时器实验.doc_第1页
第1页 / 共10页
单片机定时器实验.doc_第2页
第2页 / 共10页
单片机定时器实验.doc_第3页
第3页 / 共10页
单片机定时器实验.doc_第4页
第4页 / 共10页
单片机定时器实验.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

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

2、MHZ,则定时器每隔(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并对秒计时单元加1,20即为

4、软件计数次数。最后再把秒计时单元的值转成显示数码送显示缓冲区。定时器中断服务程序中断返回保护现场恢复现场软件计数-1=0?秒计时器加1,转成显示数据并送显示YN主程序初始化中断控制器,定时器,软件初值,显示缓冲区启动定时器调用显示程序图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 50000CSEG at

5、 0000HSJMP MAINORG 000BHLJMPP_T0ORG 0030;中断服务程序P_T0:PUSH PSWPUSH ACCPUSH DPHPUSH DPLMOV TH0,#(65535-TIMECOUNT)/256MOV TL0,#(65535-TIMECOUNT)MOD 256SETB RS0;后面所使用的R0r7DJNZ timetick,P_T02MOV timetick,#20INC second;cjne second,#60,P_T01;MOV SECOND,#0;inc minute;P_T01:MOV A,secondMOV B,#100DIV ABMOV R0,

6、#dispbuf+2MOV R0,ADEC R0MOV A,BMOV B,#10DIV ABMOV R0,ADEC R0MOV R0,BP_T02:CLR RS0POP DPLPOP DPHPOP ACCPOP PSWRETIMAIN:mov sp,#60hMOV dispbuf,#0MOV dispbuf+1,#0MOV dispbuf+2,#0MOV dispbuf+3,#0MOV dispbuf+4,#0MOV dispbuf+5,#0MOV dispbuf+6,#0MOV dispbuf+7,#0MOV TH0,#(65535-TIMECOUNT)/256;3CAFMOV TL0,#(

7、65535-TIMECOUNT)MOD 256;MOV TMOD,#01H;设定定时器的工作方式SETB ET0;允许T0溢出中断SETB TR0;启动t0SETB EA;开启总中断MAIN1:ACALL DISPSJMP MAIN1DISP:MOV R6,#8MOV R0,#dispbufCLR LEDCLKCLR LEDDINNOPDISP1:SETB LEDCLKMOV A,R0MOV DPTR,#LEDTABMOVC A,A+DPTRMOV LEDDATA,A;MOV R7,#5ACALL DelayNmsINC R0SETB LEDDINCLR LEDCLKDJNZ R6,DISP1

8、RET; 大延时DelayNms:D1:ACALL Delay1msDJNZR7,D1RET; 延时子程序Delay1ms:push 07mov R7,#250delay1:NOPNOPDJNZ R7,delay1POP 07RETLEDTAB: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;LEDDI

9、N BIT P2.3;LEDDATA DATA P0;DSEG AT 30Hdispbuf: ds 8;显示缓冲区timetick: ds 1second: ds 1minute: ds 1hour: ds 1TIMECOUNT EQU 50000CSEG at 0000HSJMP MAINORG 000BHLJMPP_T0ORG 0030H;中断服务程序P_T0:PUSH PSWPUSH ACCPUSH DPHPUSH DPLMOV TH0,#(65535-TIMECOUNT)/256MOV TL0,#(65535-TIMECOUNT)MOD 256SETB RS0;后面所使用的R0r7DJ

10、NZ timetick,P_T01MOV timetick,#20dec secondMOV A,second CJNE A,#00,P_T01MOV SECOND,#33P_T01:MOV A,secondMOV B,#100DIV ABMOV R0,#dispbuf+2MOV R0,ADEC R0MOV A,BMOV B,#10DIV ABMOV R0,ADEC R0MOV R0,BCLR RS0POP DPLPOP DPHPOP ACCPOP PSWRETIMAIN:mov sp,#60hMOV dispbuf,#0MOV dispbuf+1,#0MOV dispbuf+2,#0MOV

11、dispbuf+3,#0MOV dispbuf+4,#0MOV dispbuf+5,#0MOV dispbuf+6,#0MOV dispbuf+7,#0mov timetick,#20mov second,#33MOV TH0,#(65535-TIMECOUNT)/256;3CAFMOV TL0,#(65535-TIMECOUNT)MOD 256;MOV TMOD,#01HSETB ET0;允许T0溢出中断SETB TR0;启动t0SETB EA;开启总中断MAIN1:ACALL DISPSJMP MAIN1DISP:MOV R6,#8MOV R0,#dispbufCLR LEDCLKCLR

12、LEDDINNOPDISP1:SETB LEDCLKMOV A,R0MOV DPTR,#LEDTABMOVC A,A+DPTRMOV LEDDATA,A;MOV R7,#5ACALL DelayNmsINC R0SETB LEDDINCLR LEDCLKDJNZ R6,DISP1RET; 大延时DelayNms:D1:ACALL Delay1msDJNZR7,D1RET; 延时子程序Delay1ms:push 07mov R7,#250delay1:NOPNOPDJNZ R7,delay1POP 07RETLEDTAB:DB 03H,9FH,25H,0DH;0,1,2,3 DB 99H,49H

13、,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: ds 1hour: ds 1TIMECOUNT EQU 50000CSEG at 0000HSJMP MAINORG 000BHLJMPP_T0ORG 0030H;中断服务程序

14、P_T0:PUSH PSWPUSH ACCPUSH DPHPUSH DPLMOV TH0,#(65535-TIMECOUNT)/256MOV TL0,#(65535-TIMECOUNT)MOD 256SETB RS0;后面所使用的R0r7DJNZ timetick,P_T02MOV timetick,#20INC secondMOV A,second CJNE A,#60,P_T01;秒MOV SECOND,#0inc minute;MOV A,minute;分CJNE A,#60,P-T01INC HOUR;时MOV A,HOURCJNE A,#12,P-T01MOV HOUR,#0P_T0

15、1:MOV A,secondMOV B,#100DIV ABMOV R0,#dispbuf+2MOV R0,ADEC R0MOV A,BMOV B,#10DIV ABMOV R0,ADEC R0MOV R0,BP_T02:CLR RS0POP DPLPOP DPHPOP ACCPOP PSWRETIMAIN:mov sp,#60hMOV dispbuf,#0MOV dispbuf+1,#0MOV dispbuf+2,#0MOV dispbuf+3,#0MOV dispbuf+4,#0MOV dispbuf+5,#0MOV dispbuf+6,#0MOV dispbuf+7,#0MOV TH0,

16、#(65535-TIMECOUNT)/256;3CAFMOV TL0,#(65535-TIMECOUNT)MOD 256;MOV TMOD,#01H;设定定时器的工作方式SETB ET0;允许T0溢出中断SETB TR0;启动t0SETB EA;开启总中断MAIN1:ACALL DISPSJMP MAIN1DISP:MOV R6,#8MOV R0,#dispbufCLR LEDCLKCLR LEDDINNOPDISP1:SETB LEDCLKMOV A,R0MOV DPTR,#LEDTABMOVC A,A+DPTRMOV LEDDATA,A;MOV R7,#5ACALL DelayNmsINC

17、 R0SETB LEDDINCLR LEDCLKDJNZ R6,DISP1RET; 大延时DelayNms:D1:ACALL Delay1msDJNZR7,D1RET; 延时子程序Delay1ms:push 07mov R7,#250delay1:NOPNOPDJNZ R7,delay1POP 07RETLEDTAB: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、说说把显示程序放在主程序和定时中断程序的优缺点。答:显示程序放在主程序时会一直占用空间执行,但执行速度比较快显示程序放在中断程序是通过中断服务程序中被调用而执行的,每中断一次调用一次,故执行耗时间。

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服