一个液晶显示地数字式电脑温度计(20201210015816)_第1页
一个液晶显示地数字式电脑温度计(20201210015816)_第2页
一个液晶显示地数字式电脑温度计(20201210015816)_第3页
一个液晶显示地数字式电脑温度计(20201210015816)_第4页
一个液晶显示地数字式电脑温度计(20201210015816)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用文案 一个液晶显示的数字式电脑温度计 文章来源:遥控网 液晶显示器分很多种类,按显示方式可分为段式,行点阵式和全点阵式。段式与数码管类似,行点阵 式一般是英文字符,全点阵式可显示任何信息,如汉字、图形、图表等。这里我们介绍一种八段式四位LCD 显示器,该显示器内置驱动器,串行数据传送,使用非常方便。原理图如下图: 下图是长沙太阳人科技开发有限公司生产的 4位带串行接口的液晶显示模块 SMS0403 的外部引线简图: 标准文档 尖该模块的具体参数,请查看该公司网站。此例中使用的温度传感器为美国 DALLAS公司生产的单总线式数字温度传感器。该传感器本站有其详细的资料可供下 载。此例稍加改动,

2、即可做成温控器。 本例介绍一种用LED制作的电脑电子钟(电脑万年历)。其制作完成装潢后的照片 如下图: 点击看大图 上图中,年、月、日及时间选用的是1.2寸共阳数码管,星期选用的是2.3寸数 码管,温度选用的是0.5寸数码管,也可根据个人的爱好选用不同规格的数码管。原 理图如下图所示: 上图中,CPU选用的是AT89C2051,时钟芯片选用的是Dallas公司的DS1302,温度 传感器选用的是Dallas公司的数字温度传感器DS1820,显示驱动芯片选用的是德州 仪器公司的TPIC6B595,也可选用与其兼容的芯片NC595或国产的AMT9595。整个 电子钟用两个键来调节时间和日期。一个是

3、位选键,一个是数字 调节键。按一下位选键,头两位数字开始闪动,进入设定调节状态,此时按数字调节 键,当前闪动位的数字就可改变。全部参数调节完后,五秒钟内没有任何键按下,则 数字停止闪动,退出设定调节状态。源程序清单如下(无温度显示程序): start:do; $in clude(reg51 .del) declare (sclk,io,rst) bit at (0b3h) register; /* p33,p34,p35 */ declare (comma nd,data ,n ,tempi, num) byte; declare a(9) byte; declare ab(6) byte;

4、declare aco(11) byte constant (0fdhJ60h,0dah,0f2h566h,0b6h,0beh, 实用文案 0e0h,0feh,0f6h,00h); declare week(11) byte constant (0edh,028h,0dch,7ch,39hJ75h,0f5h, 2ch,0fdh,7dh,00h); declare da literally p15clk literally p16,ale literally mk literally *p11 sk literally *p12; clear:procedure; sclk=0;io=0;rst

5、=0; end clear; sen d1302:procedure(comm); declare (i,comm) byte; do i=0 to 7; comm=scr(comm,1); io=cy; call time(1); sclk=0; call time(1); sclk=1; end; end sen d1302; wbytl:procedure(com3dat);/*字节写过程 */ declare (com,dat) byte; call clear; call sen d1302(0c1 h); 标准文档 rst=1; call sen d1302(com); call

