单片机时钟控制系统设计.
单片机系统的时钟与定时器设计原理详解

单片机系统的时钟与定时器设计原理详解引言:随着现代电子技术的快速发展,单片机在各个领域得到了广泛应用。
在单片机系统中,时钟和定时器是非常重要的组成部分。
时钟用来驱动整个单片机系统的节奏,而定时器用于实现各种时间相关的功能。
本文将详细解析单片机系统中时钟和定时器的设计原理。
一、时钟设计原理:在单片机系统中,时钟充当着同步整个系统操作的功能。
它是一个稳定可靠的信号源,用于指导单片机各个部件的工作。
时钟信号通常由晶体振荡器产生,通过芯片内部的倍频电路进行频率提升。
常见的时钟频率有4MHz、8MHz、16MHz等。
时钟的设计需要考虑以下几个方面:1. 稳定性:时钟信号必须具有高稳定性,以确保整个系统的正常运行。
通常使用石英晶体作为振荡器,由于石英晶体具有稳定频率的特性,因此可以提供可靠和精确的时钟信号。
2. 频率选择:时钟频率的选择应根据具体的应用需求进行。
较高频率的时钟可以提高系统的处理速度,但同时也会增加功耗。
因此,在设计时应合理选择适当的时钟频率。
3. 电源噪声:电源噪声对时钟信号的稳定性有很大影响。
为了减小电源噪声对时钟的干扰,可以采用电源滤波电路,提高时钟信号的抗干扰能力。
4. 时钟分频:有时候需要减小时钟频率用于驱动其他外设,可以通过时钟分频器来实现。
分频器可以将高频的时钟信号分频得到较低频率的时钟信号。
二、定时器设计原理:定时器在单片机系统中有着广泛的应用,可以实现延时、定时、脉冲生成等功能。
定时器通常由一个计数器和相关的控制逻辑组成。
定时器的设计需要考虑以下几个方面:1. 计数器选择:在选择定时器时,需要根据需求选择适当的计数器位数。
通常,8位计数器可以计数255个时间单位,16位计数器可以计数65535个时间单位。
计数器的位数越大,可以表示的时间范围就越大,但同时也会增加硬件成本和资源占用。
2. 定时器模式:定时器可以有不同的工作模式,如定时模式、脉冲计数模式等。
定时模式用于实现定时功能,脉冲计数模式用于计算脉冲的个数。
基于C51单片机的数字时钟课程设计(C语言,带闹钟).

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:电子钟 AT89C52 硬件设计软件设计目录一、数字电子钟设计任务、功能要求说明及方案介绍 (4)1.1 设计课题设计任务 (4)1.2 设计课题的功能要求说明 (4)1.3 设计课的设计总体方案介绍及工作原理说明 (4)二、设计课题的硬件系统的设计 (5)2.1硬件系统各模块功能简要介绍 (5)2.1.1 AT89C52简介 (5)2.1.2 按键电路 (6)三、设计课题的软件系统的设计 (6)3.1 使用单片机资源的情况 (6)3.2 软件系统个模块功能简要介绍 (7)3.3 软件系统程序流程框图 (7)3.4 软件系统程序清单 (7)四、设计课题的设计结论、仿真结果、误差分析 (9)4.1 设计结论及使用说明 (9)4.2 仿真结果 (10)结束语 (12)参考文献 (12)附录 (13)附录A:程序清单 (13)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。
具有时间显示,并有时间设定,时间调整功能。
1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。
毕业设计63单片机控制时钟设计

