51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机源码 > 详细内容
带有时间设置和秒显示的数字闹钟程序(汇编)
发布时间:2009/6/4  阅读次数:1060  字体大小: 【】 【】【

作者:    来源:互联网

带有时间设置和秒显示的数字闹钟程序

带有时间设置和秒显示的数字闹钟程序,我发一个自己用汇编写的,抛砖引玉!

第一部分:

;*********************************************************
;             题目:带有时间设置和秒显示的数字闹钟
; Date : 2006.3.13     12MHZ晶振                                         
; Create by :  逸飞 E-mail:mcu-yf@163.com  
; P3.2设置键 P3.3小时调整键 P3.5分钟调整键 P1.7定时输出指示
;**************************************************************
;*********************************************************
;                     变量地址分配
;*********************************************************
SwDelay                 equ 2;         设置按键时去抖动时间
DisplayBuffer         equ 30h;     设置显示缓冲区的地址为30h-35h共6个字节
BeepVal                 equ 36h;     蜂鸣时间长短存储器地址
OneSecondCounter     equ 39h;     设置1秒计数器的地址,1秒计数器是用来计数1秒内计时器的中断次数
Hour                     equ 3ah;     设置小时计数器的地址
Minute                 equ 3bh;     设置分钟计数器的地址
Second                 equ 3ch;     设置秒计数器的地址
P1Val                     equ 3dh;     设置数码管位驱动值的地址
ClockMode             equ 20h.0;     模式(正常走时/闹时)设置寄存器地址,值为0时正常走时,为1时闹时

设定
AlarmOnOff             equ 20h.1;     闹钟开启/关闭标志,为0关闭,为1开启
AlarmTimeOn             equ 20h.2;     此位为1时表示闹时时间到
DispHour                 equ 21h;     设置小时显示寄存器的地址
DispMinute             equ 22h;     设置分钟显示寄存器的地址
DispSecond             equ 23h;     设置秒显示寄存器的地址
AlarmHour             equ 2eh;     设置闹时小时计数器的地址
AlarmMinute             equ 2fh;     设置闹时分钟计数器的地址
AlarmSetKey             bit P3.2;     闹钟设置键
MinuteKey             bit P3.5;     定义分设置键
HourKey                 bit P3.3;     定义小时设置键
RelayOut                 equ P1.7;     定义输出引脚
;**********************************************************************
;                             程序开始
;**********************************************************************
           org 00h
           ajmp     Reset;                 程序开始
           org 0bh     ;                 Timer0中断向量地址
           ajmp TimeInt;                 跳到中断处理程序
           org 0020h
Reset:                     ;                 以下为初始化程序,为各个变量赋初值
           mov sp,#70h;
           setb RelayOut
mov OneSecondCounter,#125
           ;
           mov Hour,#12;
           mov Minute,#00;
           mov Second,#00;         设置上电时时钟显示的初值
           ;
           mov AlarmHour,#06;
           mov AlarmMinute,#00; 设置上电时闹时时间的初值
           ;
           clr AlarmOnOff;         上点复位后闹时功能处于关闭状态
           clr ClockMode;             正常走时模式
           clr AlarmTimeOn;
           setb RelayOut;             清闹时输出
        
;************************************
;     Use Timer 0 Mode 1
;     400us interrupt
;************************************
           mov tmod,#00000001b;
           mov th0,#0E3h;                      
           mov tl0,#39h;
           mov ie, #82h;                 开全局中断
           setb tr0;                     开定时中断
;************************************

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号