简易电子钟的设计与实现

合集下载

学科竞赛-简易电子时钟设计实验报告

学科竞赛-简易电子时钟设计实验报告

简易电子时钟设计实验报告实验二简易电子时钟设计学院:研究生院学号:1400030034 姓名:张秋明一、实验目的及要求设计一个简易电子时钟,实现分、秒计时功能,使之在控制实验板上液晶输出分、秒数值,在环境下,编写源文件,用软件器件实现。

二、实现程序module clk_gen(clk,rst_n,clk_pwm,clk_frame);input clk;input rst_n;output clk_pwm;output clk_frame;reg clk_pwm;reg clk_frame;reg [11:0] count_pwm;reg [13:0] count_frame;always@(posedge clk or negedge rst_n) //一秒的设置beginif(rst_n==1'b0) begincount_pwm clk_pwm endelse beginif(count_pwm==12'b0000000001010)begincount_pwm clk_pwm endelsecount_pwm endendalways@(posedge clk or negedge rst_n)beginif(rst_n==1'b0) begincount_frame clk_frame endelse beginif(count_frame==14'b11000000000000) begincount_frame clk_frame endelsecount_frame endendendmodulemodule clock(clkk,rstn,minute_h,minute_l,second_h,second_l); //时钟的进位机理input clkk;input rstn;output [3:0] minute_h; //分钟的高位output [3:0] minute_l; //分钟的低位output [3:0] second_h; //秒钟的高位output [3:0] second_l; //秒钟的低位reg [3:0] minute_h;reg [3:0] minute_l;reg [3:0] second_h;reg [3:0] second_l;reg second_l_flag; //秒钟低位的进位标志reg second_h_flag; //秒钟高位的进位标志reg minute_l_flag; //分钟低位的进位标志reg clk1;reg [22:0] count;always@(posedge clkk)beginif(count == 23'b10110111000110110000000)begincount clk1 endelsecount endalways @(posedge clk or negedge rstn)beginif(!rstn)clk1 elseclk1 endalways @(posedge clk1 or negedge rstn)if(!rstn)beginsecond_l second_l_flag endelsebeginif(second_l==4'b1001)beginsecond_l second_l_flag endendalways @(posedge second_l_flag or negedge rstn)if(!rstn)beginsecond_h second_h_flag endelsebeginif(second_h==4'b0101)beginsecond_h second_h_flag endendalways @(posedge second_h_flag or negedge rstn)//分钟的低位if(!rstn)beginminute_l minute_l_flag endelsebeginif(minute_l==4'b1001)beginminute_l minute_l_flag endend//分钟的高位always @(posedge minute_l_flag or negedge rstn) //进位标志位为上升沿时变化if(!rstn)beginminute_h endelsebeginif(minute_h==4'b0101)beginminute_h endendendmodule三、实验步骤1、建立新工程dzsz,在Location栏选用上面所建文件夹yjxs, 然后点击NEXT,在新弹出的对话框NEW PROJECT点击NEXT,在新出现的对话框中选择相应芯片,本实验所选芯片应为MachXO2-LCMXO2-1200ZE-2MG132C.2、在Lattice Diamond 主界面File->Add->Existing files,添加刚刚放新建dzsz文件夹中的.v文件。

简易电子钟的设计与实现

简易电子钟的设计与实现

简易电子钟的设计与实现电子钟是一种普遍使用的计时设备,它便利性与实用性使其成为家庭、学校、办公室等各个场所的重要组成部分。

本文将介绍一种简易电子钟的设计和实现,希望读者在本文的指导下,能够自己动手制作一款属于自己的电子钟。

1. 硬件选购制作电子钟需要一些硬件设备,在硬件选购时,需要考虑以下因素:- 显示器件:显示器件如LED点阵和数码管是电子钟的重要组成部分,我们可以选择4位LED数码管或者128*64 OLED显示屏。

- 控制器:控制器有多种选择,我们可以使用Arduino单片机或者STM32单片机,这两个均为常用的开发板,容易上手,支持多种编程语言。

- 时间模块:时间模块用于获取当前时间,我们可以选择DS1302时钟模块或者DS3231高精度时钟模块。

- 其他器件:红外遥控模块,蜂鸣器等辅助器件,可以根据需要选择。

2. 硬件连接在确定所需器件后,首先需要对这些器件进行连接,连接方式如下:- 数码管:数码管有四根引脚,分别代表数码管的4位数码,分别对应数字0~9,连接数码管需要了解其引脚定义,我们可以根据不同原理图实现引脚连接。

