应用程序设计.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:12 大小:34KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

应用程序设计.doc

应用程序设计.doc

预览

免费试读已结束,剩余 2 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数字电子钟(汇编)技术文档在旁边的日志里面有系统的硬件和软件结构,以及按键的功能需要分析和说明的朋友可以联系我HYPERLINK"mailto:sunxinhe116@163.com"sunxinhe116@163.com学校电子设计大赛的作品,可能有些地方不是很简洁,望各位高手批评指正....;***************************************************;*数字电子钟*;*by:孙新贺07.4.25*;***************************************************;变量定义和内存分配DISP_BUFDATA30H;显示缓冲区KEY_BUFEQU33H;键盘缓冲区KEYTEMPEQU34H;临时按键值HOURDATA40H;小时位变量MINDATA41H;分钟位变量SECDATA42H;秒位变量ALHOURDATA43H;闹铃小时位ALMINDATA44H;闹铃分钟位;TFLAGBIT2000H;定时结束的标志RUNBITBIT2001H;运行标志(为1则运行,否则停止)ALARMBIT2002H;闹铃标志位ALARMRBIT2003H;闹铃运行标志位;ORG0000HLJMPMAIN;到主程序ORG000BHLJMPCT0S;到定时器0的中断服务程序;*****************************************************************;以下是延时子程序,延时时间为10msORG0020DELAY:MOVR5,#05HD1:MOVR6,#01HD2:MOVR4,#1DJNZR4,$DJNZR6,D2DJNZR5,D1RET;延时10ms子程序结束;*****************************************************************;以下是按键扫描子程序;p1口为按键的接口ORG0050HKEY_SCAN:MOVKEY_BUF,#00HMOVKEYTEMP,#00HMOVP1,#0FFHMOVA,P1CJNEA,#0FFH,KNEXTLJMPKRETKNEXT:MOVKEYTEMP,AKDELAY:MOVR5,#2DD1:MOVR6,#250DD2:MOVR4,#80DJNZR4,$DJNZR6,DD2DJNZR5,DD1NOPMOVP1,#0FFHMOVA,P1CJNEA,KEYTEMP,KRETMOVKEY_BUF,AKRET:RET;*****************************************************************;*****************************************************************;*****************************************************************;主程序开始ORG0100HMAIN:;初始化部分;初始化缓冲区MOV30H,#00HMOV31H,#00HMOV32H,#00HMOV33H,#00HMOV40H,#00HMOV41H,#00HMOV42H,#00HMOV43H,#00HMOV44H,#00HCLRTFLAG;初始化堆栈指针MOVSP,#70H;初始化P1口MOVP1,#0FFH;初始化R7(20次50ms的中断)MOVR3,#20;初始化运行标志位SETBRUNBITCLRALARMSETBP3.6SETBP3.7;初始化T0定时器MOVTMOD,#01HMOVTH0,#04BHMOVTL0,#0FFHSETBET0SETBEASETBTR0;*****************************************************************;大循环开始MAINC:LJMPMNEXT;走时部分ORG0400H;1s的延时子程序CT0S:MOVTMOD,#01HMOVTH0,#04BHMOVTL0,#0FFHDECR3CJNER3,#00H,EEMOVR3,#20;秒增加的程序MOVR0,#SECMOVA,@R0ADDA,#01HDAAMOV@R0,A;分钟增加的程序CJNEA,#60H,RENDMOVSEC,#00HMOVA,MINADDA,#01HDAAMOVMIN,A;小时增加的程序CJNEA,#60H,RENDMOVMIN,#00HMOVA,HOURADDA,#01HDAAMOVHOUR,ACJNEA,#24H,DAYENDMOVHOUR,#00HEE:RETIDAYEND:RETIREND:MOVR