单片机大全程序电子闹钟
单片机电子闹钟程序亲自编写-可用

单片机电子闹钟程序(亲自编写-可用)————————————————————————————————作者:————————————————————————————————日期:学校电子钟,有闹钟功能,按键可调时间,可调打铃时间,打铃时间长短显示,每个模块有功能注释。
其中正常时间显示和闹钟时间显示可用一个开关来调整。
芯片选择STC89C52程序:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//定义显示段码uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};uchar codebbtime[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar clock[]={0,0,0,0};uchar clock1[]={12,30,0};uchar weikong[6];uchar bbduration=4;uchar lingtime=9;//学校打铃时间组uchar shangwu1[]={8,30};uchar shangwu2[]={10,0};uchar shangwu3[]={10,20};uchar shangwu4[]={11,50};uchar xiawu1[]={13,30};uchar xiawu2[]={15,00};uchar xiawu3[]={15,15};uchar xiawu4[]={16,45};//按键定义sbit mode=P1^7;sbit sec_clr=P1^0;sbit min_set_add=P1^3;sbit min_set_sub=P1^4;sbit hour_set_add=P1^1;sbit hour_set_sub=P1^2;sbit bb_set_add=P1^5;sbit bb_set_sub=P1^6;sbit speaker=P2^6;//延时函数void delay(unsigned int t){while(t--);//时钟进位函数void clockjinwei(){clock[0]++;if(clock[0]==20){clock[1]++;clock[0]=0;if(clock[1]==60){clock[2]++;clock[1]=0;if(clock[2]==60){clock[3]++;clock[2]=0;if(clock[3]==24)clock[3]=0;}}}}//定时器0中断服务函数void timer0(void) interrupt 1 using 1 {TMOD=0x01;TH0=0x3c;TL0=0xb0;clockjinwei();}//时钟分位显示函数void fenwei(){weikong[0]=clock[3]/10;weikong[1]=clock[3]%10;weikong[2]=clock[2]/10;weikong[3]=clock[2]%10;weikong[4]=clock[1]/10;weikong[5]=clock[1]%10;}//闹钟分位显示函数void naofen(){weikong[0]=clock1[0]/10;weikong[1]=clock1[0]%10;weikong[2]=clock1[1]/10;weikong[3]=clock1[1]%10;weikong[4]=clock1[2]/10;weikong[5]=clock1[2]%10; }//闹钟定时显示函数void naozhongdisplay(){uchar z,s;uchar x=0x01;naofen();for(z=0;z<6;z++){P2=0;P0=table[weikong[z]];P2=x;x=_crol_(x,1);for(s=0;s<255;s++);}}//时钟显示函数void display(){uchar i,j;uchar x=0x01;fenwei();for(i=0;i<6;i++){P2=0;P0=table[weikong[i]];P2=x;x=_crol_(x,1);for(j=0;j<255;j++);}}//总显示函数void zhongxian(){if(mode==1)delay(100);if(mode==1)display();if(mode==0)delay(100);if(mode==0)naozhongdisplay();}//按键处理程序void key_set(){zhongxian();P1=0xff;if(min_set_add==0){delay(100);if(min_set_add==0){if(mode==1){clock[2]++;if(clock[2]==60){clock[2]=0;}while(min_set_add==0)zhongxian();}}if(mode==0){clock1[1]++;if(clock1[1]==60){clock1[1]=0;}while(min_set_add==0)zhongxian();}}//if(min_set_sub==0){delay(100);if(min_set_sub==0){if(mode==1){clock[2]--;if(clock[2]==0)clock[2]=59;}while(min_set_sub==0)zhongxian();if(mode==0){clock1[1]--;if(clock1[1]==0)clock1[1]=59;}while(min_set_sub==0)zhongxian();}}//if(hour_set_add==0){delay(100);if(hour_set_add==0){if(mode==1){clock[3]++;if(clock[3]==24){clock[3]=0;}while(hour_set_add==0)zhongxian();}if(mode==0){clock1[0]++;if(clock1[0]==24){clock1[0]=0;}while(hour_set_add==0)zhongxian();}}}//if(hour_set_sub==0){delay(100);if(hour_set_sub==0){if(mode==1){clock[3]--;if(clock[3]==0)clock[3]=23;}while(hour_set_sub==0)zhongxian();if(mode==0){clock1[0]--;if(clock1[0]==0)clock1[0]=23;}while(hour_set_sub==0)zhongxian();}}//if(sec_clr==0){delay(100);if(sec_clr==0){clock[1]=0;}while(sec_clr==0)zhongxian();}}//闹钟响铃函数void bb(){if(clock[1]<=bbduration){speaker=1;delay(100);speaker=0;}else speaker=0;}//打铃函数void daling(){if(clock[1]<=lingtime){speaker=1;delay(100);speaker=0;}else speaker=0;}//时间比较函数void bijiao(){if(clock[3]==shangwu1[0]){if(clock[2]==shangwu1[1])daling();}if(clock[3]==shangwu2[0]){if(clock[2]==shangwu2[1])daling();}if(clock[3]==shangwu3[0]){if(clock[2]==shangwu3[1])daling();}if(clock[3]==shangwu4[0]){if(clock[2]==shangwu4[1])daling();}if(clock[3]==xiawu1[0]){if(clock[2]==xiawu1[1])daling();}if(clock[3]==xiawu2[0]){if(clock[2]==xiawu2[1])daling();}if(clock[3]==xiawu3[0]){if(clock[2]==xiawu3[1])daling();}if(clock[3]==xiawu4[0]){if(clock[2]==xiawu4[1])daling();}}//闹钟比较void naobijiao(){if(clock[3]==clock1[0]){if(clock[2]==clock1[1]||clock[2]==clock1[1]+1||clock[2]==clock1[1]+2) bb();}}//响铃时长显示函数void bbtimeshow(){P3=bbtime[bbduration];if(bbduration>15)bbduration=0;}//响铃按键处理函数void bbtime_set(){bbtimeshow();if(bb_set_add==0){delay(100);if(bb_set_add==0)bbduration++;while(bb_set_add==0)bbtimeshow();}if(bb_set_sub==0){delay(100);if(bb_set_sub==0)bbduration--;while(bb_set_sub==0)bbtimeshow();}}//主程序void main(){EA=1;ET0=1;TR0=1;while(1){key_set();bijiao();bbtime_set();naobijiao();}}电路图:分四部分显示:如果在学习这个程序过程中有什么问题,可以发邮件到询问。
基于51单片机的多功能电子钟设计