- 控制器:控制器和显示器连接,通过控制器的输入输出端口和显示器的输入输出端口相连。

- 时间模块:时间模块通过IIC通讯协议与控制器相连。

- 其他器件:按照器件对应原理图进行连接。

3. 程序设计电子钟的最重要的部分是程序设计,通过编写程序,实现获取时间并在数码管或者显示屏上显示当前时间的功能。

电子钟的程序设计分为两个部分:硬件驱动和逻辑控制。

硬件驱动:硬件驱动是基础部分,用于控制指定端口的输入输出和基本的口蹦,例如我们需要实现时间的获取和进行控制,我们需要实现对时间模块进行操作的函数,例如读取时间,设置时间等功能。

逻辑控制:逻辑控制是电子钟的核心部分,它把硬件驱动和显示控制进行了结合,实现了时间的获取和显示。

逻辑控制程序主要包括以下几个部分:- 时间获取:获取时间模块的信息。

基于单片机电子时钟的设计与实现

基于单片机电子时钟的设计与实现

基于单片机电子时钟的设计与实现一、设计目标设计一个基于单片机的电子时钟,能够准确显示时间并能够进行设置和调整。

二、硬件设计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. 引言电子时钟是一种用数字形式显示时间的时钟,广泛应用于日常生活中。

本文将介绍一种简易的电子时钟设计方案,包括硬件设计和软件实现。

该电子时钟采用数字LED显示屏,并通过开发板上的微控制器控制时间的显示。

2. 硬件设计2.1 硬件组成该电子时钟的主要硬件组成包括:- 数字LED显示屏:用于显示时钟的小时和分钟数。

该显示屏采用共阳极的数码管,每个数字有7个段可以点亮。

- 微控制器:使用STM32F103C8T6微控制器,具备足够的输入输出和处理能力。

- 调节按钮:用于调节时钟的小时和分钟数。

2.2 电路设计数字LED显示屏的每个段通过一个继电器和一个可控硅管来控制。

继电器通过微控制器的输出口来控制,可控硅管则通过脉宽调制(PWM)来控制。

微控制器通过GPIO口读取调节按钮的状态,根据按钮的操作来调整时钟的小时和分钟数。

同时,微控制器通过定时器中断来实现时钟的运行和显示。

电路设计如下图所示:![电子时钟电路设计图](clock_circuit_design.png)3. 软件实现3.1 开发环境本设计使用Keil MDK开发环境进行软件的编写和调试。

Keil MDK 是一款常用的嵌入式开发工具,提供了强大的代码编辑、编译和仿真功能。

3.2 时钟控制软件中定义了一个结构体`Time`,包含了小时数和分钟数的变量。

通过定时器中断,每隔一秒钟将时钟的秒数加一,并根据秒数的变化更新时钟的小时和分钟数。

具体实现如下:cstruct Time {int hour;int minute;int second;void TIM2_IRQHandler(void) {if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM2, TIM_IT_Update); time.second++;if (time.second >= 60) {time.second = 0;time.minute++;}if (time.minute >= 60) {time.minute = 0;time.hour++;}if (time.hour >= 24) {time.hour = 0;}}3.3 数字显示根据时钟的小时和分钟数,将数字转换成BCD码,然后通过GPIO 口控制数字LED显示屏的每个段点亮或熄灭。

电子数字钟的设计与制作

电子数字钟的设计与制作

电子数字钟的设计与制作
设计和制作电子数字钟的步骤如下:
1. 确定需求:确定所要设计的电子数字钟的功能要求,如显示时间、日期、闹钟功能等。

2. 选取器件:选取合适的微控制器、显示屏、时钟芯片、按键等器件。

微控制器需要具备足够的处理能力和接口,以便于控制显示屏和处理输入信号。

3. 硬件设计:根据选取的器件,设计电路图和PCB布局。


括时钟电路、显示电路、按键电路、电源供电电路等。

4. 软件开发:编写嵌入式软件程序,实现时钟的各种功能。

包括处理时间的计算与显示、闹钟功能的设置与触发、用户界面的交互等。

5. 制作电路板:利用电子设计软件将电路图转化为PCB文件,并进行打样加工,制作出电路板。

6. 组装调试:根据设计好的布局,将所选取的器件焊接到电路板上。

完成后进行电路的检查、组装和连线等工作。

7. 软件烧录:通过编程器将软件程序烧录到微控制器中。

8. 调试测试:进行电源接入,对时钟的各个功能进行测试调试,确保其正常运行。

