资源描述:
《三款单片机应用实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、三款单片机应用实例
2、第1下图是长沙太阳人科技开发有限公司生产的4位带串行接口的液晶显示模块SMS0403的外部引线简图:500)this.style.ouseg(this)">有关该模块的具体参数,请查看该公司网站。此例中使用的温度传感器为美国DALLAS公司生产的单总线式数字温度传感器。该传感器本站有其详细的资料可供下载。此例稍加改动,即可做成温控器。例2:LED显示电脑电子钟本例介绍一种用LED制作的电脑电子钟(电脑万年历)。其制作完成装潢后的照片如下图:500)this.style.ouseg(this)
3、">上图中,年、月、日及时间选用的是1.2寸共阳数码管,星期选用的是2.3寸数码管,温度选用的是0.5寸数码管,也可根据个人的爱好选用不同规格的数码管。原理图如下图所示:500)this.style.ouseg(this)">上图中,CPU选用的是AT89C2051,时钟芯片选用的是Dallas公司的DS1302,温度传感器选用的是Dallas公司的数字温度传感器DS1820,显示驱动芯片选用的是德州仪器公司的TPIC6B595,也可选用与其兼容的芯片NC595或国产的AMT9595。整个电子钟用两个键来调节时
4、间和日期。一个是位选键,一个是数字调节键。按一下位选键,头两位数字开始闪动,进入设定调节状态,此时按数字调节键,当前闪动位的数字就可改变。全部参数调节完后,五秒钟内没有任何键按下,则数字停止闪动,退出设定调节状态。源程序清单如下(无温度显示程序):start:do;$include(reg51.dcl)declare(sclk,io,rst)bitat(0b3h)register;/*p33,p34,p35*/declare(mand,data,n,temp1,num)byte;declarea(9)byte;
5、declareab(6)byte;declareaco(11)byteconstant(0fdh,60h,0dah,0f2h,66h,0b6h,0beh,0e0h,0feh,0f6h,00h);declarekliterally'p11',skliterally'p12';clear:procedure;sclk=0;io=0;rst=0;endclear;send1302:procedure(m);declare(i,m)byte;doi=0to7;m=scr(m,1);io=cy;calltime(1);s
6、clk=0;calltime(1);sclk=1;end;endsend1302;and);doj=1to8;callsend1302(a(j));end;callclear;endand);io=1;doj=1to8;doi=0to7;sclk=1;calltime(1);sclk=0;cy=io;n=scr(n,1);end;a(j)=n;end;callclear;a(0)=a(6);a(6)=A(7);a(0)=a(0)and0fh;ifa(0)>6thena(0)=0;CALLRBYT1;if(
7、a(1)=0anda(2)=0anda(3)=0)thendo;donum=0to35;calltime(250);end;temp1=1;end;iftemp1=1thendo;temp1=0;ab(4)=ab(4)+1;ifab(4)>99hthendo;ab(4)=0;ab(5)=ab(5)+1;ifab(5)>99hthenab(5)=0;end;calla,fasong*/declare(i,n,m)byte;n=a(0)and0fh;/*sendinute,hour*/n=a(i);n=
8、nand0fh;data=aco(n);callsend595;n=a(i);n=shr(n,4);data=aco(n);callsend595;end;doi=5to6;/*sendmonth,year*/n=a(i);n=nand0fh;data=aco(n);callsend595;n=a(i);n=shr(n,4);data=aco(n);callsend595;end;n=a(8);/*send19or20*/n=nand0fh;data=aco(n);callsend595;n=a(8);n=sh
9、r(n,4);data=aco(n);callsend595;dom=0to5;n=ab(m);n=nand0fh;data=aco(n);callsend595_1;n=ab(m);n=shr(n,4);data=aco(n);callsend595_1;end;ale=0;ale=1;enddisplay;beginset:procedure;a(0)=06h;a(1)=58h;a