基于51单片机的多功能电子钟设计1. 本文概述随着现代科技的发展,电子时钟已成为日常生活中不可或缺的一部分。
本文旨在介绍一种基于51单片机的多功能电子钟的设计与实现。
51单片机因其结构简单、成本低廉、易于编程等特点,在工业控制和教学实验中得到了广泛应用。
本文将重点阐述如何利用51单片机的这些特性来设计和实现一个具有基本时间显示、闹钟设定、温度显示等功能的电子钟。
本文的结构安排如下:将详细介绍51单片机的基本原理和特点,为后续的设计提供理论基础。
接着,将分析电子钟的功能需求,包括时间显示、闹钟设定、温度显示等,并基于这些需求进行系统设计。
将详细讨论电子钟的硬件设计,包括51单片机的选型、时钟电路、显示电路、温度传感器电路等。
软件设计部分将介绍如何通过编程实现电子钟的各项功能,包括时间管理、闹钟控制、温度读取等。
本文将通过实验验证所设计的电子钟的功能和性能,并对实验结果进行分析讨论。
通过本文的研究,旨在为电子钟的设计提供一种实用、经济、可靠的方法,同时也为51单片机的应用提供一个新的实践案例。
2. 51单片机概述51单片机,作为一种经典的微控制器,因其高性能、低功耗和易编程的特性而被广泛应用于工业控制、智能仪器和家用电器等领域。
它基于Intel 8051微处理器的架构,具备基本的算术逻辑单元(ALU)、程序计数器(PC)、累加器(ACC)和寄存器组等核心部件。
51单片机的核心是其8位CPU,能够处理8位数据和执行相应的指令集。
51单片机的内部结构主要包括中央处理单元(CPU)、存储器、定时器计数器、并行IO口、串行通信口等。
其存储器分为程序存储器(ROM)和数据存储器(RAM)。
程序存储器通常用于存放程序代码,而数据存储器则用于存放运行中的数据和临时变量。
51单片机还包含特殊功能寄存器(SFR),用于控制IO端口、定时器计数器和串行通信等。
51单片机的工作原理基于冯诺伊曼体系结构,即程序指令和数据存储在同一块存储器中,通过总线系统进行传输。
单片机课程设计(电子闹钟)