9. 外壳设计与制作:设计合适的外壳以保护电子数字钟,可以采用3D打印、注塑等方式制作外壳。

10. 最终装配与测试:将完整的电子数字钟进行装配,并进行
最后的测试以确保其功能正常。

基于51单片机的简易电子钟设计

基于51单片机的简易电子钟设计

基于51单片机的简易电子钟设计一、设计目的现代社会对于时间的要求越来越精确,电子钟成为家庭和办公场所不可缺少的设备之一、本设计基于51单片机,旨在实现一个简易的电子钟,可以显示当前的时间,并且能够通过按键进行时间的调整和设置闹钟。

二、设计原理本设计主要涉及到51单片机的IO口、定时器、中断、LCD显示技术等方面知识。

1.时钟模块时钟模块采用定时器0的中断进行时间的累加和更新。

以1秒为一个时间单位,每当定时器0中断发生,就将时间加1,并判断是否需要更新小时、分钟和秒的显示。

同时,根据用户按键的操作,可以调整时间的设定。

2.显示模块显示模块采用16x2字符LCD显示屏,通过51单片机的IO口与LCD连接。

可以显示当前时间和设置的闹钟时间。

初次上电或者重置后,LCD显示时间为00:00:00,通过定时器中断和键盘操作,实现时间的更新和设定闹钟功能。

3.键盘模块键盘模块采用矩阵键盘连接到51单片机的IO口上,用于用户进行时间的调整和设置闹钟。

通过查询键盘的按键状态,根据按键的不同操作,实现时间的调整和闹钟设定功能。

4.中断模块中断模块采用定时器0的中断,用于1秒的定时更新时间。

同时可以添加外部中断用于响应用户按键操作。

三、主要功能和实现步骤1.系统初始化。

2.设置定时器,每1秒产生一次中断。

3.初始化LCD显示屏,显示初始时间00:00:00。

4.查询键盘状态,判断是否有按键按下。

5.如果按键被按下,根据不同按键的功能进行相应的操作:-功能键:设置、调整、确认。

-数字键:根据键入的数字进行时间的调整和闹钟设定。

6.根据定时器的中断,更新时间的显示。

7.判断当前时间是否与闹钟设定时间相同,如果相同,则触发闹钟,进行提示。

8.循环执行步骤4-7,实现连续的时间显示和按键操作。

四、系统总结和改进使用51单片机设计的简易电子钟可以显示当前时间,并且实现时间的调整和闹钟设定功能。

但是由于硬件资源有限,只能实现基本的功能,不能进行其他高级功能的扩展,例如闹铃的音乐播放、温度、湿度的显示等。

电子钟的设计利用单片机最小系统设计一个电子钟

电子钟的设计利用单片机最小系统设计一个电子钟

电子钟的设计利用单片机最小系统设计一个电子钟电子钟是一种通过电子技术实现时间显示,并具备时间设置和报时功能的钟表装置。

它以单片机为核心控制器,通过系统设计和程序编写来实现。

本文将详细介绍如何利用单片机最小系统设计一个电子钟。

一、系统组成和功能设计电子钟系统主要由单片机、时钟电路、显示电路和按键电路组成。

其主要功能包括实时显示当前时间、设置时间和报时功能。

1.单片机选择单片机是电子钟系统的核心控制器,负责时钟的计时、控制和显示。

选择合适的单片机非常重要,要求具备较高的计算能力和稳定性。

常用的单片机有PIC、ATMELAVR、STM32等。

2.时钟电路设计时钟电路提供精确的时间基准,用于单片机的计时。

常用的时钟电路有晶体振荡器和RTC(实时时钟)芯片。

晶体振荡器产生的信号非常稳定,能够满足电子钟的计时要求。

RTC芯片能够提供更为精确的时间基准,并具备备份电池以保证时间的稳定。

3.显示电路设计显示电路用于将计算出的时间信息以可视化方式显示出来。

常用的显示器包括LED数码管、LCD液晶显示屏和数码管等。

其中,LED数码管和LCD液晶显示屏是较为常见的选择。

4.按键电路设计按键电路用于时间的设置和调整。

一般设计一个或多个按钮用于设置和调整小时、分钟等时间参数。

按键电路通常采用矩阵按键或者编码器方式,方便用户进行时间的设置。

二、硬件设计1.单片机电路单片机电路主要由单片机、时钟电路、复位电路、晶体振荡器等组成。

单片机应连接时钟电路以提供稳定的时间基准。

同时,还需设计一个复位电路以保证系统在启动时能够正常初始化。

