DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 110|回复: 0
打印 上一主题 下一主题

8279显示电子钟的硬件设计与软件设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:43:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
可以看看时钟程序是怎么样设计的。
?






?
?
MCS51单片机汇编程序
??Z8279 EQU 08701H ;8279 状态/命令口地址?D8279 EQU 08700H ;8279 数据口地址?LEDMOD EQU 00H;左边输入 八位字符显示?;外部译码键扫描方式,双键互锁?LEDFEQ EQU 2FH;扫描速率?LEDCLS EQU 0C1H ;清除显示 RAM?LEDWR0 EQU 80H;设定的将要写入的显示RAM地址??ORG 0000HAJMP STARTORG 001BH ;INT T1 入口地址?AJMP INT_T1ORG 0040HSTART:MOV SP,#60HLCALL INIT8279;初始化8279?MOV R3,#0H ;时?MOV R2,#0H ;分?MOV R1,#0H ;秒?MOV R6,#0H ;标志?MOV TMOD,#10HMOV TL1,#00H ;50 MS 的时间常数?MOV TH1,#04CHMOV R0,#20SETB TR1SETB ET1SETB EA ;允许中断?WAIT: CJNE R6,#0FFH,WAITLCALL DISPLAYMOV R6,#0SJMP WAIT??INIT8279:;8279初始化子程序?PUSH DPH ;保存现场?PUSH DPLPUSH ACCLCALL DELAY ;延时?MOV DPTR ,#Z8279MOV A,#LEDMOD ;置8279工作方式?MOVX @DPTR,AMOV A,#LEDFEQ ;置键盘扫描速率?MOVX @DPTR,AMOV A,#LEDCLS ;清除 LED 显示?MOVX @DPTR,ALCALL DELAY ;延时?POP ACC ;恢复现场?POP DPLPOP DPHRET;显示字符子程序?;输入R4,位置 R5,值?DISLED: PUSH DPH ;保存现场?PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置显示起始地址?ADD A,R4 ;加位置偏移量?MOV DPTR,#Z8279MOVX @DPTR,A ;设定显示位置?MOV DPTR,#LEDSEG ;置显示常数表起始位置?MOV A,R5MOVC A,@A+DPTR;查表?MOV DPTR,#D8279MOVX @DPTR,A ;显示数据?POP ACC ;恢复现场?POP DPLPOP DPHRETDELAY: ;延时子程序?PUSH 0 ;保存现场?PUSH 1MOV 0,#0HDELAY1: MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 ;恢复现场?POP 0RET?INT_T1: ;INT_T1中断服务子程序?PUSH DPH ;保护现场?PUSH DPLPUSH ACCPUSH PSWCLR TR1MOV TL1,#00H ;50MS 定时常数?MOV TH1,#4CHSETB TR1DJNZ R0,EXIT ;判断毫秒=0?MOV R0,#20 ;DELAY 1 SECOND?MOV R6,#0FFH ;置秒标志?CJNE R1,#59H,SECOND ;判断秒=59?MOV R1,#99HCJNE R2,#59H,MINUTE ;判断分=59?MOV R2,#99HCJNE R3,#23H,HOUR ;判断时=23?MOV R3,#99HHOUR:
                          
                       
                          
                                MOV A,R3ADD A,#1 ;时加1?DA AMOV R3,AMINUTE:MOV A,R2ADD A,#1 ;分加1?DA AMOV R2,ASECOND:MOV A,R1ADD A,#1 ;秒加1?DA AMOV R1,AEXITOP PSW ;恢复现场?POP ACCPOP DPLPOP DPHRETI ;中断返回?DISPLAY:MOV A,R3ANL A,#0FHMOV R5,AMOV R4,#6LCALL DISLED ;显示小时低位?MOV A,R3SWAP AANL A,#0FHMOV R5,AMOV R4,#7LCALL DISLED ;显示小时高位?MOV A,R2ANL A,#0FHMOV R5,AMOV R4,#3LCALL DISLED ;显示分钟低位?MOV A,R2SWAP AANL A,#0FHMOV R5,AMOV R4,#4LCALL DISLED ;显示分钟高位?MOV A,R1ANL A,#0FHMOV R5,AMOV R4,#0LCALL DISLED ;显示秒低位?MOV A,R1SWAP AANL A,#0FHMOV R5,AMOV R4,#1LCALL DISLED ;显示秒高位?RET?LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'?DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'?DB 6DH,02H,08H,00H,59H,0FH,76H;'U,-,_, ,I,O,P, '?END
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-14 05:17 , 耗时 0.093578 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表