《单片机原理及应用》课程设计报告电子记忆闹钟专 业 : 电气工程及其自动化班 级 : 10电工一班学 号 : 2010401020102姓 名 : 张 祥指导教师 : 邹 云 峰提交日期 : 2013-06-13JINGCHU UNIVERSITY OF TECHNOLOGY目录一:设计题目及要求二:设计方案2.1 方案论证2.2 系统各器件简介2.3 各部分电路设计仿真2.4 成品图片秀三:电子时钟程序设计与调试3.1 程序设计思路3.2软件调试及解决的问题3.3 附加功能四:课程设计总结五:参考文献附录:源程序一、设计任务和要求。
单片机课程设计题目:电子闹钟。
设计要求:1、能实现时、分、秒的显示;2、能实现12和24小时制的切换;3、能设定时间;4、能设定闹钟。
二:设计方案2.1 方案论证显示电路的设计方案一:LCD1602液晶屏:LCD1602液晶屏是16*2的字符型液晶,可以显示英文26个字母的大小写,阿拉伯数字0—9,及一些简单的符号。
该液晶屏操作简单,显示功能强大。
方案二:数码管:虽然数码管的显示位数有限,且只能显示一些简单的字符。
综上所述,我们选择了LCD1602作为显示模块。
时钟芯片:方案一:ds12c887由于DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,带有128字节RAM.性能优异,但价格相对较贵。
方案二:ds1302美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。
它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能,价格便宜,但是没有闹钟中断功能。
综上所述,我们选择了ds12c887作为时钟芯片。
单片机芯片方案一:89c52基于标准的MCS-51单片机体系结构和指令系统,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。
C51单片机实现电子闹钟

课程名称:单片机原理与接口技术实践设计课题:基于MCS 51单片机实现电子闹钟功能的设计学院:电子与信息工程学院专业:通信工程小组成员:电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。
本文给出了一种基于MCS51单片机实现电子闹钟功能的设计方法,从而给人们带来更为方便的工作与生活。
一.电子闹钟简介我们设计的电子闹钟是以MCS 51单片机中的计时器作为时钟,用8位数码管显示当前时间,并且可以设置闹钟时间,并在设置的时间点发出闹铃。
简易闹钟具有以下功能:1.时钟能准确地走时,并可以通过数码管进行显示2.复位后可以进行当前时间的设置3.可以随意设置闹钟时间,闹钟会在设置时间响铃整个系统的任务要求:1)输入数字按键的功能。
保证数字的输入。
2)复位电路的功能。
所有时间回到初始化状态,用于启动设定时间参数(调时或设定闹钟时间);3)显示电路的功能。
当输入数字时显示24小时时间功能。
4)闹铃功能设置闹铃的时间后.能按设置好的时间准时闹铃。
二.系统方案的设计要求根据以上各模块并结合显示屏的功能及元器件材料的情况,决定采用AT89C51为核显示设计方案。
先进行系统的整体规划确定整个系统的功能,然后按照每个功能的具体要求,进行各个模块的实物设计并逐个调试,待全部通过后,进行整个系统的联调,最终实现一个完整的系统。
整个系统的设计步骤如下:在单片机最小系统的基础上,完成按键电路和复位电路的设计。
完成显示电路、数字按键、单片机时钟电路。
Ⅰ硬件设计系统硬件的设计可以根据系统的各个功能,把整个系统划分成若干个模块,分别对这些模块来进行设计,然后在通过单片机程序来实现对各个硬件模块功能的调度。
本系统涉及到的硬件模块有:按键电路、数码管显示电路、单片机时钟电路、蜂鸣器电路。
各部分实现功能如下:按键电路:提供按键信号。
单片机时钟电路、复位电路:提供部时钟。
单片机实训 ——基于单片机的电子闹钟设计