2.显示电路选择合适的显示电路,如LED数码管或LCD液晶显示屏。

设计时需考虑到单片机的IO口数量和类型,并根据时间显示需求确定所需显示器的位数。

通过单片机控制IO口,将计算得到的时间信息传送到显示电路上,从而实现时间的显示。

3.按键电路设计按键电路,用于用户设置和调整时间。

按键电路由按键元件和控制电路组成。

简易电子钟设计范文

简易电子钟设计范文

简易电子钟设计范文电子钟是一种通过电子技术实现时间显示的设备。

它通常由一个数字显示屏,一个控制电路和一个电源组成。

其主要功能是显示小时、分钟和秒钟等时间信息,可以准确地显示时间,并可以根据需要设置闹铃功能。

设计一款简易电子钟可以使用Arduino等开发板或单片机来实现。

首先,我们需要选择一块合适的数字显示屏。

常见的数字显示屏有数码管和液晶显示屏两种类型,它们的显示原理和控制方式有所不同。

如果选择数码管作为显示屏,可以考虑使用常见的7段数码管,它由八个LED灯组成,可以显示0-9的数字以及一些字母和特殊符号。

数码管的控制方式是通过控制每个LED灯的亮灭来实现显示,可以使用数字输出口来控制。

Arduino的数字输出口可以输出高电平(5V)和低电平(0V),通过控制输出口的电平,就能够控制数码管的亮灭。

如果选择液晶显示屏作为显示器,可以选择字符型液晶显示屏或者图形型液晶显示屏。

字符型液晶显示屏通常可以显示一些字符或者数字,它的控制方式是通过并行或者串行接口来控制,可以使用开发板的GPIO口来实现。

图形型液晶显示屏可以显示更多的信息,它的控制方式是通过SPI接口或者I2C接口来控制,这需要相应的驱动库或者芯片来实现。

无论选择数码管还是液晶显示屏,我们都需要编写程序来控制显示。

程序的核心是一个循环,其中使用时钟模块来获取当前的时间,并使用相应的控制方式将时间信息显示在显示屏上。

如果需要设置闹铃功能,可以在循环中判断当前时间和设置的时间是否相等,如果相等则触发闹铃。

设计一个简易电子钟的完整步骤如下:1. 选择适合的开发板或者单片机,例如Arduino。

2.选择合适的显示屏,例如7段数码管或者液晶显示屏。

3.连接显示屏到开发板,根据显示屏的类型选择合适的引脚连接方式。

4.编写代码来控制显示屏显示时间信息。

5.添加时钟模块,用来获取当前的时间信息。

6.根据需要添加闹铃功能。

7.测试电子钟的功能和性能,不断优化改进。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易电子钟的设计与仿真一、设计要求和电路原理1.1 设计要求1)可以准确地显示北京时间。

2)时间显示选择24小时模式。

3)选用AT89C52单片机,将编写的程序下载到该单片机中,并能使数码管显示。

4)采用Keil C51编译,Proteus软件进行仿真。

1.2 设计原理与思路利用单片机的定时与中断系统功能实现电子钟的计数和调时。

采用AT89C52定时中断方式实现24小时制时钟精确的计时。

通过外部的12M(11.0529M)Hz 晶振产生稳定的谐振,在AT89C52的内部定时器电路实现定时,当定时器溢出时产生中断,累计定时器的定时时间达一秒时,数码管的秒显示加1,判断数码管的秒显示达60时,秒显示自动清零,分显示加1,判断分显示达60时,分显示自动清零,时显示加1,判断时显示达24时,时显示自动清零。

从而实现 00:00:00—23:59:59 之间的任意时刻显示。

为了使时钟能够灵活的对时间进行调整、校对,通过增加外部的按键实现简单的复位、时调整、分调整的功能。

形成一个具有复位和校时功能的简易电子时钟。

二、电子时钟设计方案2.1电子钟设计的基本方法2.1.1电子钟实现计时的方法利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计时。

(1) 计数初值计算:把定时器T0设为工作方式2,产生0.25ms定时中断,计数溢出4000次即得时钟计时最小单位秒,而4000次计数可用软件方法实现。

假设使用T/C0,方式2,0.25ms定时,fosc=12MHz。

则初值a满足(256-a)×1/12MHz×12μs =250μsa=6 (6H)TH0=#6H; TL0=#6H(2) 采用中断方式进行溢出次数累计,计满4000次为秒计时(1秒);(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。

2.1.2 电子钟的时间显示电子钟的时钟时间在8位数码管上进行显示,时、分、秒的显示值可以在单片机的内部RAM设置三个缓冲单元,30H、31H、32H分别存储时、分、秒的值。

