实现日期时间温度的显示万年历.pdf





《实现日期时间温度的显示万年历.pdf》由会员分享,可在线阅读,更多相关《实现日期时间温度的显示万年历.pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、RP1;温 度 值 存 放 单 元 TEMP_ZH EQU 24H;实 时 温 度 值 存 放 单 元 TEMPL EQU 25H;低 温 度 值 存 放 单 元 TEMPH EQU 26H;高 温 度 值 存 放 单 元 TEM PTH EQU 27H;高 温 报 警 值 存 放 单 元 TEMP_TL EQU 28H;低 温 报 警 值 存 放 单 元 TEMPHC EQU 29H;存 十 位 数 B C D码 TEMPLC EQU 2AH;存 个 位 数 BCD码=按 键 输 入 引 脚 定 义=SPK EQU P3.5K1 EQU P3.2K2 EQU P3.3K3 EQU P3.6K
2、4 EQU P3.7RELAY EQU 2FH=D S 1 3 0 2通 信 引 脚 定 义=RST BIT pl.6SCLK BIT pl.410 BIT p l.5定 义 数 据 存 储 地 址=:DS1302_ADDR DATA 30H;地 址 寄 存 器 DS1302 DATA DATA 31H;数 据 寄 存 器 TIME_YEAR DATA 32H;年 寄 存 器 TIM EM O N T DATA 33H;月 寄 存 器 TIME_DAY DATA 34H;天 寄 存 器 W EEKDATA DATA 35H;星 期 寄 存 器 HOUR DATA 36H;小 忖 寄 存 器 M
3、INTUE DATA 37H;分 钟 寄 存 器 SECOND DATA 38H;秒 钟 寄 存 器;=显 示 数 据 缓 冲 地 址=YEAR_HBUF DATA 40HY EA R LB U F DATA 41HMONT_HBUF DATA 42HM O N TLBU F DATA 43HD A Y H B U F DATA 44HD A Y LBU F DATA 45HW EEK H B U F DATA 46HW EEK LBU F DATA 47HHOUR_HBUF DATA 48HHOUR_LBUF DATA 49HMINTUE HBUF DATA 4AHMINTUE_LBUF D
4、ATA 4BHSECOND HBUF DATA 4CHSECOND LBUF DATA 4DHX EQU 2FH;L C D地 址 变 量;L C D控 制 引 脚 RS EQU P2.4RW EQU P2.5E EQU P2.6FLAG EQU 20H.0K EY U D EQU 20H.1DQ EQU p2.7主 程 序=MAIN:ACALLACALLTOOP:ACALLACALLSET_LCDSET_1302RESET_1820TEMP_BJACALL MEU OK;LCD初 始 化 设 置 子 程 序;1302初 始 化;调 用 18B20复 位 子 程 序;显 示 温 度 标 记;调
5、 用 显 示“OK”信 息 子 程 序 TOOP2:ACALL RETEM PACALL SET_DATAACALL TEM PBJLCALL RD_DS1302LCALL DATA_BUFLCALL DISPLAYSJMP TOOP2;调 用 读 取 温 度 数 据 子 程 序;调 用 处 理 显 示 温 度 数 据 子 程 序;显 示 温 度 标 记 子 程 序;循 环 读 取 温 度 数 据 子 程 序 RE TEMP:ACALL RESET 1820;18B20复 位 子 程 序 MOV A,#0CCHACALL WRITE_1820MOV A,#44HACALL W RITE1820
6、ACALL RESET_1820MOV A,#0CCHACALL WRITE_1820MOV A,#0BEHACALL WRITE_1820ACALL READ1820RET;跳 过 RO M匹 配;写 入 子 程 序;发 出 温 度 转 换 命 令;调 写 入 子 程 序;调 复 位 子 程 序;跳 过 RO M匹 配;写 入 子 程 序;发 出 读 温 度 命 令;写 入 子 程 序;调 用 读 取 子 程 序 温 度 数 据 处 理 显 示 子 程 序 SETDATA:ACALL CONVTEMPACALL DISP_BCDACALL CONVRET;处 理 温 度 B C D 码 子
7、程 序;显 示 区 B C D 码 温 度 值 刷 新 子 程 序;LCD显 示 子 程 序 处 理 温 度 B C D码 子 程 序 CONV TEMP:JZ TCI;温 度 零 转 T C I处 CLR C;C=0MOV A,TEMPHANL A,#80H;判 温 度 是 否 零 下 MOV A,TEMPL;二 进 制 数 求 补(双 字 节)CPL A;取 反 加 1ADD A,#01HMOV TEMPL,AMOV A,TEMPHCPL AADDC A,#00HMOV TEMPH,AJMP TC2TCI:MOV TEMPHC,#OAHMOV DPTR,#DOTTABTC2:MOV A,T
8、EMPHCSWAP AMOV TEMPHC,AMOV A,TEMPLANL A,#0FH;高、低 位 交 换;乘 0.0625MOVC A,A+DPTRMOV TEMPLC,A;TEMPLC LOW=J、数 部 分 BCDMOV A,TEMPLANL A,#0F0HSWAP AMOV TEMPL,AMOV A,TEMPHANL A,#0FHSWAP AORL A,TEMPL;整 数 部 分;取 出 高 四 位;高、低 位 交 换;取 出 低 四 位;高、低 位 交 换;重 新 组 合 MOV TEMP_ZH,ALCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP A
9、ORL A,TEMPHCMOV TEMPHC,AMOV A,TEMPLANL A,#0FHSWAP AORL A,TEMPLCMOV TEMPLC,A;取 出 高 四 位;高、低 位 交 换;TEMPHC LOW=十 位 数 BCD;取 出 低 四 位;高、低 位 交 换;TEMPLC HI=个 位 数 BCDMOV A,R4JZ TC3ANL A,#0FH;取 出 低 四 位 SWAP A;高、低 位 交 换 MOV R4,AMOV AJEM PHC;TEMPHC HI=百 位 数 BCDANL A,#0FH;取 出 低 四 位 ORL A,R4MOV TEMPHC,ATC3:RETHEX2
10、BCD1:MOV B,#064H;十 六 进 制-BCDDIV/;B=A%100MOV R4,A;R 4=百 位 数 MOV,A,#0AHXCH A,BDIV AB;B=A%BSWAP A;高、低 位 交 换 ORL A,BRET;小 数 部 分 码 表 DOTTAB:DB 00H,00H,01H,01H,02H,03H,03H,04HDB 05H,05H,06H,06H,07H,08H,08H,09H显 小 区 BCD 码 温 度 值 刷 新 子 程 序-DISP_BCD:MOV A,TEMPLC;个 位 数 BCD码 送 入 AANL A,#0FH;取 低 位 码 MOV 70H,A;小
11、数 位 MOV A,TEMPLCSWAP A;高、低 位 交 换 ANL A,#0FH;取 结 果 数 的 高 位 MOV 71H,A;个 位 MOV A,TEMPHCANL A,#0FH;取 低 位 码 MOV 72H,A;十 位 MOV AJEM PHCSWAP A;高、低 位 交 换 ANL A,#0FH;取 结 果 数 的 高 位 MOV 73H,A;百 位 MOV A,TEMPHCANL A,#0F0H;取 低 位 码CJNE A,#010H,DI0JMP DI2DIO:MOV A,TEMPHCANL A,#0FH;取 低 位 码 JNZ DI2;十 位 数 是 0MOV A,TEM
12、PHCSWAP A;高、低 位 交 换 ANL A,#0FH;取 结 果 数 的 高 位 MOV 73H,#0AH;符 号 位 不 显 示 MOV 72H,A;十 位 数 显 示 符 号 DI2:RET二 读 1302 子 程 序=RD_DS1302:MOV DS1302_ADDR,#8DH;读 口 51302 中 的 年 LCALL READ;调 用 读 DS1302子 程 序 MOV T1ME_YEAR,DS1302_DATA;把 读 出 的 年 数 据 存 入 年 寄 存 器 中 MOV DS1302_ADDR,#8BH;读 DS 1302 中 的 星 期 LCALL READMOV W
13、EEK_DATA,DS1302_DATA;把 读 出 的 星 期 数 据 存 入 星 期 寄 存 器 中 MOV DS1302_ADDR,#89H;读 口 51302 中 的 月 LCALL READMOV TIME_MONT,DS1302_DATA;把 读 出 的 月 数 据 存 入 月 寄 存 器 中 MOV DS1302_ADDR,#87H;读 口$1302 中 的 天 LCALL READMOV TIME_DAY,DS1302_DATA;把 读 出 的 天 数 据 存 入 天 寄 存 器 中 MOV DS1302_ADDR,#85H;读 口 51302 中 的 小 时 LCALL RE
14、ADMOV HOUR,DS1302_DATA;把 读 出 的 天 数 据 存 入 小 时 寄 存 器 中 MOV DS1302_ADDR,#83H;读 DS1302 中 的 分 钟 LCALL READMOV MINTUE,DS1302_DATA;把 读 出 的 天 数 据 存 入 分 钟 寄 存 器 中 DS1302_ADDR,#81H;读 DS 1302 中 的 秒 钟 READSECOND,DS1302_DATA;把 读 出 的 天 数 据 存 入 秒 钟 寄 存 器 中 MOVLCALLMOVRET按 键 子 程 序:数 据 分 离 后 送 显 示 缓 存 DATA_BUF:MOV R
15、O,TIME_YEAR;年 数 据 分 离,送 显 示 缓 存 LCALL DIVIDE;调 用 数 据 分 离 子 程 序 MOV YEAR_HBUF,R1MOV YEAR_LBUF,R2MOV ROJIM EM ONTLCALL DIVIDEMOV MONT_HBUF,R1MOV MONT_LBUF,R2MOV RO,TIME_DAYLCALL DIVIDEMOV DAY_HBUF,R1MOV DAY_LBUF,R2MOV RO,WEEK_DATALCALL DIVIDEMOV WEEK_HBUF,R1MOV WEEK_LBUF,R2MOV RO,HOURLCALL DIVIDEMOV H
16、OUR_HBUF,RIMOV HOUR_LBUF,R2MOV R0,MINTUELCALL DIVIDEMOV MINTUE_HBUF,R1MOV MINTUE_LBUF,R2MOV RO,SECONDLCALL DIVIDEMOV SECOND_HBUF,R1MOV SECOND_LBUF,R2RET;月 数 据 分 离,送 显 示 缓 存;日 数 据 分 离,送 显 示 缓 存;星 期 数 据 分 离,送 显 示 缓 存;小 时 数 据 分 离,送 显 示 缓 存;分 钟 数 据 分 离,送 显 示 缓 存;秒 钟 数 据 分 离,送 显 示 缓 存;=日 历 显 示 子 程 序=;=年
17、显 示=DISPLAY:MOV A,#10000001B;设 定 年 第 1位 的 显 示 地 址 为 第 1行,第 1列 LCALL WR COMM;调 用 写 指 令 到 液 晶 子 程 序MOV A,#32H;数 字 2 的 ASCII 码 LCALL WR_DATA;调 用 写 数 据 到 液 晶 子 程 序 MOV A,#10000010B;设 定 年 第 2 位 的 显 示 地 址 为 第 1行,第 2 列 LCALL W RCOM MMOV A,#30H;数 字 0 的 ASCII 码 LCALL WRDATAMOV A,#1000001 IB;设 定 年 第 3 位 的 显 示
18、 地 址 为 第 1行,第 3 列 LCALL W RCOM MMOV A,YEAR_LBUF;年 的 低 位 缓 存 数 据 ADD A,#30H;加 30H 修 正 取 ASCH 码 LCALL WR_DATAMOV A,#10000100B;设 定 年 第 4 位 的 显 示 地 址 为 第 1行,第 4 列 LCALL W RCOM MMOV A,YEAR_HBUF;年 的 高 位 缓 存 数 据 ADD A,#30H;加 30H 修 正 取 ASCII 码 LCALL WRDATA;=斜 线 显 示 一=MOV A,#10000101B;设 定 斜 线 的 显 示 地 址 为 第 1
19、行,第 5 列 LCALL W RCOM MMOV A,#2FH;斜 线 的 ASCII 码 LCALL WR_DATA;=显 示 月=_ _ _MOV A,#10000110B;设 定 月 第 1位 的 显 示 地 址 为 第 1行,第 6 列 LCALL W RCOM MMOV A,MONT_LBUF;月 的 低 位 缓 存 数 据 ADD A,#30H;加 30H 修 正 取 ASCII 码 LCALL WR_DATAMOV A,#10000111B;设 定 月 第 2 位 的 显 示 地 址 为 第 1行,第 7 列 LCALL W RCOM MMOV A,MONT_HBUF;月 的
20、高 位 缓 存 数 据 ADD A,#30H;加 30H 修 正 取 ASCII 码 LCALL WRDATA;=斗 线 显 示:=:一=MOV A,#10001000B;设 定 斜 线 的 显 示 地 址 为 第 1行,第 8 列 LCALL W RCOM MMOV A,#2FH;斜 线 的 ASCII 码 LCALL WRDATA二 天 显 示=-=MOV A,#10001001B;设 定 天 第 1位 的 显 示 地 址 为 第 1行,第 9 列LCALL W RCOM MMOV A,DAY_LBUF 沃 的 低 位 缓 存 数 据 ADD A,#30H;加 30H 修 正 取 ASCI
21、I 码 LCALL WR_DATAMOV A,#10001010B;设 定 天 第 2 位 的 显 示 地 址 为 第 1行,第 10列 LCALL WR_COMMMOV A,DAY_HBUF;天 的 高 位 缓 存 数 据 ADD A,#30H;加 30H 修 正 取 ASCII 码 LCALL WRDATA;=星 期 显 示 一=MOV A,#10001111B;设 定 星 期 第 2 位 的 显 示 地 址 为 第 1行,第 13列 LCALL WR_COMMMOV A,WEEK_DATA;星 期 的 高 位 缓 存 数 据 SUBB A,#lADD A,#30H;加 30H 修 正 取
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 日期 时间 温度 显示 万年历

限制150内