单片机万年历汇编闹钟时间可调程序(LCD1602DS18B20DS1302MAX810L)_第1页
单片机万年历汇编闹钟时间可调程序(LCD1602DS18B20DS1302MAX810L)_第2页
单片机万年历汇编闹钟时间可调程序(LCD1602DS18B20DS1302MAX810L)_第3页
单片机万年历汇编闹钟时间可调程序(LCD1602DS18B20DS1302MAX810L)_第4页
单片机万年历汇编闹钟时间可调程序(LCD1602DS18B20DS1302MAX810L)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、片机万年历汇编闹钟时间可调程序(lcd1602,ds18b20,ds1302,max810l)说明:0 该程序全部是用汇编语言编写1 该程序附带有温度显示,并且带有闹铃功能2 正常时间和闹钟时间都可以用键盘设置3 该程序是使用lcd1602显示年月日,格式为time xx-xx-xx xx,由于屏幕的关系,所以就不显示周的数据,其中闹铃调整的上界面是“bell adjust”4 该程序的时间是由时钟芯片ds1302提供的,据说很精准,目前看起来确实是这样的,刚开始我是使用定时器计时的,但是不怎么精准,可能是我的汇编技术有限才导致,所以本人就把这个版本呈上,希望诸位多多斧正5 该程序的温度是通过

2、ds18b20提取的,这个模块是我从别人那里copy过来的,o(_)o,显示是肯定没问题的6 该程序也有用max810l的复位功能,但是好像这一点还没被体现出来7 烧程序我使用的是max232外加几个极性电容,还有一个rs232,不幸的是我的pcb板的rs232的封装画错啦!(_) 8 该万年历是由五个按键控制的,sw5复位,sw1调时间,调年月日时分秒,除秒可以加减调节之外其余的调节都是只能加不能减(自我觉得如果增加减的功能会觉得程序复杂,所以免!), sw4 是用来调节闹钟的时分秒的,和sw1按键不同的是时分秒都能加减,当闹钟设置的时间和正常显示时间的时分秒相同时,闹铃十秒钟,期间你可以按

3、sw4键终止响铃,sw2 和sw3 分别是用来加减时间的!9 说了这么多,最后说说自我认为的缺陷,行家应该都一眼就看出一些破绽了,那就是按键消抖的问题,这个我觉得有点麻烦所以本人就把这个问题留给阅览资料的你吧!10 废话说了这么多,最后把我的程序,orcad电路原理图,pads软件的pcb图,以及一张实物图献上,希望你能喜欢,页脚有我的email(prettyboy2009),欢迎随时交流! 程序:;* ;* rs bit p2.7;p2.5 rw bit p2.6;p2.6 e bit p2.5;p2.7 su bit p2.1;p1.6 ;1302串行口数据端 rst bit p3.7;p

4、1.5 clk bit p3.6;p1.7 alarm bit p1.2;p2.3 jian bit p1.0;p2.2 ;减 jia bit p1.3;p2.1 ;加 moshi bit p1.1;p2.0 ;模式 dq bit p1.4;p1.0 sound bit p3.4;p1.3 nian equ 7fh yue equ 7dh day equ 7ch hhh equ 7eh shi equ 7bh fen equ 7ah miao equ 79h ashi equ 78h afen equ 77h amiao equ 76h gew equ 75hcount equ 74h a_b

5、it equ 70h ;18b20 b_bit equ 6fh flag equ 6eh ds1302_addr equ 6dh ds1302_data equ 6ch org 0000h ljmp start org 0030h ;* ; 初始化开机时间 & 初始化闹铃时间 ;* start: mov dptr,#tab mov shi,#16h mov ashi,#17 mov fen,#58h mov afen,#30 mov miao,#00h mov amiao,#00 mov nian,#11h mov yue,#12h mov day,#13h mov hhh,#00h ;* ;

6、 初始化lcd1602 & 初始化ds1302 ;* mov p0,#01h ; 显示清屏 数据指针清零 所有显示清零 lcall wr_code mov p0,#02h ; 显示回车 数据指针清零 lcall wr_code mov p0,#38h ;设置16*2显示 5*7 点阵 8位数据接口 lcall wr_code mov p0,#06h ; 当写或写一个数据时地址指针自动加一 光标自动加一 lcall wr_code mov p0,#0ch ; 开显示 不显光标 0fh开显示开光标 光标闪烁 lcall wr_code lcall wr_ds1302 lcall xianshi l

7、call xian1 ;* ; 主函数(这个大家都懂的) ;* main: lcall rd_ds1302 lcall xianshi lcall key lcall akey lcall re_temp lcall conver lcall display_int ljmp bellring ;*; 读1302子程序;*rd_ds1302: mov ds1302_addr,#8dh ;读ds1302中的年 lcall read ;调用读ds1302子程序 mov nian, ds1302_data ;把读出的年数据存入年寄存器中 mov ds1302_addr,#89h ;读ds1302中的

8、月 lcall read mov yue, ds1302_data ;把读出的月数据存入月寄存器中 mov ds1302_addr,#87h ;读ds1302中的天 lcall read mov day, ds1302_data ;把读出的天数据存入天寄存器中 mov ds1302_addr,#85h ;读ds1302中的小时 lcall read mov shi, ds1302_data ;把读出的天数据存入小时寄存器中 mov ds1302_addr,#83h ;读ds1302中的分钟 lcall read mov fen, ds1302_data ;把读出的天数据存入分钟寄存器中 mov

9、 ds1302_addr,#81h ;读ds1302中的秒钟 lcall read mov miao, ds1302_data ;把读出的天数据存入秒钟寄存器中 ret ;* ;写1302子程序 ;* wr_ds1302: mov ds1302_addr, #8eh ;写ds1302控制指令 mov ds1302_data, #00h ;写数据到ds1302的8e控制寄存器中,允许对其进行写操作 lcall write ;调用写ds1302子程序 mov ds1302_addr,#8ch ;写ds1302中的年 mov ds1302_data , nian ;把写出的年数据存入年寄存器中 lc

10、all write mov ds1302_addr,#88h ;写ds1302中的月 mov ds1302_data ,yue ;把写出的月数据存入月寄存器中 lcall write mov ds1302_addr,#86h ;写ds1302中的天 mov ds1302_data ,day ;把写出的天数据存入天寄存器中 lcall write mov ds1302_addr,#84h ;写ds1302中的小时 mov ds1302_data , shi ;把写出的天数据存入小时寄存器中 lcall write mov ds1302_addr,#82h ;写ds1302中的分钟 mov ds1302_da

温馨提示

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

评论

0/150

提交评论