6、send1302(dat); call clear; end wbytl; wbyt8:procedure;/*时钟多字节突发模式写过程*/ declare j byte; call clear; a(7)=A(6);a(6)=a(0); rst=1; call sen d1302(comma nd); do j=1 to 8; call sen d1302(a(j); end; call clear; end wbyt8; RBYT1 PROCEDURE; DECLARE I BYTE; CALL CLEAR; RST=1; 10=1; DO 1=0 TO 7; SCLK=1; SCLK=0

7、; CY=IO; N=SCR(N,1); END; A(8)=N; CALL CLEAR; END RBYT1; sen d595:procedure; declare k byte; do k=0 to 7; data=scr(data,1); da=cy; clk=1; clk=0; end; end sen d595; sen d595_1:procedure; declare k byte; do k=0 to 7; data=scr(data,1); da1=cy; clk1=1; clk1=0; 实用文案 end; end sen d595_1; rb1:procedure(abc

8、j); DECLARE (l,j,abc) BYTE; CALL CLEAR; RST=1; call sen d1302(abc); 10=1; DO l=0 TO 7; SCLK=1; SCLK=0; CY=IO; N=SCR(N,1); END; ab(j)=N; ab(j)=dec(ab(j); CALL CLEAR; end rb1; rbyt6:procedure; call rb1(0f1h,0); call rb1(0f3h,1); call rb1(0f5h,2); 标准文档 实用文案 call rb1(0f7h,3); call rb1(0f9h,4); call rb1(

9、0fbh,5); call rb1(0fdh,6); end rbyt6; wbyt6:procedure; call wbytl (8eh,0); /* write enable */ call wbytl (OfOh,ab(O); call wbytl (0f2h,ab(1); call wbytl (0f4h,ab(2); call wbytl (0f6h,ab(3); call wbytl (0f8h,ab(4); call wbytl (0fah,ab(5); call wbytl (0fch,ab(6); call wbytl (8eh,80h); /* write disable

10、 */ end wbyt6; rbyt8: procedure;/*时钟多字节突发模式读过程7 declare (i,j) byte; call clear; rst=1; io=1; call sen d1302(comma nd); 标准文档 实用文案 do j=1 to 8; do i=0 to 7; sclk=1; call time(1); sclk=0; cy=io; n=scr( n,1); end; a(j)=n; end; call clear; a(0)=a (6);a (6)=A (7); a(0)=a(0) and Ofh; if a(0)6 then a(0)=0;

11、CALL RBYT1; if (a(1)=0 and a(2)=0 and a(3)=0) then do; do num=0 to 35; call time(250); end; tempi =1; end; 标准文档 实用文案 if tempi =1 the n do; tempi =0; ab(4)=ab(4)+1; if ab(4) 99h then do; ab(4)=0; ab( 5)=ab(5)+1; if ab 99h then ab( 5)=0; end; call wbyt6; end; end rbyt8; display:procedure; /*jieya,yima

12、,fasong*/ declare (i,n,m) byte; n=a(0) and Ofh; /* send week */ data=week (n); call sen d595; n=a(4); /* send date */ n=n and Ofh; data=aco (n); n=a(4); n=shr( n, 4); data=aco (n); call sen d595; do i=1 to 3; /* send sec ond,minu te,hour */ n=a(i); n=n and Ofh; data=aco (n); call sen d595; n=a(i); n

13、=shr( n, 4); data=aco (n); call sen d595; end; do i=5 to 6; /* send mon th,year */ n=a(i); n=n and Ofh; data=aco (n); call sen d595; n=a(i); n=shr( n, 4); data=aco (n); call sen d595; 标准文档 实用文案 end; n=a(8); /* se nd 19 or 20 */ n=n and Ofh; data=aco (n); call sen d595; n制8); n二shr( n, 4); data=aco (

14、n); call sen d595; do m=0 to 5; n=ab(m); n=n and Ofh; data=aco (n); call sen d595_1; n=ab(m); n=shr( n, 4); data=aco (n); call sen d595_1; end; ale=O; ale=1; end display; beg in setprocedure; a(0)=06h;a(1)=58h;a(2)=59h;a(3)=23h; a=30h;a =06h;a =97h;a (7)=00; a(8)=19h; /* set date/time (1997,7,1,8:00

15、:00,week 3) */ call wbytl (8eh,0); /* write enable*/ call wbytl (80h,00h);/* start colock */ call wbytl (0beh,0abh);/*两个二极管与8K电阻串联充电*/ comma nd=0beh; /* write colock/date */ call wbyt8; call wbytl (0c0h,a(8); call wbytl (8eh,80h); /* set write protect bit */ end beg in set; key:procedure; declare (i

16、,time1 ,k1 ,tem) byte; call time(100); k1=7;time1=30; if mk=0 the n do; do while time10; week: if k1=0 the n do; do i=0 to 5; /* call hz(a(0); 7 end; do i=0 to 3; /* call hzO; */ end; end; tem=a(k1); if k1=7 then tem=a(8); a(k1)=0aah; if k1=7 then a(8)=0aah; call display; call time(254); call time (

17、254); a(k1)=tem; if k1=7 then a(8)=tem; call display; call time(254); call time(254); call time(254); time1=time ; if mk=O the n dojcall time(100);厂MOD KEY PROCESS*/ TIME1=30; IF MK=0 THEN DO; k1=k1-1; DO WHILE K1=0FFH; K1=7; END; END; end; IF SK=O THEN DO;CALL TIME(100); /*SET KEY PROCESS*/ TIME1=3

18、0; IF SK=0 THEN DO; tem=tem+1; tem=dec(tem); DO CASE K1; DO WHILE tem=7;广week*/ tem=O; END; DO WHILE tem=60H;/*sco nd*/ tem=0; END; DO WHILE tem=60H;/*mi nute*/ tem=0; END; DO WHILE tem=24H;/*hour7 tem=0; END; DO WHILE tem=32H;/*date*/ tem=1; END; DO WHILE tem=13H;/*mo nth*/ tem=1; END; DO while tem=100h; /* YEAR */ tem=00; END; DO WHILE TEM=21H; tem=19H; END; END; A(K1)=tem; if k 2 7 then a(8)=tem; END; END; END; END; end key; main $program: mk=1 ;sk=1 ;temp1=0; num=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论