目录摘要 (1)引言 (2)1. 多功能数字时钟的特点及发展趋势的概述 (3)1.1多功能数字时钟的特点及发展趋势 (3)2 多功能数字时钟电路的原理与设计 (3)2.1电路组成及工作原理 (3)2.2软件设计 (4)2.3写操作 (5)2.4读操作 (6)2.5 X1 226独特的振荡器频率在线补偿调节功能 (6)3. 多功能数字时钟电路的主要程序设计 (7)结论 (14)结束语 (15)致谢 (16)参考文献 (17)摘要随着人类科技文明的发展,人们对于时钟的要求在不断地提高,时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
在二十一世纪,随着社会的发展,多功能数字时钟应用更为广泛,并成为所有产品中不可或缺的一部分,象手机、计算机、冰箱都运用得到时钟控制电路,更多的高科技产品也有这不能缺少,而在生活中也用时间来定时及控制功能。
关键词:实时时钟, I2C接口, 应答信号ACK , 掉电时的电池切换AbstractAlong with human science and technology civilization development, the people in enhance unceasingly regarding the clock request,the clock has been regarded not merely as one kind to use for to demonstrate the time the tool, it also needs in very many practical applications to be able to realize more other functions.In the 21st century, along with society's development, the multi-purpose digital clock application is more widespread, and becomes in all products an indispensable part, looks like the handset, the computer, the refrigerator all utilizes obtains the clock controlling electric circuit, the more high tech product also has this not to be able to lack, but also uses the time in the life to come fixed time and the control function.Key word: Real-time clock,The I2C connection, the answering signal, ACK, falls when the electricity battery cut引言X1226具有时钟和日历的功能,时钟依赖时、分、秒寄存器来跟踪,日历依赖日期、星期、月和年寄存器来跟踪,日历可正确通过2099年,具有自动闰年修正。
基于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单片机的工作原理基于冯诺伊曼体系结构,即程序指令和数据存储在同一块存储器中,通过总线系统进行传输。
基于单片机电子时钟的设计与实现

