基于51单片机电子时钟程序内容摘要:
in)) /*当时间到闹钟的时间时,蜂铃器叫 5次 */ { if(ring5) { ring++。 alarm=0。 delay(100)。 alarm=1。 } } } } void Leap_Nonleap(int aa) /*判断是否为闰年 */ { if(((aa%4==0)amp。 amp。 (aa%100!=0))||(aa%400==0)) { Mounth_array[1]=29。 /*将 2月份的最大天数赋给数组 Mounth[1]*/ } else { Mounth_array[1]=28。 } } /*===========================================按键值读取函数 =============================================*/ uchar Key_num(void) /*读取按键的值并返回按键的标号 */ { uchar L1,L2,L3,key,flag1=0。 P2=0xf0。 // L1=P2。 if(P2!=0xf0) delay(3)。 P2=0xf0。 if(P2!=0xf0) /*此时确认有按键被按下 */ { L2=P2。 /*将被按下后的数据赋给 L2*/ P2=0x0f。 /*将 P2低四位置高 */。 /* 此处 延时消抖 */ L3 = P2。 while(P2!=0x0f) /*当按键没有升起来就一直循环,直到按键回复, P2不等于 0x0f了并推出循环 */ {P2 = 0x0f。 } /*将此时 P2的数据赋给 L3*/ key=L3|L2。 switch(key) { case 0xe7: num=1。 flag1=1。 break。 /*从左往右从下往上依次为 16个按键的或编码 */ case 0xeb: num=2。 flag1=1。 break。 case 0xed: num=3。 flag1=1。 break。 case 0xee: num=4。 flag1=1。 break。 case 0xd7: num=5。 flag1=1。 break。 case 0xdb: num=6。 flag1=1。 break。 case 0xdd: num=7。 flag1=1。 break。 case 0xde: num=8。 flag1=1。 break。 case 0xb7: num=9。 flag1=1。 break。 case 0xbb: num=10。 flag1=1。 break。 case 0xbd: num=11。 flag1=1。 break。 case 0xbe: num=12。 flag1=1。 break。 case 0x77: num=13。 flag1=1。 break。 case 0x7b: num=14。 flag1=1。 break。 case 0x7d: num=15。 flag1=1。 break。 case 0x7e: num=16。 flag1=1。 break。 } } return flag1。 } /*====================================判断被按下的键,并进行设置 =========================================*/ void Judge_Setting(uchar Key_set) /*对按键操作进行判断并进行设置 */ { if(Key_set==1) /*对 hour进行加 1设置 */ { hour++。 if(hour==24) hour=0。 } else if(Key_set==2) /*对 hour进行减 1设置 */ { hour。 if(hour==1) hour=23。 } else if(Key_set==3) /*对 min进行加 1设置 */ { min++。 if(min==60) min=0。 } else if(Key_set==4) /*对 min进行减 1设置 */ {。基于51单片机电子时钟程序
相关推荐
止新数据输入,在时钟端( CLOCK)脉冲上升沿作用下 Q0为低电平。 当 A、 B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。 表 31 74LS164 工作参数 参数 最小值 标准值 最大值 单位 高电平输入电压 2 — — V 低电平输入电压 — — V 高电平输出电压 V 低电平输出电压 — V 时钟频率 0 — 25 MHZ
NG EQU。 南北方向绿灯 ER EQU。 东西方向红灯 EY EQU。 东西方向黄灯 EG EQU。 东西方向绿灯 BREAKRULE EQU。 交通违章模拟信号输入 SOUND EQU。 警报声输出信号 PEAKORNORM EQU。 高峰信 号输入 ALLSTOP EQU。 全部禁行输入 ALLGO EQU。 全部通行输入 NSTHROUGH EQU。 南北通行输入 EWTHROUGH
用 keil软件编写源程序。 在 protues中画好其电路图如下图。 软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。 软件调试可以采取离线调试和在线调试两种方式。 前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。 本次课题, Keil软件来调试程序,通过各个模 块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。 图 实时时钟 仿真图
第 三 章 软件系统设计介绍 为了使汇编程序段和 C 程序能够兼容,必须为汇编语言编写的程序段指定段名并进行定义。 如果要在它们之间传递函数,则必须保证汇编程序用来传递函数的存储区和 C 函数使用的存储区是一样的。 被调用的汇编函数不仅要在汇编程序中使用伪指令以使 CODE 选项有效,并声明为可再定位的段类型,而且还要在调用它的 C 语言主程序中进行声明。 函数名的转换规律如表 所示。
utton 目录 : 一 单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。 单片机微型计算机简 称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和 I/O 接口电路等。 因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过 3 代的发展