单片机实训——基于单片机的电子闹钟设计学院:电子与通信工程学院专业:电子信息工程技术班级:信息122姓名:冯健学号:22指导老师:邬志锋、香永辉实训时间:2013年6月30日-7月5日目录绪论 (3)第一章总体设计方案 (3)1.1 目的 (3)1.2 要求 (3)1.3 工作原理 (4)1.4 思路 (4)第二章系统硬件设计 (4)2.1 系统的硬件设计框 (4)2.2 主要单元的电路设计 (4)2.2.1 单片机最小系统 (4)2.2.2 DS1302时钟电路 (5)2.2.3 LCD1602液晶显示电路 (5)2.2.4 键盘电路 (6)第三章系统的软件设计 (6)3.1 主程序流程图 (6)3.2 时钟程序流程图 (7)第四章结束语 (7)附录 (8)绪论时钟的数字化,大力推动了计时的准确性和可靠性。
在单片机构成的装置中,实时时钟是必不可少的部件。
时钟芯片DS1302与单片机同步通信构成数字时钟电路。
DS1302的后背电源及对后背电源进行涓细电流充电功能保证电路断电后仍能保存时间和数据信息等。
该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高的场合,具有很高的使用价值。
第一章总体设计方案1.1目的1)加深了对ds1302时钟芯片及其应用;2)了解了lcd1602液晶显示屏的工作原理和内部结构;3)能够熟练的应用lcd1602来做一些小制作。
1.2 要求1)根据系统设计的要求和设计思路,确定该系统的系统设计结构如图1所示。
电路整体上分为控制和显示部分,以单片机最小系统为核心电路,控制LCD显示,具体的显示内容和方式由软件来完成;图(1)2)由于有时钟和日期的调节功能需要校准电路和基本的复位电路,复位电路采用按键复位,调节键、加1键、确定键,闹钟调节键,共五键,计时功能由DS1302完成,显示功能则由LCD1602液晶完成。
基于51单片机,电子显示时钟带闹钟、整点报时、日期、星期

