单片机智能电子数字钟设计说明
数字电子钟单片机课程设计

数字电子钟单片机课程设计一、课程目标知识目标:1. 学生能理解数字电子钟的基本工作原理,掌握单片机在数字电子钟中的应用。
2. 学生能掌握数字电子钟的各功能模块(如计时、闹钟、显示等)的设计与实现。
3. 学生了解并掌握数字电子钟程序编写的基本方法,学会运用编程语言(如C 语言)进行程序设计。
技能目标:1. 学生能运用所学知识,设计并制作一个简易的数字电子时钟,具备基本的时间显示、闹钟等功能。
2. 学生能够独立完成程序编写,实现数字电子钟的基本功能,并具备一定的调试与优化能力。
3. 学生能够通过团队合作,发挥各自专长,共同完成课程设计任务。
情感态度价值观目标:1. 学生在课程学习中,培养对电子技术的兴趣和爱好,激发创新意识。
2. 学生通过实践活动,培养动手能力、解决问题的能力和团队协作精神。
3. 学生在学习过程中,树立正确的价值观,认识到科技对生活的重要性,增强社会责任感。
本课程针对高年级学生,课程性质为实践性较强的设计与制作类课程。
学生在前期课程中已具备一定的电子技术基础和编程能力,本课程旨在巩固和拓展这些知识。
在教学过程中,要求教师注重引导学生主动探索、实践,鼓励学生发挥创新能力,同时关注学生的个体差异,提供有针对性的指导。
通过课程目标的实现,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续相关课程的学习打下坚实基础。
二、教学内容1. 数字电子钟原理及单片机基础:包括时钟电路、计数器、寄存器等基本原理,以及单片机的内部结构、工作原理和编程接口。
- 教材章节:第一章 电子时钟原理;第二章 单片机基础- 内容列举:时钟电路设计、计数器应用、寄存器配置、单片机内部结构、I/O 口编程。
2. 数字电子钟功能模块设计:讲解并实践计时、闹钟、显示等模块的设计方法。
- 教材章节:第三章 数字电子钟设计;第四章 模块化设计- 内容列举:计时模块、闹钟模块、显示模块设计,模块间通信协议。
3. 程序设计与编写:学习数字电子钟的程序编写方法,运用C语言进行程序设计。
基于单片机电子时钟的设计与实现

