文档详情

8051单片机实验课件.ppt

发布:2017-08-20约9.64千字共51页下载文档
文本预览下载声明
电子工程设计中心 8051单片机试验指导 定时器/计数器操作程序调试练习 定时器/计数器工作原理 OSC ÷12 计数器 TF T0(P3.4) TR0 GATE P3.2 中断 计数器溢出,TF=1发出中断申请 M0 M1 GATE M0 M1 GATE TMOD D0 D1 D2 D3 D4 D5 D6 D7 寄存器 定时/计数器1 定时/计数器0 ① 定时/计数选择 计数器 定时器 ② 工作方式选择 方式1 方式2 M1/M0 = 01 M1/M0 = 10 ③ 控制方式选择 TRx单独控制 TRx与INTx共同控制 GATE = 0 GATE = 1 操作方法 X X X X X X X X THx D0 D1 D2 D3 D4 D5 D6 D7 寄存器 X X X X X X X X TLx D0 D1 D2 D3 D4 D5 D6 D7 寄存器 ④ 计数值装载 TR0 TF0 TR1 TF1 TCON D0 D1 D2 D3 D4 D5 D6 D7 寄存器 ⑤ 启动控制 例6:计数器程序调试 外部计数脉冲输入电路 DP2 EQU 00000H DP_L EQU 30H ;低位数值暂存器 DP_H EQU 31H ;高位数值暂存器 MAIN: MOV TMOD, ;C/T0,C/T1工作在方式2 MOV A,#0 ;显示初值为0 MOV DP_L,A MOV DP_H,A CALL DISPLAY ;调用显示子程序显示初值0 MOV TL0,#0 ;C/T0置初值0 MOV TL1,#0 ;C/T1置初值0 SETB TR1 ;启动计数器1 LOOP: MOV A,TL0 ;读计数器0的计数值 CJNE A,#10H,L1 ;如果A中为16时 MOV TL0,#0 ;计数器0清0 L1: MOV DP_H,A ;在DS2显示计数器0的计数值 MOV A,TL1 ;读计数器1的计数值 CJNE A,#10H,L2 ;如果A中为16时 MOV TL1,#0 ;计数器1清0 程序清单 L2: MOV DP_L,A ;在DS2显示计数器0的计数值 CALL DISPLAY ;调用显示子程序显示计数值 SJMP LOOP ;无限次循环 DISPLAY: MOV A,DP_L ;读低位显示值 CALL DECODE ;调用换码子程序 MOV DPTR,#DP2 ;显示段码送DS2 MOVX @DPTR,A MOV A,DP_H ;读高位显示值 CALL DECODE ;调用换码子程序 MOV P1,A ;显示段码送DS1 RET DECODE: MOV DPTR,#TAB MOVC A,@A+DPTR RET DELAY: MOV R5,#80H D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ; 段码0-7 DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH ; 段码8-F END 例7:定时器程序调试 DS1 EQU P1 ;数码管1(DS1)访问地址 DS2 EQU 0H ;数码管2(DS2)访问地址 US100 EQU 30H ;100uS 软件计数器地址 MS1 EQU 31H ;1MS 软件计数器地址 MS100 EQU 32H ;100MS 软件计数器地址 S1 EQU 33H ;1S 软件计数器地址 ORG 0000H AJMP MAIN ORG 000BH ;定时器/计数器0中断服务程序入口地址 AJMP TIMER MAIN: MOV A,#0FFH ;清除显示 MOV DS1,A MOV DPTR,#DS2 MOVX @DPTR,A CLR A ;软件计数器清0 MOV US100,A MOV MS1,A MOV MS100,A MOV S1,A MOV TMOD,#02H ;定时器/计数器0 工作于方式二 MOV TL0,#155 ;定时器/计数器0 100uS计数值 MOV
显示全部
相似文档