资源描述:
《单片机应用实例课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机应用实例电子爱好者协会&通信精英俱乐部天津工业大学目录1闪烁灯模拟开关灯广告灯左移右移I/O并行口直接驱动LED显示00-99计数器目录24×4矩阵式键盘识别技术数字钟点阵式LED“0-9”数字显示两点间温度控制6位数显频率计数器10闪烁灯在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。闪烁灯#includesbitD1=P1^0;//定义一个变量D1,值是P1的第一个口voiddelay02s(void)//延
2、时0.2秒子程序2*(20*20*248)/(1000*1000){unsignedchari,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}voidmain(void){while(1){D1=0;//灯亮delay02s();D1=1;//灯灭delay02s();}}PROTEUS模拟开关灯开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。模拟开关灯#includesbitK1=P3^0;sbitL
3、1=P1^0;voidmain(void){while(1){if(K1==0)//开关闭合{L1=0;//灯亮}else{L1=1;//灯灭}}}PROTEUS广告灯左移右移做单一灯的左移右移,硬件电路如图所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。广告灯左移右移#includeunsignedchari;unsignedchartemp;unsignedchara,b;voiddelay(void){
4、unsignedcharm,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);}voidmain(void){while(1){temp=0xfe;P1=temp;delay();for(i=1;i<8;i++){a=temp<>(8-i);P1=a
5、b;delay();}for(i=1;i<8;i++){a=temp>>i;b=temp<<(8-i);P1=a
6、b;delay();}}}PROTEUSI/O并行口直接驱动LED显示如图所示,利用AT89S51单片机的P0端口的P0.0-P0.
7、7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。I/O并行口直接驱动LED显示#includeunsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedchardispcount;voiddelay02s(void){unsignedchari,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}voidmain(void)
8、{while(1){for(dispcount=0;dispcount<10;dispcount++){P0=table[dispcount];delay02s();}}}PROTEUS00-99计数器利用AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个位数显示,用单片机的P0.0-P0.7接一个共阴数码管,作为00-99计数的十位数显示;硬件电路图如图所示。00-99计数器#includeunsignedcharcode
9、table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharCount;voiddelay10ms(void){unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}voidmain(void){Count=0;P0=table[Count/10];P2=table[Count%10];while(1){if(P3_7==0){delay10ms();if(P3_7==