欢迎来到天天文库
浏览记录
ID:46812923
大小:456.00 KB
页数:17页
时间:2019-11-28
《实验:8051+Proteus定时 计数器仿真》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验:8051+Proteus定时/计数器仿真一、定时器控制单只LED/*名称:定时器控制单只LED说明:LED在定时器的中断例程控制下不断闪烁。*/#include#defineucharunsignedchar#defineuintunsignedintsbitLED=P0^0;ucharT_Count=0;//主程序voidmain(){TMOD=0x00;//定时器0工作方式0TH0=(8192-5000)/32;//5ms定时TL0=(8192-5000)%32;IE=0x82;//允许T0中断TR0=1;while(1);}//T0中断函数voidL
2、ED_Flash()interrupt1{TH0=(8192-5000)/32;//恢复初值TL0=(8192-5000)%32;if(++T_Count==100)//0.5s开关一次LED{LED=~LED;T_Count=0;}}二、TIMER0控制流水灯/*名称:TIMER0控制流水灯说明:定时器控制P0、P2口的LED滚动显示,本例未使用中断函数。*/#include#include#defineucharunsignedchar17#defineuintunsignedint//主程序voidmain(){ucharT_Coun
3、t=0;P0=0xfe;P2=0xfe;TMOD=0x01;//定时器0工作方式1TH0=(65536-40000)/256;//40ms定时TL0=(65536-40000)%256;TR0=1;//启动定时器while(1){if(TF0==1){TF0=0;TH0=(65536-40000)/256;//恢复初值TL0=(65536-40000)%256;if(++T_Count==5){P0=_crol_(P0,1);P2=_crol_(P2,1);T_Count=0;}}}}三、定时器控制4个LED滚动闪烁/*名称:定时器控制4个LED滚动闪烁说明:4只LED在定时器控
4、制下滚动闪烁。*/#include#defineucharunsignedchar#defineuintunsignedintsbitB1=P0^0;sbitG1=P0^1;sbitR1=P0^2;sbitY1=P0^3;uinti,j,k;//主程序voidmain(){i=j=k=0;17P0=0xff;TMOD=0x02;//定时器0工作方式2TH0=256-200;//200us定时TL0=256-200;IE=0x82;TR0=1;//启动定时器while(1);}//T0中断函数voidLED_Flash_and_Scroll()interrupt1
5、{if(++k<35)return;//定时中断若干次后执行闪烁k=0;switch(i){case0:B1=~B1;break;case1:G1=~G1;break;case2:R1=~R1;break;case3:Y1=~Y1;break;default:i=0;}if(++j<300)return;//每次闪烁持续一段时间j=0;P0=0xff;//关闭显示i++;//切换到下一个LED}四、T0控制LED实现二进制计数/*名称:T0控制LED实现二进制计数说明:本例对按键的计数没有使用查询法,没有使用外部中断函数,没有使用定时或计数中断函数。而是启用了计数器,连接在T0引
6、脚的按键每次按下时,会使计数寄存器的值递增,其值通过LED以二进制形式显示*/#include//主程序voidmain(){TMOD=0x05;//定时器0为计数器,工作方式1,最大计数值65535TH0=0;//初值为0TL0=0;TR0=1;//启动定时器17while(1){P1=TH0;P2=TL0;}}五、TIMER0与TIMER1控制条形LED/*名称:TIMER0与TIMER1控制条形LED说明:定时器T0定时控制上一组条形LED,滚动速度较快定时器T1定时控制下一组条形LED,滚动速度较慢*/#include#include<
7、intrins.h>#defineucharunsignedchar#defineuintunsignedintuchartc0=0,tc1=0;//主程序voidmain(){P0=0xfe;P2=0xfe;TMOD=0x11;//定时器0、定时器1均工作于方式1TH0=(65536-15000)/256;//定时器0:15msTL0=(65536-15000)%256;TH1=(65536-50000)/256;//定时器1:50msTL1=(65536-50000)%256
此文档下载收益归作者所有