{ StrTab[1]=second/10; //秒十位
StrTab[0]=second%10; //秒个位
StrTab[2]=10; //间隔符-
StrTab[4]=minute/10; //分十位
StrTab[3]=minute%10; //分个位
StrTab[5]=10; //间隔符-
void display(uchar w[32])
{ unsigned int i,j,c=0;
if(a==0)//正常时间显示
{ for(i=0;i<8;i++) //依次将数组w中八个数取出,并显示
{ P2=weikong_code[i]; //位选
j=w[i]; //取出要显示的数码
P0=tab[j]; //取出段选编码
if(month==13)
{month=1; year++;
if(year==10000)
year=0;}}
week++;//星期走
if(week==8)
week=1;
data1();
week1();
while(second==err);
}
}
/**********************键盘扫描子程序*************************/
{if(dБайду номын сангаасy==30); //闰年29天
{day=1; month++;
if(month==13)
{month=1; year++;
if(year==10000)
year=0;}}}
基于单片机控制的智能定时闹钟设计(含完整程序仿真图)

摘要本设计是定时闹钟的设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。
电子钟设计可采用数字电路实现,也可以采用单片机来完成。
数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计中采用单片机利用AT89C51,它是低功耗、高性能的CMOS型8位单片机。
片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。
AT89C51单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响,进—步可以扩充控制电器的启停。
设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分的设计。
采用四个开关来控制定时闹钟的工作状态,分别为:K1、设置时间和闹钟的小时;K2、设置小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。
课设准备中我根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用proteus软件进行了仿真试验,对出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。
设计完成的定时闹钟达到课程设计的要求,在到达定时的时间便立即发出蜂鸣声音,持续一分钟。
显示采用的六位数码管电路,如果亮度感觉不够,可以通过提升电阻来调节,控制程序中延迟时间的长短,可以获得不同的效果。
单片机汇编程序电子闹钟

电子闹钟课程设计摘要:本课程设计主要就是通过单片机系统,综合运用定时器、中断、数码显示等知识设计一个可定时的电子钟。
它包括系统总体方案及硬件设计,软件设计,Proteus软件仿真等部分。
硬件设计的主要任务就是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器,I/O电路及有关外围电路等然后设计出系统的电路原理图。
合理的软件结构就是设计出一个性能优良的单片机应用性系统软件的基础,因此必须充分重视。
编写完程序后在用Proteus软件仿真检查设计就是否合理。
一.课程设计的概况通过对51单片机的扩展,接键盘,显示器等相应的外围器件。
在LED显示器中分成静态显示与动态显示两类,在本设计中主要用了它的动态显示功能,动态显示利用了人视觉的短暂停留,在数据的传输中就是一个一个传输的,且先传输低位。
键盘就是由若干个按键组成的开关矩阵,就是一种廉价的输入设备。
键盘通常包括有数字键,字母键以及一些功能键。
操作人员可以通过对键盘向计算机输入数据,地址,指令或其她的控制命令,实现简单的人机对话。
这里采用非编码式键盘。
通过51单片机的P1口扩展出独立连接式键盘。
外围扩展复位,时钟电路,利用软件源程序代码实现相应的功能。
二.课程设计实现的功能:1.能显示时时-分分-秒秒。
2、能够设定定时时间,修改定时时间。
3、定时时间到能发出警报声或者启动继电器,从而控制电器的起停。
三.设计方案使用就是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大, 而且可以随时的更新系统,进行不同状态的组合。
本系统采用单片机AT89C51作为本设计的核心元件,利用7段共阴LED作为显示器件。
接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间电器的起停时间到,从而控制电器的起停。
电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示,报警电路,芯片选用AT89C51 单片机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子闹钟课程设计
摘要:本课程设计主要是通过单片机系统,综合运用定时器、中断、数码显示等知识设计一个可定时的电子钟。
它包括系统总体方案及硬件设计,软件设计,Proteus软件仿真等部分。
硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器,I/O电路及有关外围电路等然后设计出系统的电路原理图。
合理的软件结构是设计出一个性能优良的单片机应用性系统软件的基础,因此必须充
1
2.
3.
而
本系统采用单片机AT89C51作为本设计的核心元件,利用7段共阴LED作为显示器件。
接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间电器的起停时间到,从而控制电器的起停。
电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示,报警电路,
芯片选用AT89C51 单片机。
系统框图:
四.硬件设计
1.单片机AT89C51
AT89C51是一个低电压,高性能CMOS型 8位单片机,片内含4KB的可反复擦写的Flash 只读程序存储器(ROM)和128 B的随机存取数据存储器(RAM),器件采用ATMEL公司的高
8 Array位器和
内置功能
实
的I/O
几个特殊管脚:
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平。
2.时钟电路
单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。
本系统中AT89C51单片机采用内部时钟方式。
最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHz~12MHz之间。
电容值无严格要求,但电容取值对振荡频率输出的稳
定性、大小和振荡电路起振速度有少许影响,一般可在20pF~100pF之间取值。
时钟电路
图如下:
3.数码管显示电路
单片机中通常使用7段LED,LED是发光二极管显示器的缩写。
LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。
LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。
LED显示器有多种形式,在单片机系统中使用最多的是七段数码显示器。
LED
LED
2.程序模块 ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TIME
//主程序部分
ORG 0100H
MAIN:MOV SP,#50H
MOV 20H,#00H ;秒钟BIN MOV 21H,#00H ;分钟BIN MOV 22H,#00H ;小时BIN
MOV 23H,#01H
MOV 24H,#01H
MOV 25H,#00H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#00H
MOV 34H,#00H
MOV 35H,#00H
MOV 36H,#01H
M4:LJMP LOOP
DELAY:MOV R4,#030H ;延时时间 DL00:MOV R5,#0FFH
DL11:MOV R6,#9H
DL12:DJNZ R6,DL12
DJNZ R5,DL11
DJNZ R4,DL00
RET
//设定时间程序
SETTIME:
L0:LCALL DISPLAY1 ;调用时间允许程序
MM1: JB P1.2,L1
MOV C,P1.2
JC MM1
LCALL DELAY1 ;调用延时
JC MM1
MSTOP1: MOV C,P1.2
JNC MSTOP1 ;判断P1.2是否释放?释放则继续 LCALL DELAY1 ;调用延时
MOV A,21H
CJNE A,#3CH,GO11
MOV 21H,#00H ;分钟复位
MOV 32H,#00H
MOV 33H,#00H
LJMP L0
GO11:MOV B,#0AH ;将A中的内容分成高低两部分 DIV AB
MOV 32H,B
MOV 33H,A
LJMP L0
GO12: MOV B,#0AH
DIV AB
MOV 34H,B
MOV 35H,A
LJMP L0
L2:JB P1.4,L0
MOV C,P1.4
JC L2
MOV A,24H
CJNE A,#24,GO22
MOV 24H,#00H ;时钟复位
MOV 38H,#00H
MOV 39H,#00H
LJMP N0
N1:JB P1.1,N2 ;判断P1.1是否按下? MOV C,P1.1
JC N1
LCALL DELAY1
JC N1
MSTOP4: MOV C,P1.1 ;判断P1.1是否释放?
JNC MSTOP4
LCALL DELAY1
MOV C,P1.1
JNC MSTOP4
INC 23H ;设定闹钟分钟增加1
MOV A,23H
CJNE A,#60,GO21 ;判断A是否到60分?
STOP2: MOV C,P1.4 ;判断P1.4是否释放?
JNC STOP2
LCALL DELAY1
MOV C,P1.4
JNC STOP2
LJMP LOOP
TIMEPRO:MOV A,21H
MOV B,23H
CJNE A,B,BK ;判断分钟是否运行到设定的闹钟的分钟?
MOV A,22H
MOV B,24H
CJNE A,B,BK ;判断时钟是否运行到设定的闹钟的时钟?
SETB 25H.0
MOV C,25H.0
JC XX
XX: LCALL TIMEOUT ;调用时间闹钟响应程序
BK:RET
TIMEOUT:
X1:LCALL BZ ;调用喇叭响应程序
STOP3: MOV C,P1.4
JNC STOP3
LCALL DELAY1
MOV C,P1.4
JNC STOP3
LJMP LOOP
DELAY1: MOV R4,#14H ;时间延时
DL001: MOV R5,#0FFH
DL111: DJNZ R5,DL111
DJNZ R4,DL001
RET
//延时时间
DL1: MOV R7,#02H ;延时时间
DL: MOV R6,#0200H
DL6: DJNZ R6,$
DJNZ R7,DL
RET
DSEG1:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
,k3与
1;按
1;按一下
2.
了起来。
我相信这过程对我今后的学习和工作给与积极的影响,搭好了平台。
通过这次设计,我对这门课有了更好的理解,尤其结合了所学习的相关的知识,对各门课都有了一个较全面的理解。
这必将对我以后的学习和工作有很大的帮助。
本次课程设计的定时闹钟电路,可以满足人们的基本要求,但因为水平有限,此电路中存在一定的问题,虽可以通过增加电路解决,但过于复杂和现有水平有限,本次设计就未深入涉及,想要更好的改进电路,需要进一步的努力,,如果有好的意见,希望老师给以支持。