显示如下表:表2.1 电子钟的时、分、秒显示2.1.3 电子钟的时间调整电子钟设置3个按键通过程序控制来完成电子钟的时间调整。

A键复位;按下A键,时钟显示初始值 12 00 00B键调整分;快速按下A键,分显示加1,当分显示为59,加1变成00C键调整时;快速按下B键,时显示加1,当时显示为23,加1变成002.2 芯片以及元件2.2.1 AT89C52简介AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的,是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Fl ash只读程序存储器和256 bytes的随机存取数据存储器(RAM),有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。

主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。

RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。

P0~P3 为可编程通用I/O 脚,其功能用途由软件定义。

下面对相关的引脚作介绍:➢VCC:+5V电源。

➢VSS:接地。

➢P0口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

➢P1 口:P1口是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

➢P2 口:P2口是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。

对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

Flash 编程或校验时,P2亦接收高位地址和一些控制信号。

➢P3 口:P3口是一组带有内部上拉电阻的8 位双向I/O 口。

P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。

对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。

P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能。

P3 口还接收一些用于Fl ash 闪速存储器编程和程序校验的控制信号。

➢RST:复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

➢XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。

➢XTAL2:振荡器反相放大器的输出端。

AT89C52芯片的引脚图和芯片图如下:图2.1 AT89C52引脚图和芯片图2.2.2 八位动态显示数码管1) 数码管动态显示接口图图2.2 数码管的动态显示接口图图2.3 数码管实物图2)数码管的动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

2.3 电子钟模块化电路2.3.1电子钟的硬件设备模块电子钟的总体硬件模块电路有:晶振、手动复位、数码管显、和时间调整和单片机接口电路,如图2.4所示。

下面分别介绍个模块的设计。

图2.4 电子钟硬件模块2.3.2 时钟电路模块图2.5所示为时钟电路原理图,在AT89C52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

图2.5 时钟电路2.3.3 复位电路模块单片机复位的条件是:必须使RST/VPD 或RST引(9)加上持续两个机器周期(即24个振荡周期)的高电平。

例如,若时钟频率为12 MHz,每机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。

单片机常见的复位如图所示,这是一个微分型电路。

电路为上电复位电路,它是利用电容充电来实现的。

在接电瞬间,RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。

只要保证RST为高电平的时间大于两个机器周期,便能正常复位(由电容的通电时间计算得到,复位电阻的阻值在10—30pF)。

该电路除具有上电复位功能外,若要复位,只需按图中的RST键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平。

图2.6 复位电路2.3.4 数码管显示电路模块系统采用动态显示方式,单片机AT89C52的P0口控制LED数码管的段选线,P2口控制数码管的位选线。

动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。

下图为共阴极8位数码管动态显示。

图2.7 数码管显示电路2.3.5 按键电路模块下图为按键模块电路原理图,A为复位键,B为时钟调控键,C为分钟调控键。

A、B、和C三个按键一路有上拉电阻连接高电平,另一路接入单片机的控制引脚P1.0,、P1.1、P1.2。

按钮断开时,控制引脚P1.0,、P1.1、P1.2均为高电平,当按下某一个按键时,控制引脚变为低电平,由程序控制其相应的作用。

图2.8 按键电路2.3.6 电子时钟系统的设计原理图结合所有的模块设计,综合得出电子钟系统的总体设计原理图如图2.9所示。

图2.9 电子钟原理图2.3.7 相关引脚和元件a)AT89C52单片机用到的引脚:P0口:用于控制数码管的段选P2口:用于控制数码管的位选P1口:P1口的P1.0,、P1.1、P1.2脚分别控制时钟的复位、分调整、时调整。

XTAL1、XTAL2:接晶振的脉冲输入RST:复位电路b)其他的元件和相关作用电阻R1—R11:上拉电阻,保护电路,起限流的作用电阻R12:复位电路的充电电阻8个8段数码管:1、2显示时,4、5显示分,7、8显示秒,3、6不显示。

电容C1、C2:晶振的微电容,单片机的脉冲周期产生晶振:12M,与电容构成晶振电路材料清单见附录1三、电子时钟的Protues仿真3.1 Protues软件概述Protues软件是英国Labcenter electronics公司出版的EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

Protues软件具有其它EDA工具软件(例:multisim)的功能。

这些功能是:(1)原理布图(2)PCB自动或人工布线(3)SPICE电路仿真(4)互动的电路仿真,用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

相关文档
最新文档