资源描述:
《单片机实验五 定时器计数器实验课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五、定时器计数器实验一、实验目的:1、掌握单片机定时器的工作原理,体会定时器的使用特点;2、学习8031内部定时/计数器的使用和编程方法;3、进一步掌握中断的技术编程方法和特点;4、体会定时器中断提高键盘扫描和动态显示CPU效率。二、实验仪器:1、C51实验开发板1块2、直流稳压电源1台3、仿真器(EASYPROBE)1只4、PC机1台5、示波器1台三、实验内容:1、在P1.0脚上输出2KHz的方波:2KHz的方波需要定时器产生0.25ms连续的定时信号,可选用T0方式2,自动装入参数的8位定时方式。参考程序:ORG0000HA
2、JMPSTARTORG000BH;T0中断入口地CPLP1.0RETIORG0100HSTART:MOVSP,#2FHMOVTMOD,#02H;置T0为方式2MOVTL0,#1AH;延时0.25mS的定时器初始值MOVTH0,#1AHSETBPT0SETBTR0SETBET0SETBEA;开中断SJMP$2、秒计数显示输出:秒计数可用20次50ms的计数溢出来实现。50ms的计数可选用T0方式1,16位定时方式。参考程序:ORG0000HAJMPSTARTORG000BH;T0中断入口地址LJMPINT0PRETIORG0100HS
3、TART:MOVSP,#2FHMOVTMOD,#01H;置T0为方式1MOVTL0,#04H;延时50mS的定时器初始值MOVTH0,#4CHSETBPT0SETBTR0SETBET0SETBEA;开中断MOVR7,#20;20次计数溢出计数器MOVR6,#00;秒计数器MOVDPTR,#TAB;显示秒计数LOOP:MOVA,R6;显示高4位SWAPAANLA,#0FHMOVCA,@A+DPTR;读字段码MOVP2,#60H;字段码地址MOVX@R0,A;输出字段码MOVA,#0FDH;3号灯MOVP2,#80H;灯位控制地址MOV
4、X@R0,A;输出灯位控制LCALLDELAY;延时MOVA,R6;显示低4位ANLA,#0FHMOVCA,@A+DPTR;读字段码MOVP2,#60H;字段码地址MOVX@R0,A;输出字段码MOVA,#0FEH;4号灯MOVP2,#80H;灯位控制地址MOVX@R0,A;输出灯位控制LCALLDELAY;延时SJMPLOOP;中断服务程序INT0P:MOVTL0,#04H;延时50mS的定时器初始值MOVTH0,#4CHDJNZR7,SKIPINCR6MOVR7,#20SKIP:RETIDELAY:…TAB:DB3FH,06H,
5、5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71H;“0”-“F”的字段码3、定时器实验:由8051内部定时器1,按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。要求编写程序模拟一时序控制装置。开机后第一秒钟L1、L3亮,第二秒钟L2、L4亮,第三秒钟L5、L7亮,第四秒钟L6、L8亮,第五秒钟L1、L3、L5、L7亮,第六秒钟L2、L4、L6、L8亮,第七秒钟全亮,第八秒钟全灭,以后又从头开始,一直循
6、环下去。P1.0~P1.7接DL1~DL8,运行程序T1LED,观察现象。ORG0000HAJMPSTARTORG001BH;T1中断入口地AJMPINT_T1ORG0100HSTART:MOVSP,#60HMOVTMOD,#10H;置T1为方式1MOVTL1,#00H;延时50mS的时间常数MOVTH1,#4CHMOVR0,#00H;0~7循环MOVR1,#20;20个中断输出一次SETBTR1;启动定时器SETBET1SETBEA;开中断SJMP$INT_T1:;T1中断服务子程序PUSHACC;保护现场PUSHPSWPUSHD
7、PLPUSHDPHCLRTR1;停止计数MOVTL1,#00H;延时50mS常数MOVTH1,#4CHSETBTR1;开始计数DJNZR1,EXITMOVR1,#20;延时一秒的常数MOVDPTR,#DATA;置常数表基址MOVA,R0;置常数表偏移量MOVCA,@A+DPTR;读常数表MOVP1,A;送P1口显示INCR0ANLR0,#07HEXIT:POPDPH;恢复现场POPDPLPOPPSWPOPACCRETI;LED显示常数表DATA:DB05H,0AH,50H,0A0HDB55H,0AAH,0FFH,0HEND4、修改程
8、序,使延时常数由50ms变为10ms。5、计数器实验:(5及后面的内容仅供参考,不做)8051的T0工作在计数器模式和方式1,对P3.4引脚的输入脉冲进行计数,T1作定时器,每50ms中断一次,并把P3.4在50ms的脉冲数量在LED