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

{
write_date(table1[num]);
delay(5);
}
TMOD=0x51;//启动定时器中断
TH0=0X3C; //50ms
TL0=0XB0;
TH1=0X00;
TL1=0X00;
EA=1;
ET0=1;
TR0=1;//打开定时器0
{
ri=1;
}
if(ri==32)
{
ri=1;
}
图5LCD液晶显示图
3
本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整程序、延时程序四大模块。系统的流程图如下图
是
否
设计思路:
本系统主要可分为主程序、定时计数中断程序、时间调整程序、延时程序和LCD液晶驱动程序。定时中断程序是利用单片机内部定时器0实现1秒的定时,然后利用软件延时实现分小时,时间调整程序是利用单片机的内部存贮器,把调整好的时间写到显示时间的存贮单元,然后启动定时器开始计时并显示,延时程序是利用软件实现延时达到去抖的目的。液晶启动程序是为了把单片机的数据送到显示器的同时让显示器的第6脚使能断的电平实现由1到0的跳变,使显示器执行显示的命令。主程序就是利用这些子程序中断程序实现显示、定时等功能。
write_com(0x80+9);
}
if(s1num==7)
{
while(!s1)
write_com(0x80+13);
}
if(s1num==8)
{
while(!s1);
s1num=0;
write_com(0x0c);
TR0=1;//开定时器
基于单片机的LCD数字电子钟

长春工业大学智能仪表综合训练设计说明书题目:基于单片机的LCD数字电子钟学生姓名:学号:专业:测控技术与仪器班级:指导教师:摘要数字电子钟是采用电子电路实现对年、月、日、时、分、秒数字显示的计时装置,由于数字集成电路的发展和石英晶体震荡器的广泛应用,使得数字电子钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,成为人们日常生活中不可缺少的必需品。
本文介绍了基于单片机的多功能数字电子钟设计。
系统以STC89C52RC为核心,具有时间和日期的显示及设置功能。
硬件电路包括STC89C52RC单片机小系统电路、数字显示电路、时钟日期电路几部分模块。
再通过C语言编程对各模块进行调试,最后达到设计要求的效果。
这种实现方法的优点是电路简单,性能可靠,实时性好,时间和日期精度高,操作简单,编程容易。
关键词:STC89C52RC单片机;LCD1602液晶显示器;时间设置;日期设置目录第1章前言 (4)1.1课题研究的现实性意义 (4)1.2国内外研究现状 (4)1.3课题基本要求 (5)第2章总体方案设计 (6)2.1方案原理 (6)2.2 硬件选择 (6)2.2.1单片机选择 (6)2.2.2显示器选择 (6)2.2.3晶振的选择 (7)第3章硬件设计 (8)3.1键盘电路 (8)3.2复位电路 (8)3.3晶振电路 (9)3.4 LCD显示电路 (10)第4章软件设计 (11)4.1 Protel 99SE (11)4.2程序主流程图 (11)4.3初始化流程图 (12)4.4延时中断子程序 (12)4.5时间设置子程序 (13)总结 (14)参考文献 (15)附录A:数字电子钟硬件原理图 (16)附录B :C语言源程序 (17)第1章前言1.1课题研究的现实性意义20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
基于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单片机设计的简易电子钟可以显示当前时间,并且实现时间的调整和闹钟设定功能。
但是由于硬件资源有限,只能实现基本的功能,不能进行其他高级功能的扩展,例如闹铃的音乐播放、温度、湿度的显示等。
LCD电子钟程序(广工单片机课程设计)

LCD电子钟程序(广工单片机课程设计)第一篇:LCD电子钟程序(广工单片机课程设计)#include#define uchar unsigned char#define uint unsigned int#define KEY_IO P3#define LCD_IO P0sbit LCD_RS = P2^0;sbit LCD_RW = P2^1;sbit LCD_EN = P2^2;sbit SPK = P1^2;sbit LED = P2^4;sbit KEY_0 = P3^7;sbit KEY_1 = P3^6;sbit KEY_2 = P3^5;sbit KEY_3 = P3^4;bit new_s, modify = 0;char t0, sec = 0, min = 0, hour = 0;char code LCD_line1[] = “I LOVE U”;char code LCD_line2[] = “Timer: 00:00:00 ”;char Timer_buf[] = “00:00:00”;char a,b,c,k = 0;//--------------------void delay(uint z){uintx, y;for(x = z;x > 0;x--)for(y = 100;y > 0;y--);}//--------------------void W_LCD_Com(uchar com)//写指令 { LCD_RS = 0;LCD_IO = com;// LCD_RS和R/W都为低电平时,写入指令LCD_EN = 1;delay(5);LCD_EN = 0;//用EN输入一个高脉冲 }//--------------------void W_LCD_Dat(uchar dat)//写数据{LCD_RS = 1;LCD_IO = dat;// LCD_RS为高、R/W为低时,写入数据LCD_EN = 1;delay(5);LCD_EN = 0;//用EN输入一个高脉冲 } //--------------------void W_LCD_STR(uchar *s)//写字符串{while(*s)W_LCD_Dat(*s++);}//--------------------void W_BUFF(void)//填写显示缓冲区{Timer_buf[7] = sec % 10 + 48;Timer_buf[6] = sec / 10 + 48;Timer_buf[4] = min % 10 + 48;Timer_buf[3] = min / 10 + 48;Timer_buf[1] = hour % 10 + 48;Timer_buf[0] = hour / 10 + 48;W_LCD_STR(Timer_buf);}//--------------------uchar read_key(void){ucharx1, x2;KEY_IO = 255;x1 = KEY_IO;if(x1!= 255){delay(100);x2 = KEY_IO;if(x1!= x2)return 255;while(x2!= 255)x2 = KEY_IO;if else if(x1 == 0xbf)return 1;else if(x1 == 0xdf)return 2;else if(x1 == 0xef)return 3;else if(x1 == 0xf7)return 4;}return 255;} //--------------------void Init(){LCD_RW = 0;W_LCD_Com(0x38);delay(50);W_LCD_Com(0x0c);W_LCD_Com( 0x06);W_LCD_Com(0x01);W_LCD_Com(0x80);W_LCD_STR(LCD_li ne1);W_LCD_STR(LCD_line2);TMOD = 0x01;//T0定时方式1TH0 = 0x4c;TR0 = 1;//启动T0 PT0 = 1;//高优先级, 以保证定时精度ET0 = 1;EA = 1;}//--------------------void main(){uint i, j;uchar Key;Init();while(1){//if(new_s){ //如果出现了新的一秒, 修改时间new_s = 0;sec++;sec %= 60;if(!sec){min++;min %=60;if(!min){ hour++;hour %= 24;}}W_BUFF();//写显示W_LCD_Com(0xc0 + 7);(x1 == 0x7f)return 0;W_LCD_Com(0xC0);//if(!sec &&!min){ //整点报时for(i = 0;i < 200;i++){SPK = 0;for(j = 0;j < 100;j++);SPK = 1;for(j = 0;j < 100;j++);} }} //Key = read_key();//读出按键switch(Key){//分别处理四个按键case0: if(KEY_0){min++;min %= 60;W_BUFF();break;}case1: if(KEY_1){hour++;hour %= 24;W_BUFF();break;}case2: if(KEY_2){ a=sec;b=min;c=hour;sec = 0, min = 0, hour = 0;}case3: if(KEY_3){sec=a+sec;if(sec>60){sec=sec-60;min++;}min=b+min;if(min>60){min=min-60;hour++;}hour=c+hour;if(hour>24){hour=hour-24;} }} }} //--------------------void timer0(void)interrupt 1//T0中断函数, 50ms执行一次{TH0 = 0x4c;t0++;t0 %= 20;//20, 一秒钟if(t0 == 0){new_s = 1;LED = ~LED;}if(modify)LED = 0;} K0分加一 K1时加一 K2秒表开始K3秒表结束,恢复正常时间!第二篇:单片机课程设计电子钟课程设计任务书(指导教师填写)课程设计名称电子技术课程设计学生姓名专业班级设计题目数字钟一、课程设计的任务和目的任务:设计一台能显示“时”、“分”、“秒”的数字钟,周期为24小时;具有校时、正点报时功能。
基于单片机控制LCD显示电子时钟设计

基于单片机控制LCD显示电子时钟设计摘要本设计使用11.0592MHZ晶振与单片机AT89C52相连接,以AT89C52芯片为核心,采用1602的并行操作方式显示。
通过使用该单片机,实现把时间和温度显示在1602液晶上,并且按秒实时更新。
STC89C52单片机是由深圳宏晶科技公司推出的,功耗小,电压可选用4~6V电压供电。
通过板子上的按键可随时调节时钟的年、月、日、星期、时、分、秒,按键设计3个有效按键,分别有功能选择键、数值增大键、数值减小键。
在每次的按键按下时,蜂鸣器有“滴”的提示声。
再利用DS12887设计实现断电自动保护显示数字的功能,当下次上电时会接着上次上电前的时间继续运行。
本设计的+5V电源采用LM1117电压转换元件,将电源适配器转换得到的12V电压直接变成5V电压供系统使用。
通过软硬件结合达到最终目的。
关键词:单片机AT89C52;1602液晶;电子时钟;DS12887芯片AbstractThe design uses a 11.0592MHz crystal with AT89C52 microcontroller is connected to the AT89C52 chip as the core, and 1602 parallel operation. By using the microcontroller, the time is displayed in 1602, and updated in real time in seconds. STC89C52 microcontroller is launched by the Shenzhen-Hong Crystal Technology, Inc., low power consumption, voltage can be used to 6V voltage power supply. Through the keys on the board can always adjust the clock of the year, month, day, week, when, minutes, seconds, button design 3 effective keys, function selection key, increase the value of the key, key decreases the value. Each time the button is pressed, the buzzer tone "drop". Re-use the DS12887 design power-off automatically to protect the display number, then the last time before the power to continue running when the next power. The design of the 5V power supply using LM1117 voltage conversion device, power adapter converted directly into 12V voltage 5V voltage for system use. Through a combination of hardware and software to achieve the ultimate objective.Keywords: Microcontroller AT89C52;1602 LCD;Electronic clock;DS12887chip目录第1章绪论 (1)1.1 电子时钟的研究背景 (1)1.2 电子时钟的国内外研究现状 (1)第2章设计思路与方案选择 (3)2.1 系统的设计思路 (3)2.2 方案选择 (3)2.2.1 单片机芯片的选择 (3)2.2.2 显示模块及时钟芯片的选择 (4)2.2.3 温度系统方案选择 (4)2.2.4 报警系统的方案比较 (4)2.2.5 键盘控制方案选择 (4)第3章系统的硬件设计与实现 (5)3.1电路设计框图 (5)3.2主要硬件电路的设计 (5)3.2.1 单片机主控制模块的设计 (5)3.2.2 显示模块的设计 (9)3.2.3 时钟电路模块的设计 (12)3.2.4 温度采集模块设计 (17)3.2.5 按键调整系统模块设计 (17)3.2.6 蜂鸣器报警模块 (18)第4章软件设计 (19)4.1 软件设计总体说明 (19)4.2 程序软件的实现 (19)第5章总结 (24)参考文献 (25)致谢 (26)第1章绪论1.1电子时钟的研究背景20世纪末,在电子技术极速发展的推动下,现代电子产品以及各种高科技产品渗透到了社会的多个领域,这有力地推动了社会信息化程度以及综合科技水平的提高,但产品更新的也越来越快。
基于单片机的LCD电子时钟设计

基于单片机的LCD电子时钟设计随着科技的不断发展,单片机已经成为现代电子设备中的重要组成部分。
其中,LCD电子时钟的设计与应用更是受到广泛。
基于单片机的LCD电子时钟设计具有精度高、稳定性好、体积小、耗电量低等优点,被广泛应用于家居、办公、交通运输等领域。
一、设计原理基于单片机的LCD电子时钟设计主要由单片机、时钟电路和LCD显示模块组成。
其中,单片机作为主控制器,负责读取时钟信号并控制LCD显示模块。
时钟电路则产生一个高精度的实时时钟信号,LCD显示模块则负责将时间信息显示出来。
二、硬件设计1、单片机选择:单片机是整个系统的核心,负责读取时钟信号、处理数据并控制LCD显示模块。
常见的单片机型号包括STM32、PIC、AVR等。
根据实际需求,选择合适的单片机型号。
2、时钟电路:时钟电路是整个系统的核心部分,它产生高精度的实时时钟信号。
常见的时钟电路包括石英晶体振荡器、GPS模块等。
根据实际需求,选择合适的时钟电路。
3、LCD显示模块:LCD显示模块负责将时间信息显示出来。
常见的LCD显示模块包括字符型LCD和图形型LCD。
根据实际需求,选择合适的LCD显示模块。
三、软件设计软件设计是整个系统的重要组成部分,它需要实现读取时钟信号、处理数据并控制LCD显示模块的功能。
具体的软件设计流程如下:1、初始化:初始化单片机、时钟电路和LCD显示模块。
2、读取时钟信号:通过时钟电路读取实时时钟信号。
3、处理数据:对读取的时钟信号进行处理,提取出年、月、日、时、分、秒等信息。
4、控制LCD显示模块:将处理后的时间信息通过LCD显示模块显示出来。
5、循环执行:重复执行上述步骤,实现LCD电子时钟的实时更新。
四、调试与优化完成硬件和软件设计后,需要对系统进行调试和优化。
具体的调试和优化步骤如下:1、通电测试:将系统通电,检查各部分是否正常工作。
2、精度测试:检查时钟电路的精度是否满足要求。
3、LCD显示测试:检查LCD显示模块是否能正确显示时间信息。
基于单片机的电子时钟设计报告(LCD显示)

单片机原理及应用课程设计任务书题目:电子时钟(LCD显示)1、设计要求以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间:使用字符型LCD显示器显示当前时间。
显示格式为“时时:分分:秒秒”。
用3个功能键操作来设置当前时间。
功能键K1~K4功能下。
K1—设置小时。
K2—设置分钟。
K3—设置秒。
程序执行后工作指示灯LED发光,表示程序开始执行,LCD显示“23:59:00”,然后开始计时。
2、工作原理本课题难点在于键盘的指令输入,由于每个按键都具有相应的一种功能,程序中有较多的循环结构用以判断按键是否按下,以及判断按键是否抬起,以及LCD显示器的初始化。
3、参考电路硬件设计电路图如下图所示:硬件电路原理图单片机原理及应用课程设计任务书题目:电子时钟(LCD显示)1、设计要求以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间:使用字符型LCD显示器显示当前时间。
显示格式为“时时:分分:秒秒”。
用3个功能键操作来设置当前时间。
功能键K1~K4功能下。
K1—设置小时。
K2—设置分钟。
K3—设置秒。
程序执行后工作指示灯LED发光,表示程序开始执行,LCD显示“23:59:00”,然后开始计时。
2、工作原理本课题难点在于键盘的指令输入,由于每个按键都具有相应的一种功能,程序中有较多的循环结构用以判断按键是否按下,以及判断按键是否抬起,以及LCD显示器的初始化。
3、参考电路硬件设计电路图如下图所示:硬件电路原理图基于AT89C51单片机的电子时钟设计报告一、设计要求与目的1)设计要求以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间。
2)、使用字符型LCD显示器显示当前时间。
显示格式为“时时:分分:秒秒”。
3)、用3个功能键操作来设置当前时间。
4)、熟悉掌握proteus编成软件以及keil软件的使用二、本设计原理本设计以AT89C51单片机为核心,通过时钟程序的编写,并在LCD显示器上显示出来。
基于单片机的液晶屏显示的电子时钟设计