基于单片机电子时钟的设计与实现一、设计目标设计一个基于单片机的电子时钟,能够准确显示时间并能够进行设置和调整。
二、硬件设计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、硬件设计单片机选择:选择合适的单片机是整个系统设计的关键。
常见的单片机如STM32、AT89C51 等,具有不同的性能和特点。
根据系统需求,我们选择了 AT89C51 单片机,其具有成本低、性能稳定等优点。
时钟芯片:为了保证时间的准确性,需要选择高精度的时钟芯片。
DS1302 是一款常用的实时时钟芯片,具有低功耗、高精度等特点,能够为系统提供准确的时间信息。
显示模块:显示模块用于显示时间。
常见的显示模块有液晶显示屏(LCD)和数码管。
考虑到显示效果和成本,我们选择了 1602 液晶显示屏,能够清晰地显示时间、日期等信息。
按键模块:按键模块用于设置时间和调整功能。
通过按键可以实现时间的校准、闹钟的设置等功能。
电源模块:为整个系统提供稳定的电源。
可以选择电池供电或外部电源供电,根据实际使用场景进行选择。
2、软件设计编程语言:选择合适的编程语言进行软件编程。
C 语言是单片机编程中常用的语言,具有语法简单、可读性强等优点。
主程序流程:主程序首先进行系统初始化,包括单片机端口初始化、时钟芯片初始化、显示模块初始化等。
然后读取时钟芯片中的时间信息,并将其显示在液晶显示屏上。
通过按键检测模块,判断是否有按键操作,如果有,则进行相应的处理,如时间校准、闹钟设置等。
中断服务程序:为了保证时间的准确性,需要使用定时器中断来实现时钟的计时功能。
在中断服务程序中,对时钟芯片进行时间更新,确保时间的准确性。
三、硬件电路设计1、单片机最小系统单片机:AT89C51 单片机是整个系统的核心,负责控制和协调各个模块的工作。
基于单片机的作息时间控制钟系统毕业设计 改过!!~~!!!
高等教育自学考试毕业论文学生姓名:林于舜考籍号:911411101557专业年级:题目:基于单片机的作息时间控制钟系统指导教师:桂玲讲师评阅教师:年月目录1 引言 (3)1.1作息时间控制钟系统概述 (3)1.2本设计任务和主要内容 (4)2 系统主要硬件电路设计 (5)2.1 单片机总体设计原理 (5)2.2 各功能模块分析 (5)2.2.1 SPCE061A性能简介 (5)2.2.2 扩展部分实现 (8)3 系统软件设计 (9)3.1 软件主程序 (9)3.2 软件主要子程序 (10)3.2.1 键盘扫描子程序 (10)3.2.2 万年历计算子程序 (10)3.2.3 校时子程序 (11)3.2.4 播放语音子程序 (12)4 系统调试 (14)4.1 调试 (14)4.1.1 软件调试 (14)4.1.2 硬件调试 (14)4.1.3 软硬联调 (14)5 结束语 (15)参考文献 (16)我已给你调好了标题,自动生成目录,加上附录一:你设计的硬件电路图,附录二:软件程序摘要本设计是一个具有报时功能的作息时间控制钟。
它利用SPCE061A单片机的2Hz 时基计时,进行年历计算,并用SPCE061A的语音功能将它报出来;在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。
本设计是一个具有报时功能的作息时间控制钟。
它利用SPCE061A单片机的2Hz时基计时,进行年历计算,并用SPCE061A的语音功能将它报出来;在进行时间计算,分每加1时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。
SPCE061A的DAC 为电流型输出,经负载电阻R1、三极管Q1放大驱动扬声器SPEAKER放音,SPEAKER可选用4Ω或8Ω扬声器。
IOA15接一个LED,到规定的作息时间用LED闪烁来表示,使用者可根据具体需要来控制电铃、播放提示语等。
凌阳芯片的工作电压为3.3v,我们给出了获得工作电压两种方法。
51单片机电子时钟设计
51单片机电子时钟设计电子时钟是一种非常实用的电子设备,它可以准确地显示时间,并拥有一系列的功能,如闹钟、日历等。
使用51单片机设计电子时钟,可以实现这些功能,同时还能够进行功能扩展,更好地满足用户需求。
首先,我们需要硬件上的准备工作。
51单片机需要与时钟(晶振)和显示器(LCD模块)进行连接。
晶振是提供单片机时钟脉冲的源头,LCD模块用于显示时间和各种功能。
同时,在电路中还需要进行一些扩展,如实时时钟模块(RTC模块)、按键模块等。
在软件设计方面,主要需要考虑以下几个方面:1.时钟脉冲:通过配置晶振的频率,可以生成单片机所需的时钟脉冲。
这个脉冲控制了单片机的运行速度,从而影响到时钟的准确性。
需要根据晶振频率进行相关配置。
2.时间的获取和计算:通过RTC模块可以获取当前的时钟数据(包括年、月、日、时、分、秒)。
在程序中,需要通过相应的接口获取这些数据,并进行计算。
比如,在显示时钟的时候,可以通过获取秒数、分钟数和小时数,并将其转换为相应的字符串进行显示。
3.菜单和按键功能:为了实现更多的功能,我们可以通过按键来实现菜单切换和功能选择。
在程序中,需要对按键进行扫描,判断按键的状态,然后进行相应的操作。
比如,按下菜单键可以进入菜单界面,通过上下键选择不同的功能,再通过确定键进行确认。
4.闹钟功能:闹钟功能是电子时钟中常见的功能之一、通过设置闹钟时间,并进行闹钟的开启或关闭,可以在指定的时间点触发相应的报警动作。
在程序中,需要编写逻辑判断闹钟是否到达指定的时间,然后触发报警。
5.日历功能:除了显示时间,电子时钟还可以显示当前的日期,包括年、月、日。
在程序中,需要编写相关的逻辑来获取日期数据,并进行显示。
通过以上的步骤,我们可以基本实现一个简单的电子时钟功能。
当然,根据用户的需求,还可以进行更多的功能扩展,比如添加温湿度监测、自动调光等功能。
总结起来,51单片机电子时钟的设计主要包括硬件和软件两个方面。
单片机电子时钟课程设计报告
单片机电子时钟课程设计报告一、设计目的。
本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。
通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。
二、设计原理。
本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。
利用数码管来显示小时和分钟,通过按键来调整时间。
同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。
三、设计方案。
1. 硬件设计。
(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。
(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。
(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。
(4)按键输入,设计按键来调整时间,包括调整小时和分钟。
(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。
2. 软件设计。
(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。
(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。
(3)按键处理,设计按键扫描程序,实现对时间的调整。
(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。
四、设计实现。
1. 硬件实现。
根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。
2. 软件实现。
编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。
五、实验结果。
经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。
六、总结与展望。
通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。
在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。
同时,也为学生今后的科研和创新工作奠定了良好的基础。
基于STC89C52单片机时钟的设计与实现
基于STC89C52单片机时钟的设计与实现1. 本文概述本文主要介绍了基于STC89C52单片机和DS1302时钟芯片的电子时钟设计与实现。
该电子时钟系统具有年月日等基本时间显示功能,并集成了秒表计时处理、闹钟定时、蜂鸣器和温度显示等附加功能。
系统采用LCD1602作为液晶显示器件,通过单片机对时钟和温度等数据进行处理后传输至LCD进行显示。
用户可以通过按键对时间进行调节,同时,单片机还通过扩展外围接口实现了温度采集等功能。
本文的目标是提供一个功能丰富、易于操作的电子时钟系统,为学习和应用单片机技术提供一个实用的案例。
2. 系统设计要求在设计基于STC89C52单片机的时钟系统时,我们需要考虑以下几个关键的设计要求:时钟系统必须具备基本的时间显示功能,能够以小时、分钟和秒为单位准确显示当前时间。
系统还应支持设置闹钟功能,允许用户设定特定的时间点进行提醒。
系统需要保证长时间稳定运行,具备良好的抗干扰能力,确保在各种环境下都能准确计时。
还应具备一定的容错能力,即使在操作失误或外部干扰的情况下,也能保证系统的正常运行。
用户界面应简洁直观,便于用户快速理解和操作。
时钟的显示部分应清晰可见,即使在光线较暗的环境下也能保持良好的可视性。
同时,设置和调整时间的操作应简单易懂,方便用户进行日常使用。
在设计时钟系统时,应考虑到未来可能的功能扩展,如温度显示、日期显示等。
系统的设计应具有一定的灵活性和扩展性,以便在未来可以轻松添加新的功能模块。
鉴于时钟系统可能需要长时间运行,能耗是一个重要的考虑因素。
设计时应选择低功耗的元件,并优化电源管理策略,以延长电池寿命或减少能源消耗。
在满足上述所有要求的同时,还需要控制成本,确保产品的市场竞争力。
这可能涉及到对单片机的编程优化、选择性价比高的外围元件等措施。
通过满足上述设计要求,我们可以确保开发出一个功能完善、稳定可靠、用户友好、易于扩展、节能环保且成本效益高的STC89C52单片机时钟系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机时钟控制系统设计》课程设计学生姓名:学号:专业班级:指导教师:二00八年七月四日目录1.课程设计目的 (2)2.课程设计题目描述和要求 (2)3.课程设计报告内容 (2)4.课程设计体会 (13)参考文献 (13)附录1 (14)单片机时钟控制系统设计1、课程设计目的1.1、掌握单片机实际系统的开发步骤;1.2、进一步掌握单片机的中断系统及其服务程序的编写方法;1.3、掌握定时系统、计数初值的计算;1.4、掌握硬件设计并熟悉AT89C51的功能及引脚;1.5、掌握单片机汇编程序的设计、编写及调试的方法;2、课程设计题目描述和要求基于AT89C51(时钟频率等于12MHZ)设计单片机时钟控制系统,主要由AT89C51、6位LED显示器、4个按钮组成。
通过AT89C51内部定时器T0中断来计时,再通过6位LED显示器来显示出来,通过定时器T1、外部中断0、外部中断1及外部按钮来调整时间。
其中4个按钮的作用如下:按钮1:单片机的复位按钮;按钮2:小时的调整按钮;按钮3:分钟的调整按钮;按钮4:秒的调整按钮。
按复位键后,单片机时钟从零开始计时;当时间出现偏差时,可以通过时、分、秒的调整按钮来调整时间或者通过调整按钮来设定我们所需要的初始时间;当时间达到了23时59分59秒时,再过1秒时钟控制系统就会自动变为0时0分0秒。
3、课程设计报告内容3.1总体方案该时钟控制系统电路是基于AT89C51芯片设计的,还包括一些LED显示管、按钮、晶振器等。
其设计原理如图1所示:图1硬件框架图利用上述设计原理图,通过Protel软件可得系统的电路原理图(见附录1)。
3.2硬件介绍本设计采用硬件有AT89C51单片机,并行I/O接口芯片74LS273、6个LED显示器和4个控制按钮, 其中3个按钮调整时间(按钮2:小时的调整按钮;按钮3:分钟的调整按钮;按钮4:秒的调整按钮)。
3.2.1 AT89C51单片机介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失内存制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁内存组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51引脚图如图2所示。
图2 AT89C51引脚图1)主要特性与MCS-51 相容;4K字节可编程闪烁内存;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24Hz;三级程序内存锁定;128×8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;低功耗的闲置和掉电模式;片内振荡器和时钟电路。
2)管脚说明·VCC:供电电压。
·GND:接地。
·P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收TTL门电流。
当P1口的管脚第一次写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
·P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
·P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序内存或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
·P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,P3口同时为闪烁编程和编程校验接收控制信号。
·RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
·ALE/PROG:当访问外部内存时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
·/PSEN:外部程序内存的选通信号。
在由外部程序内存取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。
·/EA/VPP:当/EA保持低电平时,则在此期间外部程序内存(0000H-FFFFH),不管是否有内部程序内存。
注意加密方式1时,/EA将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序内存。
在FLASH编程期间,此引脚也用于施加)。
12V编程电源(VPP·XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
·XTAL2:来自反向振荡器的输出。
3.2.2并行I/O接口芯片74LS273介绍74LS273是8位数据/地址锁存器,一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。
其管脚图为:图3 74LS273的管脚D0~D7:出入;Q0~Q7:输出;第一脚WR:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0(低电平);CP(CLK):触发端,上升沿触发,即当CP从低到高电平时,D0~D7的数据通过芯片,为0时将资料锁存,D0~D7的数据不变。
3.2.3七段LED显示器介绍单个LED是由7段发光二极管构成的显示单元。
有10个引脚,对应于7个段、一个小数点和两个公共端。
在显示电路中,这些发光二极管有两种接法:共阳极接法和共阴极接法。
所以,采用了4个LED连体的、内部已将其相应段接好的共阳极LED,它具有12个引脚,含7个段和4个公共端,为提高数码管的亮度,可在位选在线加入一个三极管驱动电路。
上电后系统经过初始化,查询是否有功能切换键按下:有,则进入用户设定模式状态;无,则进入默认缺省工作状态。
在缺省工作状态下,LED数码管按照程序设定好的若干亮灯花样模式程序顺序调用往下走,如果想进入用户设定模式状态,只需按下功能切换键即可。
共阳极7段LED数码管引脚图如图4所示。
从图可以看出,要是数码管显示数字,有两个条件:(1)是要在VT端加正电源;(2)要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。
这样才能显示的。
图4 共阳极7段LED数码管本设计LED采用共阳极连接,其驱动代码如下表所示。
驱动代码表3.3单元电路介绍3.3.1时钟电路MCS-51的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。
所设计的电路采用的是内部时钟方式。
AT89C51内部有一个用于构成振荡器的高增益反相放大器,引脚XTALI和XTAL2分别为此放大器的输人端和输出端,其频率范围为1.2~12MHz。
该放大器与作为回馈组件的片外晶振器一起构成自激振荡器。
其电路如图5所示。
对外接电容的值虽然没有严格的要求,但电容的大小多少会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度稳定性。
电容容量一般在20~100pF之间选择,当时钟频率为12 MHz时典型值为30pF。
图5 单片机时钟电路3.3.2复位电路MCS-51的复位电路包括上电复位电路和按键(外部)复位电路。
不管何种复位电路,都是通过复位电路产生的复位信号(高电平有效)由RST引脚送进到内部的复位电路对MCS-51进行复位,复位信号要持续两个机器周期以上才能可靠复位。
此处为按键电平复位电路,按下复位键后,电容C被充电使RST端为高电平,实现复位功能。
如图6所示:图6 按键电平复位电路3.3.3调时电路在该电路中有三个按钮来控制时/分/秒的调整。
当时间出现偏差时,可以通过此电路来校准时间;当时钟控制系统复位后,也可以通过此电路来设置时间的初始值。
3.3.4显示电路为了简化硬件线路,降低成本,利用LED动态显示接口实现。
这采用74LS273来锁存,通过P0口送LED数码显示管的段码,再结合P2口送的位码就可实现时间日期的显示。
位码的显示是通过P2口控制某位选通,该位应显示数码的段码同时加上段码线上,即每一时刻仅有一位数码管被点亮,当轮流显示的速度较快时,由于人眼的视觉暂留现象,看起来就像所有位同时显示一样。
晶体管和电阻是为数码管的位显示提供驱动电流。
3.4软件设计本设计软件部分包含四大部分:主程序、按钮中断子程序、显示子程序、T0中断子程序。
3.4.1 主程序主程序完成定时器T0、T1的方式1的初始化及外部中断0、1的初始化,然后设置时/分/秒的初始值,最后通过循环程序把时/分/秒的高位、低位元放在显示缓冲区里并调显示子程序来显示。
主程序流程图如图7所示。
图7主程序流程图图8 按钮中断子程序流程图3.4.2按钮中断子程序按钮中断子程序完成时/分/秒的调整或设置时间的初始值。
当时钟控制系统时间出现偏差用这三个按钮来进行调整;当时钟控制系统复位后,三个按钮用来设置系统的初始值。
按钮中断子程序流程图如图8所示。
3.4.3显示子程序显示子程序完成时间的动态显示,通过位显示控制和段显示控制来控制显示管显示时间。
其中,位显示控制通过P1口来实现;段显示控制通过P0口来实现。
显示子程序流程图如图9所示:3.4.4 T0中断子程序通过主程序中设置的初始值,每100s T0就产生一次中断;每产生10000次中断就是1秒;通过程序来实现时钟的正常功能。