欢迎来到天天文库
浏览记录
ID:5735911
大小:27.00 KB
页数:2页
时间:2017-12-23
《定时器和计数器应用c语言程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、1、定时器应用实验单片机的P1口上接有8只LED。采用定时器T0的方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮一次。#includeChari=100;/*给变量i赋初值*/voidmain(){TMOD=0x01;/*设置定时器T0为方式1*/TH0=0xee;/*向TH0写入初值的高8位*/TL0=0x00;/*向TL0写入初值的低8位*/P1=0x00;/*P1口8只LED点亮*/EA=1;/*总中断允许*/ET0=1;/*定时器T0中断允许*/TR0=1;/*启动定时器T
2、0*/while(1);/*无穷循环,等待定时中断*/}/*以下为定时器T0的中断服务程序*/voidT0_int(void)interrupt1{TH0=0xee;/*给T0装入16位初值,计4608个数后,T0溢出*/TL0=0x00;i--;/*循环次数减1*/if(i<=0){P1=~P1;/*P1口按位取反*/i=100;/*重新设置循环次数*/}}2、计数器应用实验采用定时器T1的方式1的中断计数方式。计数输入引脚T1(P3.5)上外接开关K1,作为计数信号输入。按4次K1后,P1口的8只LED闪烁不
3、停。#includevoidDelay(unsignedinti)/*定义延时函数Delay(),i是形式参数,不能赋初值*/{unsignedintj;for(;i>0;i--)/*变量i由实际参数传入一个值,因此i不能赋初值*/for(j=0;j<125;j++){;}/*空函数*/}voidmain()/*主函数*/{TMOD=0x50;/*设置定时器T1为方式1计数*/TH1=0xff;/*向TH1写入初值的高8位*/TL1=0xfc;/*向TL1写入初值低8位*/EA=1;/*总中断允
4、许*/ET1=1;/*T1中断允许*/TR1=1;/*启动T1*/while(1);/*无穷循环,等待定时中断*/}/*以下为定时器T1的中断服务程序*/voidT1_int(void)interrupt3{for(;;)/*无限循环*/{P1=0xff;/*8位LED全灭*/Delay(500);/*延时500ms*/P1=0;/*8位LED全亮*/Delay(500);}/*延时500ms*/}
此文档下载收益归作者所有