基于单片机的液晶屏显示的电子时钟设计摘要本设计是利用基于AT89C52单片机用液晶显示器制作的实用液晶电子钟,可完成计时、计分、计秒和校时、校分的功能。
微处理器是单片机的核心,完成运算和控制的操作串行口数据存储器与复位电路,时钟电路,校对电路由微处理器控制完成各自的任务。
最后通过液晶显示时、分、秒。
在振荡器正在运行时,复位是靠RST或在RST引脚上施加持续2个机器周期的高电平来实现,在RST引脚上施加高电平的第2个周期执行内部复位,以后每个周期执行一次,直到RST 变化。
复位时,ALE和/RSEN输出高电平,机ALE=1和/RSEN=1,片内RAM不受复位的影响,复位后PC指向0000H使单片机从起始地址0000H开始执行程序。
设计中采用内部时钟方式,在XTAL1和XTAL2两端接晶振,与内部反向器构成稳定的自激振荡器,其发出的时钟脉冲直接送入片内定时控制部件,该液晶电子钟最后由6个液晶显示管显示,时分秒段式LCD显示采用七段显示,其结构除在上电极板上喷上a到g这七个笔画外,还在下电极板喷上与笔画相对应的“日”字形的电极并接公共端COM。
另外时钟的校对采用与校对普通电子表相同的操作方式来完成,只需按K1、K2这两个键来校时校分。
AT89C52的XTAL1和XTAL2分别为反向器的输入和输出,RST为复位输入,由它再接一个上拉电阻,引脚被拉高,P1口作为电子钟的位选,P3口部分作为电子钟的输出端。
关键词电子钟单片机液晶显示LCD SCREEN DISPLAY BASEDON SINGLE CHIP DESIGN OFTHE ELECTRONIC CLOCKABSTRACTThis design is the use of liquid crystal displays based on AT89C52 microcontroller produced by useful LCD electronic clock to complete timing, scoring, namely, second, and the school, the school sub-functions. Microprocessor is a microcontroller core, computing and control the completion of the operation of serial port data memory and the reset circuit, clock circuit, proofreading circuit controlled by a microprocessor to complete their tasks. The final adoption of liquid crystal display hours, minutes and seconds. In the oscillator is running, reset depends on the RST or RST pin to exert sustained two machine cycle to achieve high, in the RST pin is applied to the first 2 cycles of high implementation of internal reset,After the run once per cycle until RST change. When reset, ALE and / RSEN output high, machine ALE = 1, and / RSEN = 1, on-chip RAM is not the impact of reset and reset after the PC point from the start address of 0000H to 0000H Microcontroller begin implementation procedures. Internal clock used in the design mode, then ends in the XTAL1 and XTAL2 crystal, and the internal stability of the reverse device constitutes a self-excited oscillator clock pulse sent directly into the on-chip timing control unit, the LCD clock last by 6 LCD display tube display, when minutes and seconds Segment LCD display with seven-segment display, its structure, except in the electrode plate spray.On a to g of these seven strokes, the lower electrode plates are also sprayed with the strokescorresponding to the "day"-shaped electrode, and then the public-side COM. Another clock proofing and proofreading ordinary electronic watches using the same mode of operation to complete, just press K1, K2 of these two keys to the school when the school hours. AT89C52 the XTAL1 and XTAL2, respectively reverse the input and output, RST as a reset input, which were followed by a pull-up resistor, pin is pulled, P1 mouth as an electronic clock Choice, P3 mouth part as an electronic clock outputs.KEYWORDS electronic clock MCU LCD目录摘要 ................................................................................................ I I ABSTRACT . (III)1 概述 (1)1.1本课题研究的意义 (1)1.2电子时钟的设计要求和内容 (2)1.3课题的总体规划 (2)2 系统总体方案及硬件设计 (3)2.1系统总体方案 (3)2.2硬件设计 (3)2.2.1时钟电路 (3)2.2.2复位电路 (4)2.2.3 液晶LCD1602 (5)2.2.4 LCD显示电路 (10)2.2.5 AT89C52 单片机芯片 (11)2.2.6电子钟电路原理图 (13)2.2.7元件清单 (13)3 软件设计 (14)3.1 系统主程序设计 (14)3.2中断程序设计 (15)3.3 加一子程序流程框图 (16)4 PROTEUS软件下的仿真 (17)4.1 软件介绍 (17)4.2仿真过程 (17)5 结论 (20)致谢 (21)参考文献 (22)附录 (23)1 概述单片机即微处理器,自1976年Inter公司推出的MCS-48,迄今已有20多年了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
uchar code table[]=" 2015-05-27 WED ";
uchar code table1[]=" 12:30:55";
uchar code table2[]=" 1200810222 ";
uchar code table3[]="Made by HUANG";
if(nian==10000)
{
nian=2000;
}
write_nyr(1,nian);
write_com(0x80+3);
}
if(s1num==5)//月份加
{
yue++;
if(yue==13)
{
yue=1;
}
write_yr(6,yue);
write_com(0x80+6);
}
if(s1num==6)//日期加
(4)下载到ZKSYS单片机实验板上验证有关程序实现给定的功能。
1
该电子时钟由89C51,按键,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,利用单片机内部定时计数器0通过软件扩展产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。时钟的年月日时分秒的切换是由一个按键控制,而另外两个个按键控制加减调节。
{
ri=1;
}
if(ri==32)
{
ri=1;
}
关键字:AT89C2051,C语言程序,电子钟。
1
利用51单片机开发电子时钟,实现时间显示、调整功能。具体要求如下:
(1)根据给定题目设计的Proteus仿真原理图,并简单阐述设计原理;
(2)根据给定题目设计有关的51汇编语言(或C语言)源程序,及主要的流程框图;
(3)在Proteus仿真界面下运行程序实现给定的功能;
编号:
单片机原理及应用
设计实验报告
课题:电子钟
专业:自动化
学生姓名:黄紫扬
学号:1200810222
2015年5月27日
摘要:传统的数字电子时钟采用了较多的分立元器件,不仅占用了很大的空间而且利用率也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很难满足设计需求。
单片机是集CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。它体积小、成本低、功能强,广泛应用于智能产品和工业自动化上。而51系列的单片机是各单片机中最为典型和最有代表性的一种。,本次设计提出了系统总体设计方案,并设计了各部分硬件模块和软件流程,在用C语言设计了具体软件程序后,将各个模块完全编译通过过后,结果证明了该设计系统的可行性。该设计给出了以AT89C2051为核心,利用单片机的运算和控制功能,并采用系统化LED显示模块实时显示数字的设计方案,适当地解决了实际生产和日常生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的应用性。
write_com(0x80+9);
}
if(s1num==7)
{
while(!s1)
write_com(0x80+13);
}
if(s1num==8)
{
while(!s1);
s1num=0;
write_com(0x0c);
TR0=1;//开定时器
}
}
}
if(s1num!=0)
{
if(s2==0)//按键2加功能
图5LCD液晶显示图
3
本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整程序、延时程序四大模块。系统的流程图如下图
是
否
设计思路:
本系统主要可分为主程序、定时计数中断程序、时间调整程序、延时程序和LCD液晶驱动程序。定时中断程序是利用单片机内部定时器0实现1秒的定时,然后利用软件延时实现分小时,时间调整程序是利用单片机的内部存贮器,把调整好的时间写到显示时间的存贮单元,然后启动定时器开始计时并显示,延时程序是利用软件实现延时达到去抖的目的。液晶启动程序是为了把单片机的数据送到显示器的同时让显示器的第6脚使能断的电平实现由1到0的跳变,使显示器执行显示的命令。主程序就是利用这些子程序中断程序实现显示、定时等功能。
{
ri++;
if(ri==29&&yue==2&&!((nian%4==0&&nian%100!=0)||nian%400==0))
{
ri=1;//平年
}
if(ri==30&&yue==2&&((nian%4==0&&nian%100!=0||nian%400==0)))
{
ri=1;//闰年
}
if(ri==31&&(yue==4||yue==6||yue==9||yue==11))
sbit s1=P1^0;
sbit s2=P1^1;
sbit s3=P1^2;sb Nhomakorabeat Output_squ=P3^6;
void delay(uint z)//延时子函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)//写命令函数
for(num=0;num<12;num++)//显示时间
{
write_date(table1[num]);
delay(5);
}
TMOD=0x51;//启动定时器中断
TH0=0X3C; //50ms
TL0=0XB0;
TH1=0X00;
TL1=0X00;
EA=1;
ET0=1;
TR0=1;//打开定时器0
{
s1num++;
if(s1num==1)
{while(!s1);//等待按键松手
write_com(0x80+0x40+10);
TR0=0;//关闭定时器
write_com(0x0f); //开显示,显示光标,光标闪烁
}
if(s1num==2)
{
while(!s1);
write_com(0x80+0x40+7);
{
lcd_rs = 0;
P0= com;
delay(5);
lcd_en=1;
delay(5);
lcd_en=0;
}
void write_date(uchar date)//写数据函数
{
lcd_rs = 1;
P0= date;
delay(5);
lcd_en=1;
delay(5);
lcd_en=0;
}
void init()//初始化函数
write_com(0x01);//清屏
write_com(0x80);
for(num=0;num<16;num++)//显示数字1200810222
{
write_date(table2[num]);
delay(300);
}
write_com(0x80+0x40);
for(num=0;num<16;num++)//显示made by HUANG
{
fen=0;
}
write_sfm(7,fen);
write_com(0x80+0x40+7);
}
if(s1num==3)//时加
{
shi++;
if(shi==24)
{
shi=0;
}
write_sfm(4,shi);
write_com(0x80+0x40+4);
}
if(s1num==4)//年加
{
nian++;
{
int num;
shi=12;
fen=30;
miao=55;
ri=27;
yue=5;
nian=2015;
lcd_en=0;
lcd_rw=0;
write_com(0x38);//显示设置模式
write_com(0x0c);//00001100开显示,不显示光标,光标不闪烁
write_com(0x06);//00000110地址指针加一,整屏不移动
}
if(s1num==3)
{
while(!s1);
write_com(0x80+0x40+4);
}
if(s1num==4)
{
while(!s1);
write_com(0x80+3);
}
if(s1num==5)
{
while(!s1);
write_com(0x80+6);
}
if(s1num==6)
{
while(!s1);
图1系统结构框图
该电子时钟由STC89C51,按键,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,晶振电路的晶振频率为12MHZ,使用的定时器/计数器工作方式1,通过软件扩展产生的一秒定时,达到时分秒的计时,60秒为一分钟,60分钟为一小时,24小时为一天,又重00:00:00开始计时
2
(1)时钟电路设计
{
delay(5);
if(s2==0)
{
while(!s2);
if(s1num==1)//秒加
{
miao++;