文档详情

单片机原理及应用实验---定时器.ppt

发布:2018-04-13约3.48千字共23页下载文档
文本预览下载声明
定时器实验(电子秒表) 河南师范大学物理与信息工程学院 一、实验目的 进一步学习51单片机内部计数器的使用和编程方法 进一步掌握中断程序的处理方法 了解键盘显示接口的工作原理 二、实验内容 利用定时器定时,使七段数码管输出计时值 三、实验说明 本系统键盘显示接口由8279芯片控制,占用二个端口地址:数据口FF88H,命令口FF89H,在使用键盘显示功能时,要先初始化8279。 本实验中要将计时结果送LED显示,这可通过调用下面给出的显示子程序来实现,调用过程是:先将各位记时值拆字,分别送到LED0~LED7显示缓冲区中去,然后调用显示子程序。 本实验中用定时器T0产生1秒钟基本时间单 位,本系统fosc=12MHz,当定时器T0工作 在方式1(16位)时,最大定时时间为 216*1μs=65536μs 再利用软件记数,当T0中断16次时,所用时间为 65536*16=1048576μs≈1s 因此在T0中断处理程序中,要判断中断次 数是否到16次,若不到16次,则只使中断次数加1,然后返回,若到了16次,则使电子秒表记时值加1(十进制),请参考硬件实验五有关内容 四、实验仪器和设备 PC机 WAVE软件 E2000/S仿真器+POD8X5X仿真头 MULT1A用户板 实验板 开关电源等 五、流程图及参考程序 参考程序如下: LED0 EQU 50H ;定义显示冲区 LED1 EQU 51H LED2 EQU 52H LED3 EQU 53H LED4 EQU 54H LED5 EQU 55H LED6 EQU 56H LED7 EQU57H ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T0 ; 转T0中断处理程序 ORG 0030H MAIN: NOP INIT1: MOV DPTR,#0FF89H ;INIT_8279初始化 MOV A,#00H ;MODE MOVX @DPTR,A MOV A,#2AH ;CLOCK MOVX @DPTR,A MOV TMOD,#01H ;T0初始化,方式1 MOV TH0,#00H ;T0时间常数 MOV TL0,#00H MOV TCON,#10H ; 启动T0 MOV IE,#82H ; 开T0中断 MOV 70H,#10H ;中断次数计数(65536*16=1048576μs≈1s) MOV R0,#LED0 CLR A LOOP: MOV @R0,A ;显示缓冲区清零 INC R0 CJNE R0,#LED7+1,LOOP DISP: LCALL DISPLAY ;调显示子程序,开始显示8个0 SJMP DISP ;循环调用 ORG 1000H DISPLAY: MOV DPTR,#0FF89H ;显示子程序 MOV A,#90H ;8279写显示缓冲区命令 MOVX @DPTR,A MOV R0,#8H MOV R1,#LED0 DLOOP: MOV A,@R1 MOV DPTR,#DISPTAB ;查表,得到七段字型码 MOVC A,@A+DPTR DISPD2: MOV DPTR,#0FF88H ; MOVX @DPTR,A ;显示(送8279数据口) INC R1 DJNZ R0,DLOOP RET ORG 2000H INT_T0: PUSH ACC ;T0中断处理程序开始,保护现场 PUSH PSW MOV TH0,#00H ;重新赋T0时间常数 MOV TL0,#00H MOV PSW,#10H ;选中工作寄存器2组 DJNZ 70H,FAN ;中断次数记数未减为0,即未到1秒,转 MOV R0,#LED7 ;到1秒 MOV 70H,#10H ;重新赋中断次数记数 LOP3: MOV A,@R0 ADD A,#01 ; 电子秒表记时
显示全部
相似文档