《单片机定时计数_习题》由会员分享,可在线阅读,更多相关《单片机定时计数_习题(10页珍藏版)》请在金锄头文库上搜索。
1、第第 6 6 章章 单片机定时计数单片机定时计数- -作业作业淮阴工学院计算机工程系淮阴工学院计算机工程系刘虎刘虎1 1、单片机用内部定时方法产生频率为、单片机用内部定时方法产生频率为 100100KHZKHZ的等宽矩形波,假定单片机的晶的等宽矩形波,假定单片机的晶 振频率为振频率为1212MHZMHZ,请编程实现。请编程实现。1 1周期周期T=10T=106 6/100*10/100*103 3=10 US=10 US使用定时计数器使用定时计数器1 1,工作方式,工作方式1 1实现。则:实现。则:(2 21616-X-X)*1 *1 US= 5 USUS= 5 USX=0FFFBHX=0FF
2、FBH 2 2、TMOD=10HTMOD=10H 3 3、编程编程ORG 0000H ORG 0000HLJMP START LJMP STARTORG 001BH ORG 001BHLJMP ET_1 LJMP ET_1ORG 0100H ORG 0100H STARTSTART:MOV TMODMOV TMOD, #10H #10HMOV TH1 MOV TH1,#0FFH#0FFHMOV TL1 MOV TL1,#0FBH#0FBHSETB EA SETB EASETB ET1 SETB ET1SETB TR1 SETB TR1AJMP $ AJMP $ET_1 ET_1 :CLR TR
3、1CLR TR1CPL P1.0 CPL P1.0MOV TH1 MOV TH1, #0FFH #0FFHMOV TL1 MOV TL1, #0FBH #0FBHSETB TR1 SETB TR1RETI RETI END END中断方式:中断方式:ORG 0000H ORG 0000HLJMP START LJMP STARTORG 0100H ORG 0100H STARTSTART:MOV TMODMOV TMOD, #10H #10HMOV TH1 MOV TH1,#0FFH#0FFHMOV TL1 MOV TL1,#0FBH#0FBHMOV IE MOV IE,#00H#00H LO
4、OP LOOP :SETB TR1SETB TR1JBC TF1, LOOP1 JBC TF1, LOOP1AJMP LOOP AJMP LOOP LOOP1: MOV TH1, #0FFHLOOP1: MOV TH1, #0FFHMOV TL1, #0FBH MOV TL1, #0FBHCLR TF1 CLR TF1CPL P1.0 CPL P1.0AJMP LOOP AJMP LOOP查询方式:查询方式:2 2、有晶振频率为、有晶振频率为6 6MHZMHZ的的MCS-51MCS-51单片机单片机 ,使用定时器,使用定时器0 0以定时方法在以定时方法在P1.0P1.0输出周期输出周期 为为4
5、00400US US ,占空比为占空比为1 1:1010的矩形脉冲,的矩形脉冲, 以定时工作方式以定时工作方式2 2编程实现。编程实现。1 1t t高高=40 =40 USUS(2 28 8-X-X)*2 *2 US= 40 US X=ECHUS= 40 US X=ECHt t低低=360 =360 USUS (2 28 8-X-X)*2 *2 US= 360 US X=D6HUS= 360 US X=D6H 2 2、TMOD=02HTMOD=02H 3 3、编程编程查询方式:查询方式:ORG 0000H ORG 0000HLJMP START LJMP STARTORG 0100H ORG
6、0100H STARTSTART:MOV TMODMOV TMOD, #02H #02HMOV TH0 MOV TH0,#0D6H#0D6HSETB P1.0SETB P1.0CLR CCLR C ;实现高低电平的转换实现高低电平的转换 LOOP LOOP :MOV TL0MOV TL0,#0ECH#0ECHMOV IE MOV IE,#00H#00HSETB TR0 SETB TR0 LOOP1: JBC TF0, LOOP2LOOP1: JBC TF0, LOOP2AJMP LOOP1 AJMP LOOP1 LOOP2: CLR TR0LOOP2: CLR TR0CPL P1.0 CPL
7、P1.0CPL C CPL CJC LOOP1 JC LOOP1AJMP LOOP AJMP LOOP ENDEND3 3、以定时器、以定时器/ /计数器计数器1 1进行外部事件计数。每进行外部事件计数。每 计数计数10001000个脉冲后,定时器个脉冲后,定时器/ /计数器计数器1 1转为定转为定 时工作方式,定时时工作方式,定时1010MSMS后,后, 又转为计数方又转为计数方 式,如此循环不止。假定单片机晶振频率为式,如此循环不止。假定单片机晶振频率为 6 6MHZMHZ,请使用工作方式请使用工作方式1 1编程实现。编程实现。1 1 TMODTMOD计数计数=50=50HH 2 2、TM
8、ODTMOD定时定时=10=10H H (2 21616-X-X)*2 *2 US= 10000 US X=EC78HUS= 10000 US X=EC78H 3 3、编程编程ORG 0000H ORG 0000HLJMP START LJMP STARTORG 0100H ORG 0100H STARTSTART:MOV TMODMOV TMOD, #50H #50HMOV TH1 MOV TH1,#00H#00HMOV TL1 MOV TL1,#00H#00HSETB ET1 SETB ET1SETB TR1 SETB TR1 LOOPLOOP:MOV AMOV A, TL1 TL1CJN
9、E A CJNE A, #E8H #E8H, LOOP LOOPMOV A MOV A,TH1TH1CJNE A CJNE A, #03H #03H, LOOP LOOPCLR TR1 CLR TR1MOV TMOD MOV TMOD,#10H#10HMOV TH1 MOV TH1, #0ECH #0ECHMOV TL1 MOV TL1, #78H #78HSETB TR1 SETB TR1 LOOP1 LOOP1 :JBC TF1 JBC TF1 ,LOOP2LOOP2AJMP LOOP AJMP LOOPLOOP2LOOP2:AJMP STARTAJMP STARTEND END4 4、假
10、设单片机晶振频率为、假设单片机晶振频率为6 6MHZ,MHZ,要求每隔要求每隔 100100MS,MS,从外部从外部RAMRAM以以DATADATA开始的数据区传开始的数据区传 送一个数据到送一个数据到P1P1输出输出, ,共传送共传送100100个数据。要个数据。要 求以两个定时器串行定时方法实现。求以两个定时器串行定时方法实现。1 1 TMODTMOD=15=15H; H; T1T1定时定时1 1,T0T0计数计数1 1 2 2、T1T1:(2 21616-X-X)*2 *2 US= 10000 US X=EC78HUS= 10000 US X=EC78H T0T0: 2 21616-X=
11、 100 -X= 100 X=FF9CH X=FF9CH 3 3、编程编程ORG 0000H ORG 0000HLJMP START LJMP STARTORG 000BH ORG 000BHLJMP ET_0 LJMP ET_0ORG 0100H ORG 0100H STARTSTART:MOV TMODMOV TMOD, #15H #15HMOV TH1 MOV TH1,#3CH#3CHMOV TL1 MOV TL1,#0B0H#0B0HMOV TH0 MOV TH0,#0FFH#0FFHMOV TL0 MOV TL0,#09CH#09CHMOV DPTR, #DATA MOV DPTR, #DATASETB EA SETB EASETB ET0 SETB ET0SETB IT0 SETB IT0SETB TR0 SETB TR0LOOP LOOP :SETB TR1SETB TR1JBC TF1,