基于单片机电子时钟的设计与实现一、设计目标设计一个基于单片机的电子时钟,能够准确显示时间并能够进行设置和调整。
二、硬件设计1.时钟部分:采用晶振芯片提供准确的时钟信号2.数码管显示部分:使用共阴数码管进行数字显示3.按键部分:设计几个按键用于设置和调整时间4.电源部分:采用直流电源供电三、软件设计1.功能设计a.时间设置功能:通过按键可以设置当前的时间,包括小时、分钟和秒钟。
b.时间调整功能:通过按键可以调整当前的时间,包括小时、分钟和秒钟。
c.时间显示功能:通过数码管可以实时显示当前的时间。
2.代码实现以C语言为例,以下是一个基于单片机的电子时钟的代码实现示例:```c#include <reg51.h>sbit DS18B20=P1^3; // 定义18B20数据线接口sbit beep=P2^3; // 定义蜂鸣器接口unsigned char hour,min,sec; // 定义小时、分钟、秒钟变量//函数声明void Delay_1ms(unsigned int count);bit Ds18b20Init(;unsigned char Ds18b20ReadByte(;void ReadTime(;void WriteTime(;void DisplayTime(;//主函数void mainP2=0x00;WriteTime(; // 写入时间while(1)ReadTime(; // 读取时间DisplayTime(; // 显示时间Delay_1ms(1000); // 延时1秒}//毫秒延时函数void Delay_1ms(unsigned int count) unsigned int i, j;for(i=0; i<count; i++)for(j=0; j<1275; j++);//18B20初始化函数bit Ds18b20Initbit presence;DS18B20=0;Delay_1ms(100); // 延时450us~1000us DS18B20=1;Delay_1ms(10); // 延时15us~60us presence=DS18B20;Delay_1ms(30); // 延时60us~240us return presence;//18B20读取字节函数unsigned char Ds18b20ReadByte unsigned char i, dat;for(i=0; i<8; i++)DS18B20=0;//主机发起读时序_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usDS18B20=1;//主机释放总线_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usdat,=(DS18B20<<i); // 读取数据位,存放在dat变量中Delay_1ms(3); // 读时序完成后等待48us再接收下一位}return dat;//读取时间函数void ReadTimeunsigned char temp;temp=0x00;while(temp!=0xaa)Ds18b20Init(; // 初始化温度传感器Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0xbe;Delay_1ms(1);temp=Ds18b20ReadByte(; // 读取时间数组的标志位}for(temp=0; temp<7; temp++)//写入时间函数void WriteTimeunsigned char i,j;while(1)Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x4e;Delay_1ms(1);for(i=0; i<7; i++)DS18B20=0x55;Delay_1ms(1);DS18B20=0xaa;Delay_1ms(1);Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x48;Delay_1ms(1);j=Ds18b20ReadByte(; // 判断是否写入成功if(j==0x0a)break;}//显示时间函数void DisplayTimeP1=seg[hour/10]; // 显示十位小时P2=(P2&0xf0),0x08; // 点亮第一个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[hour%10]; // 显示个位小时P2=(P2&0xf0),0x04; // 点亮第二个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min/10]; // 显示十位分钟P2=(P2&0xf0),0x02; // 点亮第三个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min%10]; // 显示个位分钟P2=(P2&0xf0),0x01; // 点亮第四个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=0x00;//空显示P2=0x00;//熄灭数码管```四、总结通过以上的硬件设计和软件实现,可以实现一个基于单片机的电子时钟。
单片机课程设计报告单片机的电子钟设计

单片机课程设计报告---单片机的电子钟设计单片机课程设计报告---单片机的电子钟设计一、设计简介本课程设计是以单片机为核心,设计一个具有显示时间和闹钟功能的电子钟。
电子钟是人们日常生活中必备的计时工具,其精度和稳定性直接影响到人们的时间安排和生活质量。
因此,本设计的目的是通过学习和实践,掌握单片机的应用和电子钟的设计方法,提高我们的实践能力和理论知识水平。
二、硬件设计1.单片机选择本设计选用AT89C51单片机作为主控制器。
AT89C51是一种低功耗、高性能的8位单片机,具有丰富的I/O口和片内资源,适合用于各种嵌入式系统开发。
2.显示模块显示模块采用LED数码管,用于显示时间、日期和闹钟状态。
为了方便调试和编程,我们选用4位一体式数码管。
3.按键模块按键模块包括功能键和调整键,用于设置时间、日期和闹钟。
我们选用4个独立式按键,分别实现上调、下调、设置和闹钟功能。
4.蜂鸣器模块蜂鸣器模块用于发出闹钟声音。
我们选用一款常见的无源蜂鸣器,通过单片机的一个IO口控制其频率,实现声音提示功能。
三、软件设计1.时钟芯片驱动本设计选用DS1302时钟芯片,用于提供实时时间和日期的信息。
DS1302与单片机通过I2C协议进行通信,需要编写相应的驱动程序。
驱动程序包括时钟芯片的初始化、数据读写和中断处理等。
2.显示驱动显示驱动程序负责控制数码管的显示。
驱动程序包括延时函数、位选函数和段选函数等。
通过调用这些函数,我们可以实现时间、日期和闹钟状态的动态显示。
3.按键驱动按键驱动程序负责识别用户的按键操作。
驱动程序通过检测独立式按键的状态变化,识别出不同的按键操作,并执行相应的功能。
例如,当用户按下上调键时,驱动程序将调用时钟芯片的读秒函数,并将时间的小时数加1。
4.蜂鸣器驱动蜂鸣器驱动程序负责控制蜂鸣器的声音频率。
驱动程序通过设置单片机的定时器寄存器,产生一定频率的方波信号,驱动蜂鸣器发声。
为了实现不同的声音效果,我们可以通过改变方波信号的频率和持续时间来实现。
单片机智能电子钟

