几个单片机应用实例几个单片机应用实例.doc

几个单片机应用实例几个单片机应用实例.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
几个单片机应用实例几个单片机应用实例

几个单片机应用实例 例一:一个液晶显示的数字式电脑温度计 ? ? ? 液晶显示器分很多种类,按显示方式可分为段式,行点阵式和全点阵式。 段式与数码管类似,行点阵式一般是英文字符,全点阵式可显示任何信息, 如汉字、图形、图表等。这里我们介绍一种八段式四位LCD显示器,该显 示器内置驱动器,串行数据传送,使用非常方便。原理图如下图: ? ? ? ? 下图是长沙太阳人科技开发有限公司生产的4位带串行接口的液晶显示模块SMS0403 的外部引线简图: ? ? ? ? 有关该模块的具体参数,请查看该公司网站。此例中使用的温度传感器为美国DALLAS公司生产的单总线式数字温度传感器。该传感器本站有其详细的资料可供下载。此例稍加改动,即可做成温控器。 ? ? ? 下载驱动该模块的源程序LCD.PLM ? ? ? 例2: LED显示电脑电子钟 ? ? ? ? 本例介绍一种用LED制作的电脑电子钟(电脑万年历)。 原理图如下图所示: ? ? ? ? 上图中,CPU选用的是AT89C2051,时钟芯片选用的是Dallas公司的DS1302, 温度传感器选用的是Dallas公司的数字温度传感器DS1820,显示驱动芯片 选用的是德州仪器公司的TPIC6B595,也可选用与其兼容的芯片NC595或 国产的AMT9595。整个电子钟用两个键来调节时间和日期。一个是位选 键,一个是数字调节键。按一下位选键,头两位数字开始闪动,进入设 定调节状态,此时按数字调节键,当前闪动位的数字就可改变。全部参 数调节完后,五秒钟内没有任何键按下,则数字停止闪动,退出设定调 节状态。源程序清单如下(无温度显示程序): ? ? ? start:do; $include(reg51.dcl) declare (sclk,io,rst) bit at (0b3h) register; /* p33,p34,p35 */ declare (command,data,n,temp1,num) byte; declare a(9) byte; declare ab(6) byte; declare aco(11) byte constant (0fdh,60h,0dah,0f2h,66h,0b6h,0beh, 0e0h,0feh,0f6h,00h); declare week(11) byte constant (0edh,028h,0dch,7ch,39h,75h,0f5h, 2ch,0fdh,7dh,00h); declare da literally p15,clk literally p16,ale literally p17, mk literally p11,sk literally p12; clear:procedure; sclk=0;io=0;rst=0; end clear; send1302: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 send1302; wbyt1:procedure(com,dat);/*字节写过程*/ declare (com,dat) byte; call clear; rst=1; call send1302(com); call send1302(dat); call clear; end wbyt1; wbyt8:procedure;/*时钟多字节突发模式写过程*/ declare j byte; call clear; a(7)=A(6);a(6)=a(0); rst=1; call send1302(command); do j=1 to 8; call send1302(a(j)); end; call clear; end wbyt8; RBYT1:PROCEDURE; DECLARE I BYTE; CALL CLEAR; RST=1; call send1302(0c1h); IO=1; DO I=0 TO 7; SCLK=1; SCLK=0; CY=IO; N=SCR(N,1); END; A(8)=N; CALL CLEAR; END RBYT1; send595:procedure; declare k byte; do k=0 to 7; data=scr(data,1); da=cy; clk=1; clk=0; end; end send595; send595_1:procedure; declare k byte; do k=0 to 7; data=s

文档评论(0)

yxutcangfp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档