目录目录01 设计内容及要求11.1 设计内容11.2 设计要求11.3 设计报告的主要内容1二总体设计方案22.1 设计方案示意图22.1.1 框图22.1.2 电路图32.1.3 方案讨论32.1.4 设计任务的明确性42.2 框图52.3 调试62.3.1 软件调试62.3.2 仿真调试7三项目设计总结或结论7参考文献8附录8一、设计内容及要求1.1 设计内容以AT89C52单片机为核心,外加LCD1602。
制作一个带液晶显示屏的智能电子时钟。
1.2 设计要求(1)计时:秒、分、时、日、周、月、年。
(2) 闰年自动识别。
(3) 随时自动开启/关闭屏幕。
(4) 计时精度:误差≤1秒/月(带微调设置)。
(5) 键盘采用动态扫描方式查询。
所有查询和设置功能均由功能键 K1 和 K2 完成。
1.3 设计报告的主要内容单片机课程设计是以学科或项目设计的方式设置的课程。
具有很强的综合性和实用性。
是工科院校电气工程专业的必修课。
是将单片机原理的理论知识转化为应用技术的重要环节。
这个环节不仅可以加深对单片机原理的深入理解,还可以培养学生的动手能力,培养学生分析和解决问题的能力。
二整体设计2.1 设计方案示意图2.1.1原理图,示意图2.1.2电路原理图XTAL218XTAL119ALE 30EA31PSEN 29RST 9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U0AT89C51D 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S 1V D D 2V E E3LCD1LM016L234567891RP110kRV11kLS1SPEAKER12MHz30pF30pF 1uF图2 电路原理图2.1.3节目讨论方案一:使用实时时钟芯片实时时钟芯片具有年、月、日、周、时、分、秒计时功能和多点计时功能。
单片机实验报告数字时钟设计报告

单片机实验报告数字时钟设计报告一、实验目的本次单片机实验的目的是设计并实现一个基于单片机的数字时钟。
通过该实验,深入了解单片机的工作原理和编程方法,掌握定时器、中断、数码管显示等功能的应用,提高综合运用知识解决实际问题的能力。
二、实验原理1、单片机选择本次实验选用了常见的 51 系列单片机,如 STC89C52。
它具有丰富的资源和易于编程的特点,能够满足数字时钟的设计需求。
2、时钟计时原理数字时钟的核心是准确的计时功能。
通过单片机内部的定时器,设定合适的定时时间间隔,不断累加计时变量,实现秒、分、时的计时。
3、数码管显示原理采用共阳或共阴数码管来显示时间数字。
通过单片机的 I/O 口控制数码管的段选和位选信号,使数码管显示相应的数字。
4、按键控制原理设置按键用于调整时间。
通过检测按键的按下状态,进入相应的时间调整模式。
三、实验设备与材料1、单片机开发板2、数码管3、按键4、杜邦线若干5、电脑及编程软件(如 Keil)四、实验步骤1、硬件连接将数码管、按键与单片机开发板的相应引脚通过杜邦线连接起来。
确保连接正确可靠,避免短路或断路。
2、软件编程(1)初始化单片机的定时器、中断、I/O 口等。
(2)编写定时器中断服务程序,实现秒的计时。
(3)设计计时算法,将秒转换为分、时,并进行进位处理。
(4)编写数码管显示程序,将时间数据转换为数码管的段选和位选信号进行显示。
(5)添加按键检测程序,实现时间的调整功能。
3、编译与下载使用编程软件将编写好的程序编译生成可执行文件,并下载到单片机中进行运行测试。
五、程序设计以下是本次数字时钟设计的主要程序代码片段:```cinclude <reg52h>//定义数码管段选码unsigned char code SEG_CODE ={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};//定义数码管位选码unsigned char code BIT_CODE ={0x01, 0x02, 0x04, 0x08, 0x10,0x20, 0x40, 0x80};//定义时间变量unsigned int second = 0, minute = 0, hour = 0;//定时器初始化函数void Timer_Init(){TMOD = 0x01; //定时器 0 工作在方式 1 TH0 =(65536 50000) / 256; //定时 50ms TL0 =(65536 50000) % 256;EA = 1; //开总中断ET0 = 1; //开定时器 0 中断TR0 = 1; //启动定时器 0}//定时器 0 中断服务函数void Timer0_ISR() interrupt 1{TH0 =(65536 50000) / 256;TL0 =(65536 50000) % 256;second++;if (second == 60){second = 0;minute++;if (minute == 60){minute = 0;hour++;if (hour == 24){hour = 0;}}}}//数码管显示函数void Display(){unsigned char i;for (i = 0; i < 8; i++)P2 = BIT_CODEi;if (i == 0){P0 = SEG_CODEhour / 10;}else if (i == 1){P0 = SEG_CODEhour % 10;}else if (i == 2){P0 = 0xBF; //显示“”}else if (i == 3){P0 = SEG_CODEminute / 10;else if (i == 4){P0 = SEG_CODEminute % 10;}else if (i == 5){P0 = 0xBF; //显示“”}else if (i == 6){P0 = SEG_CODEsecond / 10;}else if (i == 7){P0 = SEG_CODEsecond % 10;}delay_ms(1);//适当延时,防止闪烁}}//主函数void main(){Timer_Init();while (1){Display();}}```六、实验结果与分析1、实验结果将程序下载到单片机后,数字时钟能够正常运行,准确显示时、分、秒,并且通过按键可以进行时间的调整。
单片机多功能电子数字钟课程设计报告

多功能电子数字钟设计数字钟在日常生活中最常见, 应用也最广泛。
本文主要就是设计一款数字钟, 以89C52单片机为核心, 配备液晶显示模块、时钟芯片、等功能模块。
数字钟采用24小时制方式显示时间, 定时信息以及年月日显示等功能。
文章的核心主要从硬件设计和软件编程两个大的方面。
硬件电路设计主要包括中央处理单元电路、时钟电路、人机接口电路、信号处理电路、执行电路等几部分组成。
软件用C语言来实现, 主要包括主程序、键盘扫描子程序、时间设置子程序等软件模块。
关键词单片机液晶显示器模块数字钟一硬件电路设计及描述;1.MCS-51单片机单片机是在一块硅片上集成了各种部件的微型计算机。
这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
8051单片机的结构特点有以下几点: 8位CPU;片内振荡器及时钟电路; 32根I/O线;外部存储器ROM和RAM;寻址范围各64KB;两个16位的定时器/计数器; 5个中断源, 2个中断优先级;全双工串行口。
定时器/计数器8051内部有两个16位可编程定时器/计数器, 记为T0和T1。
16位是指他们都是由16个触发器构成, 故最大计数模值为2 -1。
可编程是指他们的工作方式由指令来设定, 或者当计数器来用, 或者当定时起来用, 并且计数(定时)的范围也可以由指令来设置。
这种控制功能是通过定时器方式控制寄存器TMOD来完成的。
在定时工作时, 时钟由单片机内部提供, 即系统时钟经过12分频后作为定时器的时钟。
技术工作时, 时钟脉冲由TO和T1输入。
中断系统8051的中断系统允许接受五个独立的中断源, 即两个外部中断申请, 两个定时器/计数器中断以及一个串行口中断。
外部中断申请通过INTO和INT1(即P3.2和P3.3)输入, 输入方式可以使电平触发(低电平有效), 也可以使边沿触发(下降沿有效)。
2.8051的芯片引脚如图1-2所示VCC: 供电电压。
单片机电子时钟课程设计报告

单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
单片机数字钟课程设计

单片机数字钟课程设计单片机数字钟课程设计1. 硬件设计:- 使用单片机控制数字钟的显示和时间的设置功能,在电路板上连接LED数码管用于显示时间。
- 使用实时时钟芯片或者外部晶振作为时钟源,确保时间的准确性。
- 设置按键用于调整时间,包括小时、分钟和秒钟。
2. 功能设计:- 初始化功能:启动时将时间设置为00:00:00。
- 显示功能:将当前时间显示在LED数码管上,包括小时、分钟和秒钟。
- 调整时间功能:按下相应的按键,可以调整小时、分钟和秒钟,同时更新LED数码管上的显示。
- 闹钟功能:设置一个闹钟时间,并在闹钟时间到达时发出声音或者闪烁LED灯提示。
3. 软件设计:- 使用C语言编写单片机的程序,通过编程控制数码管的显示和按键的响应。
- 在程序中使用定时器中断来更新时间的显示,确保时间的准确性。
- 使用按键中断来响应按键的操作,包括调整时间和设置闹钟功能。
4. 测试与调试:- 在编写完程序后,进行测试和调试,确保各项功能的正常运行。
- 使用示波器等工具来监测时钟信号和按键信号的波形,确保硬件连接的正确性。
- 运行程序并观察LED数码管的显示,以及按键的响应情况,进行功能的验证。
5. 效果展示:- 在完成测试和调试后,将数字钟的效果展示给他人,包括时间的显示和调整、闹钟的设置和响应等功能。
- 可以将数字钟制作成实物展示,方便他人观看和操作,也可以进行演示和讲解,介绍数字钟的工作原理和设计思路。
整个单片机数字钟的课程设计过程包括硬件设计、功能设计、软件设计、测试与调试以及效果展示。
通过这个设计项目,可以锻炼学生的硬件和软件设计能力,提高他们对单片机原理和应用的理解和掌握程度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
建筑工程学院单片机课程设计报告题目名称:智能电子数字钟设计系:电气工程系专业:电气工程及其自动化班级:XXX学号:XXXXXXXX学生: XXX指导教师:XXX职称:讲师2012年 6 月 28 日目录摘要 (1)一、系统总体方案设计 (2)1、系统结构框图 (2)2、系统的基本原理及设计思想 (2)3、计时方案 (3)二、系统硬件设计 (4)1、电源模块 (4)2、单片机模块 (4)3、晶振电路模块 (5)4、LED显示电路模块 (5)5、独立键盘模块 (6)6、复位电路模块 (7)7、报警电路模块 (7)三、系统软件设计 (8)1、主程序流程图 (8)2、按键检测子程序流程图 (9)3、定时器中断子程序流程图 (9)4、时间显示子程序流程图 (10)结论 (12)参考文献 (13)附录 (14)1、源程序 (14)2、主程序 (14)3、定时器中断子程序 (15)4、LED显示子程序 (15)5、按键控制子程序 (17)6、总电气原理图 (18)摘要近年来,随着电子产品的发展,人们对数字时钟的要求越来越高,本文针对人们的这一需求,设计了一种由单片机控制的智能化数字时钟,功能强大,界面友好,更好的满足了人们对它的智能化要求。
智能电子数字钟是采用AT89C51单片机部定时器来实现定时功能的,并且通过LED驱动器MC14543来实现LED动态扫描驱动。
能通过增量键盘预置和调整时间、星期。
秒计数器满60向分计数器进位,分计数器满60向时计数器进位,时计数器以24为一个周期。
AT89C51单片机部计数器的输出经LED动态扫描驱动器MC14543送到七位共阴显示器,可将星期、时、分、秒在相应位置正确显示,并实现整点报时功能。
关键词:智能数字钟;AT89C51;LED一、系统总体方案设计近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子时钟、数字时钟等等。
这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,精确度高等特点。
单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。
但是却很少知道它的部结构以及工作原理。
由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行定时、校时功能。
输出设备显示器可以用液晶显示技术和数码管显示技术。
单片机芯片作为控制系统的核心部件,它除了具备微机CPU的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、控制系统的输出量,实现自动控制。
在本次设计中采用单片机技术来实现数字钟的功能。
微处理器的选择,本设计采用AT89C51单片机。
显示电路的选择,本设计采用由LED驱动器MC14543构成的7位LED显示电路。
还有一些其他控制电路,如:晶振电路,复位电路,键盘电路和报警电路。
[1]1、系统结构框图根据系统总体要求,以单片机为核心,共六个模块组成,既:单片机模块、晶振电路模块、复位电路模块、独立键盘模块、显示电路模块和报警电路模块。
按照系统设计功能的要求。
电路系统构成框图如图1所示。
2+5V直流电,供给AT89C51AT89C51单片机图1 系统构成框图的部电路正是在时钟信号的控制下,严格地按时序执行指令进行工作。
在执行指令时,CPU首先到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号完成指令所规定的操作。
复位是单片机的初始化操作,只需给AT89C51的复位引脚RESET加上大于2个机器周期的高电平就可使AT89C51复位。
当AT89C51进行复位时,PC初始化为0000H,使AT89C51单片机从程序存储器的0000H单元开始执行程序。
除了进入系统的正常初始化之外,当程序运行出错(如程序“跑飞”)或操作错误使系统处于“死锁”状态时,也需要按复位键即RESET为高电平,使AT89C51摆脱“跑飞”或“死锁”状态而重新启动程序。
键盘的任务有三项:(1)首先判别是否有键按下。
若有,进入下一步工作。
(2)识别哪一个键被按下,并求出相应的键值。
(3)根据键值,找到相应键值的处理程序入口。
在本设计中,键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。
通过键盘,可以预置时间、星期。
常见的LED数码管为“8”字型的,共计8段。
每一个段对应一个发光二极管。
这种数码管显示器有共阳极和共阴极两种,本文采用共阴极接法。
共阴极LED数码管的发光二极管的阴极连接在一起,通常此公共阴极接地。
当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。
采用MC14543作为LED驱动器来实现LED的动态扫描驱动,通过七位共阴LED显示星期、时、分、秒。
通过加入一个使用晶体管驱动的蜂鸣器报警电路,当时间到底整点时,报警电路进行报时。
工作原理为:P1.7接晶体管基极输入端,当P1.7输出高电平时,晶体管导通,压电式蜂鸣器两端获得+5V电压而鸣叫;当P1.7输出低电平时,晶体管截止,蜂鸣器停止发声。
[2]3、计时方案电脑数字钟的秒信号是利用AT89C51单片机部定时器TO产生的。
由于振荡器的晶振频率为6MHz,使得TO的最大定时时间远远小于1秒,因此,在设计时采用了硬件计数与软件计数相结合的方式,即通过TO产生0.1S的时基信号,然后再利用软件进行计数,从而产生1秒钟的时间信号。
在设计中,定时器TO采用了中断方式。
当定时时间到时,定时器向CPU申请一次中断,CPU响应中断后转入中断服务程序,在TO的中断服务程序中实现时、分、秒的累加,即每产生一次中断,0.1S时基单元的容加1,当0.1S时基单元的容等于10时,便产生1S信号,使秒计数单元的容加1,并将0.1S时基单元的容清0;当秒计数单元计满60后,向分计数单元进位,使分计数单元的容加1,并将秒计数单元的容清0;当分计数单元计满60后,向时计数单元进位,使时计数单元的容加1,并将分计数单元的容清0;时计数单元计满24后清O。
[3]二、系统硬件设计硬件电路是一个系统的重要部分,在本次设计中主要是以AT89C52为核心控制器,外加一些控制电路来实现数字钟的基本功能。
下面分别介绍各个控制电路模块的功能及其工作原理。
1、电源模块电源模块如图2 电源电路,考虑到测量仪器的应用方便,本设计采用9V干电池经LM7805稳压,再经稳压管D1稳压后输出+5V直流电,供给AT89C51单片机模块、晶振电路模块、复位电路模块、独立键盘模块、显示电路模块和报警电路模块所需的工作电源,电源正常工作由LED指示灯指示。
图2 电源模块2、单片机模块本设计采用AT89C51单片机。
AT89C51单片机是一种低功耗、高性能CMOS8位微控制器,具有8K在线可编程存储器。
AT89C51有5个中断源,2个可编程的16位定时器/计数器。
低功耗节电模式有空闲模式和掉电模式。
AT89C51的引脚图如下图所示:(1)RESET:复位信号输入端,高电平有效。
(2)/VP:是外部程序存储器访问允许控制端。
(3)XTAL1/XTAL2:片振荡器反向放大器和时钟发生器电路的输入/输出端。
(4):片外程序存储器的读选通信号,低电平有效。
(5)ALE/:ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存信号,将低8位地址锁存在片外的地址锁存器中。
[4](6)P0口:8位,漏极开路的双向I/O口。
(7)P1口:8位,准双向I/O口,具有部上拉电阻。
(8)P2口:8位,准双向I/O口,具有部上拉电阻。
(9)P3口:8位,准双向I/O口,具有部上拉电阻。
还可提供第二功能。
3、晶振电路模块晶体振荡器电路给数字钟提供一个频率稳定准确的12MHz 的方波信号,可保证数字钟的走时准确及稳定。
AT89C51部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体和微调电容,构成一个稳定 的自激振荡器,图4为AT89C51部时钟方式的电路。
电路中的两个电容典型值通常选择为30pF ,该电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。
晶体振荡的围通常是在1.212MHZ 。
晶体的频率越高,系统的时钟频率越高,单片机的运行速度也就越快。
[5]4、LED 显示电路模块系统采用动态显示方式,用P0口来控制LED 数码管的段控线,而用P2口来控制其位控线。
动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。
图中的MC14543作为LED 驱动器来实现LED 的动态扫描驱动,而7个4.7千欧姆电阻则起限流作用。
由LED 驱动器MC14543构成的7位LED 显示电路如图5所示。
图3 单片机模块图4 晶振电路模块要想让数码管那一段亮,在该数码管位控段为高电平的情况下给这段送高电平就可以了。
显示电路结构采用动态扫描的方式,所有数码管的段控端公用LED驱动器MC14543的7根输出线,数码管的段控端a、b、c、d、e、f、g分别通过一个510欧姆的电阻接到MC14543输出口的a、b、c、d、e、f、g口线上,每个数码管的位控线单独占用单片机P2口一根输出口线,7位数码管从高位到低位分别接P2.0~P2.6引脚。
段控码(高电平有效)由P0口输出经上拉电阻上拉电压后通过驱动器MC14543送到数码管的段控端,位控码由P2口输出经三极管S9012驱动后送到数码管的位控端。
[6]5、独立键盘模块独立式键盘的特点是:一键一线,各键相互独立,每个按键各接一条I/O口线,通过检测I/O输入线的电平状态,可以很容易地判断哪个按键被按下。
图6中的上拉电阻保证按键释放时,输入检测线上有稳定的高电平,当某一按键按下时,对应图6 键盘电路模块的检测线就变成了低电平,与其它按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判别哪一条I/O输入线为低电平,就很容易识别出哪个按键被按下。
在本设计中,用四个键来实现对星期和时间的校对,按Kweek来调节星期,按Khour来调节小时的时间,按Kmin来调节分针的时间,按Ksec来调节秒的时间。
6、复位电路模块图7所示为复位电路原理图,复位是单片机的初始化操作,其主要功能是把PC 初始化为0000H,使单片机从0000H单元开始执行程序,并使其它功能单元处于一个确定的初始状态。
按键手动复位有电平和脉冲两种方式,本设计采用按键电平复位电路,它是通过复位端RESET经电阻与Vcc电源接通而实现的,它兼具上电复位功能。