LED数码管显示电子钟

LED数码管显示电子钟
LED数码管显示电子钟

#include

#include

unsigned char data dis_digit;

unsigned char key_s, key_v;

unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off

unsigned char data dis_buf[8];

unsigned char data dis_index;

unsigned char hour,min,sec;

unsigned char sec100;

sbit K1 = P1^4;

sbit K2 = P1^5;

bit scan_key();

void proc_key();

void inc_sec();

void inc_min();

void inc_hour();

void display();

void delayms(unsigned char ms);

void main(void)

{

P0 = 0xff;

P2 = 0xff;

TMOD = 0x11; // 定时器0, 1工作模式1, 16位定时方式

TH1 = 0xdc;

TL1 = 0;

TH0 = 0xFC;

TL0 = 0x17;

hour = 12;

min = 00;

sec = 00;

sec100 = 0;

dis_buf[0] = dis_code[hour / 10]; // 时十位

dis_buf[1] = dis_code[hour % 10]; // 时个位 dis_buf[3] = dis_code[min / 10]; // 分十位 dis_buf[4] = dis_code[min % 10]; // 分个位 dis_buf[6] = dis_code[sec / 10]; // 秒十位 dis_buf[7] = dis_code[sec % 10]; // 秒个位 dis_buf[2] = 0xbf; // 显示"-"

dis_buf[5] = 0xbf; // 显示"-"

dis_digit = 0xfe;

dis_index = 0;

TCON = 0x01;

IE = 0x8a; // 使能timer0,1 中断

TR0 = 1;

TR1 = 1;

key_v = 0x03;

while(1)

{

if(scan_key())

{

delayms(10);

if(scan_key())

{

key_v = key_s;

proc_key();

}

}

}

}

bit scan_key()

{

key_s = 0x00;

key_s |= K2;

key_s <<= 1;

key_s |= K1;

return(key_s ^ key_v);

}

void proc_key()

{

EA = 0;

if((key_v & 0x01) == 0) // K1

{

inc_hour();

}

else if((key_v & 0x02) == 0) // K2

{

min++;

if(min > 59)

{

min = 0;

}

dis_buf[3] = dis_code[min / 10]; // 分十位

dis_buf[4] = dis_code[min % 10]; // 分个位

}

EA = 1;

}

void timer0() interrupt 1

// 定时器0中断服务程序, 用于数码管的动态扫描// dis_index --- 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量

// dis_digit --- 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe

时,

// 选通P2.0口数码管

// dis_buf --- 显于缓冲区基地址

{

TH0 = 0xFC;

TL0 = 0x17;

P2 = 0xff; // 先关闭所有数码管

P0 = dis_buf[dis_index]; // 显示代码传送到P0口

P2 = dis_digit; //

dis_digit = _crol_(dis_digit,1); // 位选通值左移, 下次中断时选通下一位数码管

dis_index++; //

dis_index &= 0x07; // 8个数码管全部扫描完一遍之后,再回到第一个开始下

一次扫描

void timer1() interrupt 3

{

TH1 = 0xdc;

sec100++;

if(sec100 >= 100)

{

sec100 = 0;

inc_sec();

}

}

void inc_sec()

{

sec++;

if(sec > 59)

{

sec = 0;

inc_min();

}

dis_buf[6] = dis_code[sec / 10]; // 秒十位 dis_buf[7] = dis_code[sec % 10]; // 秒个位

}

void inc_min()

{

min++;

if(min > 59)

{

min = 0;

inc_hour();

}

dis_buf[3] = dis_code[min / 10]; // 分十位 dis_buf[4] = dis_code[min % 10]; // 分个位

}

void inc_hour()

{

hour++;

if(hour > 23)

{

hour = 0;

}

if(hour > 9)

dis_buf[0] = dis_code[hour / 10]; // 时十位

else

dis_buf[0] = 0xff; // 当小时的十位为0时不显示

dis_buf[1] = dis_code[hour % 10]; // 时个位

}

void delayms(unsigned char ms)

// 延时子程序

{

unsigned char i;

while(ms--)

{

for(i = 0; i < 120; i++);

}

}proteus 元件库中文注释)

不知道你是否也在用proteus这款仿真软件,很多人说仿真是在理想条件下,得出的结果不太正确,所以很多人不推荐使用仿真。但是懒猫认为存在即有价值,对于高手来说还用这个软件确实不是件好事,但对于初学者来说,直观的调试会让人感到更兴奋一些,不瞒大家说,懒猫初学51时第一个点灯程序就是在proteus上点灯的。当然如果你一味的依懒于软件仿真,你不会学到单片机的真谛,毕竟仿真有限,纸上得来终觉浅,缘知此事要躬行!实践出真知……所以还是鼓励大家有条件的话多在实物上调试。好了,费话不说了,还是把自己整理的东东拿出来吧,就是proteus元件库的中文注释,但愿对初学的你有所帮

助^_^

模拟芯片(Analog ICs)

放大器(Amplifiers)

比较器(Comparators)

显示驱动器(Display Drivers)

过滤器(Filters)

数据选择器(Multiplexers)

稳压器(Regulators)

定时器(Timers)

基准电压(Voltage Reference)

杂类(Miscellananeous)

电容(Capacitors)

可动态显示充放电电容(Animated)

音响专用轴线电容(Audio Grade Axial)

轴线聚苯烯电容(Axial Lead Polypropene)

轴线聚苯烯电容(Axial Lead Polystyrene)

陶瓷圆片电容(Ceramic Disc)

去耦片状电容(Decoupling Disc)

普通电容(Generic)

高温径线电容(High Temp Radial)

高温径线电解电容(High Temperature Axial Electrolytic) 金属化聚酯膜电容(Metallised Polyester Film)

金属化聚烯电容(Metallised Polypropene)

金属化聚烯膜电容(Metallised Polypropene Film)

小型电解电容(Miniture Electrolytic)

多层金属化聚酯膜电容(Multilayer Metallised Polyestern Film)

聚脂膜电容(Mylar Film)

镍栅电容(Nickel Barrier)

无极性电容(Non Polarised)

聚脂层电容(Polyester Layer)

径线电解电容(Radial Electrolytic)

树脂蚀刻电容(Resin Dipped)

钽珠电容(Tantalum Bead)

可变电容(Variable)

VX轴线电解电容(VX Axial Electolytic)

连接器(Connectors)

音频接口(Audio)

D 型接口(D-Type)

双排插座(DIL)

插头(Header Blocks)

PCB转接器(PCB Transfer)

带线(Ribbon Cable)

单排插座(SIL)

连线端子(Terminal Blocks)

杂类(Miscellananeous)

数据转换器(Data Converter)

模/数转换器(A/D converters)

数/模转换器(D/A converters)

采样保持器(Sample & Hold)

温度传感器(Temperature Sensore) 调试工具(Debugging Tools)

断点触发器(Breakpoint Triggers) 逻辑探针(Logic Probes)

逻辑激励源(Logic Stimuli)

二极管(Diode)

整流桥(Bridge Rectifiers)

普通二极管(Generic)

整流管(Rectifiers)

肖特基二极管(Schottky)

开关管(Switching)

隧道二极管(Tunnel)

变容二极管(Varicap)

齐纳击穿二极管(Zener)

ECL 10000系列(ECL 10000 Series) 各种常用集成电路

机电(Electromechanical)

各种直流和步进电机

电感(Inductors)

普通电感(Generic)

贴片式电感(SMT Inductors)

变压器(Transformers)

拉普拉斯变换(Laplace Primitives)

一阶模型(1st Order)

二阶模型(2st Order)

控制器(Controllers)

非线性模式(Non-Linear)

算子(Operators)

极点/零点(Poles/Zones)

符号(Symbols)

存储芯片(Memory Ics)

动态数据存储器(Dynamic RAM)

电可擦除可编程存储器(EEPROM)

可擦除可编程存储器(EPROM)

I2C总线存储器(I2C Memories)

SPI总线存储器(SPI Memories)

存储卡(Memory Cards)

静态数据存储器(Static Memories)

微处理器芯片(Microprocess ICs)

6800 系列(6800 Family)

8051 系列(8051 Family)

ARM 系列(ARM Family)

AVR 系列(AVR Family)

Parallax 公司微处理器(BASIC Stamp Modules)

HCF11 系列(HCF11 Family)

PIC10 系列(PIC10 Family)

PIC12 系列(PIC12 Family)

PIC16 系列(PIC16 Family)

PIC18 系列(PIC18 Family)

Z80系列(Z80 Family)

CPU 外设(Peripherals)

杂项(Miscellaneous)

含天线、ATA/IDE硬盘驱动模型、单节与多节电池、串行物理接口模型、晶振、动态与通

用保险、模拟电压与电流符号、交通信号灯

建模源(Modelling Primitives)

模拟(仿真分析)(Analogy-SPICE)

数字(缓冲器与门电路)(Digital--Buffers&Gates)

数字(杂类)(Digital--Miscellaneous)

数字(组合电路)(Digital--Combinational)

数字(时序电路)(Digital--Sequential)

混合模式(Mixed Mode)

可编程逻辑器件单元(PLD Elements)

实时激励源(Realtime Actuators)

实时指示器(Realtime Indictors)

运算放大器(Operational Amplifiers)

单路运放(Single)

二路运放(Dual)

三路运放(Triple)

四路运放(Quad)

八路运放(Octal)

理想运放(Ideal)

大量使用的运放(Macromodel)

光电子类器件(Optoelectronics)

七段数码管(7-Segment Displays)

英文字符与数字符号液晶显示器(Alphanumeric LCDs) 条形显示器(Bargraph Displays)

点阵显示屏(Dot Matrix Display)

图形液晶(Grphical LCDs)

灯泡(Lamp)

液晶控制器(LCD Controllers)

液晶面板显示(LCD Panels Displays)

发光二极管(LEDs)

光耦元件(Optocouplers)

串行液晶(Serial LCDs)

可编程逻辑电路与现场可编程门阵列(PLD&FPGA)

无子类

电阻(Resistors)

0.6W金属膜电阻(0.6W Metal Film)

10W 绕线电阻(10W Wirewound)

2W 金属膜电阻(2W Metal Film)

3W 金属膜电阻(3W Metal Film)

7W 金属膜电阻(7W Metal Film)

通用电阻符号(Generic)

高压电阻(High Voltage)

负温度系数热敏电阻(NTC)

排阻(Resisters Packs)

滑动变阻器(Variable)

可变电阻(Varistors)

仿真源(Simulator Primitives)

触发器(Flip-Flop)

门电路(Gates)

电源(Sources)

扬声器与音响设备(Speaker&Sounders)

无子分类

开关与继电器(Switch&Relays)

键盘(Keypads)

普通继电器(Generic Relays)

专用继电器(Specific Relays)

按键与拨码(Switchs)

开关器件(Switching Devices)

双端交流开关元件(DIACs)

普通开关元件(Generic)

可控硅(SCRs)

三端可控硅(TRIACs)

热阴极电子管(Thermionic Valves)

二极真空管(Diodes)

三极真空管(Triodes)

四极真空管(Tetrodes)

五极真空管(Pentodes)

转换器(Transducers)

压力传感器(Pressures)

温度传感器(Temperature)

晶体管(Transistors)

双极性晶体管(Bipolar)

普通晶体管(Generic)

绝缘栅场效应管(IGBY/Insulated Gate Bipolar Transistors

结型场效应晶体管(JFET)

金属-氧化物半导体场效应晶体管(MOSFET)

射频功率LDMOS晶体管(RF Power LDMOS)

射频功率VDMOS晶体管(RF Power VDMOS)

单结晶体管(Unijunction)

CMOS 4000系列(CMOS 4000 series TTL 74系列(TTL 74

series) TTL 74增强型低功耗肖特基系列(TTL 74ALS Series) TTL 74增强型肖特基系列(TTL 74AS

Series) TTL 74高速系列(TTL 74F Series) TTL 74HC 系列/CMOS工作电平(TTL 74HC Series) TTL 74HCT系列/TTL工作电平(TTL 74HCT Series)TTL 74低功耗肖特基系列(TTL 74LS Series) TTL 74肖特基系列(TTL 74S Series)

加法器(Adders)

缓冲器/驱动器(Buffers&Drivers)

比较器(Comparators)

计数器(Counters)

解码器(Decoders)

编码器(Encoders)

存储器(Memory)

触发器/锁存器(Flip-Flop&Latches)

分频器/定时器(Frequency Dividers & Timers) 门电路/反相器(Gates&Inverters)

数据选择器(Multiplexers)

多谐振荡器(Multivibrators)

振荡器(Oscillators)

锁相环(Phrase-Locked-Loop,PLL)

寄存器(Registers)

信号开关(Signal Switches)

收发器(Tranxceivers)

杂类逻辑芯片(Misc.Logic)

单片机课程设计报告—LED显示电子钟

《单片机原理及其接口技术》 课程设计报告 课题LED显示的电子钟 姓名 学号 院系自动控制与机械工程学院 班级 指导教师

2012 年6 月 目录 一、课程设计目的 (3) 二、课程设计要求 (3) 三、设计内容 (4) 四、硬件设计需求 (5) 1、硬件系统各模块功能 (5) (1)、单片机最小系统——AT89C51 (5) (2)、LED数码管显示模块 (8) (3)、晶振模块 (9) (4)、按键模块 (10) 五、电路软件系统设计 (10) 1、protues软件简介 (10) 2、仿真结果 (11) 3、流程图 (13) 六、误差分析 (15) 七、总结与心得体会 (15) 八、参考文献 (16) 九、附录(程序) (16)

一、课程设计目的 单片机课程设计作为独立的教学环节,是自动化及相关专业集中实践性环节系列之一,是学习完《单片机原理及应用》课程后,并在进行相关课程设计基础上进行的一次综合练习。 单片机课程设计过程中,学生通过查阅资料,接口设计,程序设计,安装调试等环节,完成一个基于MCS-51系列单片机,涉及多种资源应用,并且有综合功能的小应用系统设计。使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路,电子元器件等方面的知识进一步加深认识,同时在软件编程,调试,相关仪器设备和相关软件的使用技能等方面得到较全面的锻炼和提高。使学生增进对单片机的感性认识,加深对单片机理论方面的理解,加深单片机的内部功能模块的应用,如定时器/计数器,中断,片内外存储器,I/O接口,串行口等。使学生了解和掌握单片机应用系统的软硬件设计过程,方法及实现,强化单片机应用电路的设计与分析能力。提高学生在单片机应用方面的实践技能和科学作风,培育学生综合运用理论知识解决问题的能力。 二、课程设计要求 课程设计应以学生认知为主体,充分调动学生的积极性和能动性,重视学生自学能力培养。根据课程设计具体课题安排时间,确定课题的涉及,变成和调试内容,分团队开展课程设计活动,安排完成每部分工作。课程设计集中在实验室进行。在课程设计过程中,坚持独立完成,实现课题规定的各项指标,并写出设计报告。 要求学生自己调研,设计系统功能,划分软硬件功能,选择器件,用Proteus软件在PC机上完成硬件原理图设计。然后使用使用Proteus软件在PC机运行系统仿真,调试电路和修改调试程序。对整个系统做试运行,有问题再进一步修改调试,直至达到设计的要求和取得满意的效果。最后编写系统说明书,其内容主要包括系统功能介绍,使用范围,主要性能指标,使用

用数码管显示实时日历时钟的应用设计

(用数码管显示实时日历时钟的应用设计)

摘要 本课题通过MCS-51单片机来设计电子时钟,采用汇编语言进行编程,可以实现以下一些功能:小时,分,秒和年,月,日的显示。本次设计的电子时钟系统由时钟电路,LED显示电路三部分组成。51单片机通过软件编程,在LED数码管上实现小时,分,秒和年,月,日的显示;利用时钟芯片DS1302来实现计时。本文详细介绍了DS1302 芯片的基本工作原理及其软件设计过程,运用PROTEUS软件进行电路连接和仿真,同时还介绍了74LS164,通过它来实现I|O口的扩展。 关键词:时钟芯片,仿真软件,74LS164 目录 前言 0.1设计思路 (8) 0.2研究意义 (8)

一、时钟芯片 1.1 了解时钟芯片……………………………………………….8-9 1.2 掌握时钟芯片的工作原理………………………………….10-11二、74LS164 2.1 了解74LS164........................................................11-12 2.2 掌握的74LS164工作原理. (12) 三、数码管 3.1 熟悉常用的LED数码管...........................................12-13 3.2 了解动态显示与静态显示. (13) 四、程序设计 4.0 程序流程图 (14) 4.1 DS1392的驱动.......................................................15-16 4.2 PROTUES实现电路连接. (17) 4.3 数码管的显示:小时;分;秒 (18) 4.4 数码管显示:年;月;日 (19) 五、总结…………………………………………………………………..20-21 六、附页程序………………………………………………………………22-31前言

LED数码管显示电子钟设计

《单片机原理及应用》 课程设计说明书 题目LED数码管显示电子钟设计系(部) 专业(班级) 姓名 学号 指导教师 起止日期 课程设计任务书

系(部): 专业:

目录 一、摘要 单片机全称为单片机微型计算机(Single Chip Microsoftcomputer).从应用领域来看,单片机主要用来控制,所以又称为微控制器(Microcontroller Unit)或嵌入式控制器。单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容

易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础.在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。 二、设计内容 2.1、任务要求 本次设计时钟电路,使用了A TC89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的年、月、日、时、分、秒,还有设定闹钟,用一扬声器来进行定时提醒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、LED显示即可满足设计要求. 2。2、设计程序方案 设计程序思路: 1.实现8位数码管动态扫描显示 void Display_1Code(unsigned char pos,unsigned char code1); void Display_2Num(unsigned char pos,unsigned char num,unsigned char point); 数码管动态扫描就是: 段显位选延时显示消影 因为我们用的是共阳数码管,而段码表用的共阴的,所以对code1取反 共阳数码管高电平点亮,所以P2移位后不用取反,从高位开始是第1个数码管 掩饰显示1ms,P2给全0全部熄灭,消影作用. 2。时间显示 采用实时时钟芯片DS1302,读芯片的datasheet,根据时序等说明编写驱动程序。 1)初始化 void DS1302_Init(void) 2)底层基本读写函数 void DS1302_WriteByte(unsigned char byte) unsigned char DS1302_ReadByte(void) 3)对芯片寄存器的读写函数 void DS1302_WriteData(unsigned char addr,unsigned char mdata) unsigned char DS1302_ReadData(unsigned char addr) 4)修改时间函数

基于单片机的LED数码管数字电子钟

题目:基于单片机的LED数字电子钟学生姓名:胡振凤潘兴学 学号:U201010897 U201010906 专业:测控技术与仪器 班级:1004班

摘要 数字电子钟是采用电子电路实现对年、月、日、时、分、秒数字显示的计时装置,由于数字集成电路的发展和石英晶体震荡器的广泛应用,使得数字电子钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,成为人们日常生活中不可缺少的必需品。 本次课程设计的是基于AT89C52单片机和实时时钟芯片DS1302在数码管上进行时钟显示,并能通过按键对其进行调时和校准,并且可以设置闹钟,且具有秒表功能。通过按键可以切换时钟和秒表功能,同时可以对闹钟进行设置。采用AT89C52单片机和DS1302实时时钟芯片,使用5V电源供电。DS1302是一种高性能、低功耗、带RAM 的实时时钟芯片,它能够对时,分,秒进行精确计时,它与单片机的接口使用同步串行通信,仅用3条线与之相连接,就可以实现MCS-51单片机对其进行读写操作,把读出的时间数据送到数码管上显示。程序运行时,数码管将从当前时间开始显示,通过调节按键可以分别对小时和分钟进行调整,调整后,时钟以新的时间为起点继续刷新显示。 这种实现方法的优点是电路简单,性能可靠,实时性好,时间和日期精度高,操作简单,编程容易。

目录 目录--------------------------------------------------------------------- 2 - 一前言-----------------------------------------------------------------2 1.1课题研究的现实性意义---------------------------------------------2 1.2国内外研究现状---------------------------------------------------2 1.3课题基本概况-----------------------------------------------------3 二总体方案设计---------------------------------------------------------4 2.1方案原理---------------------------------------------------------4 2.2 硬件选择--------------------------------------------------------4 2.2.1 DS1302简介------------------------------------------------4 2.2.2单片机-----------------------------------------------------5 2.2.3显示方案---------------------------------------------------6 三硬件设计-------------------------------------------------------------8 3.1显示模块---------------------------------------------------------9 3.2独立按键模块-----------------------------------------------------9 3.3实时时钟芯片DS1302----------------------------------------------10 四软件设计------------------------------------------------------------11 4.1 程序流程图-----------------------------------------------------11 4.2 按键子程序-----------------------------------------------------12 4.3 功能键按键程序流程图-------------------------------------------12 4.4 时间调整程序---------------------------------------------------13 五总结----------------------------------------------------------------14 六硬件原理图----------------------------------------------------------15

用数码管设计的可调式电子钟

单片机原理及应用课程设计 题目:基于T89C51设计可调式的电子钟 学院:信息工程学院 专业:计算机科学与技术 班级:专升本班 姓名:张永明 学号: 2013052109 指导老师:杜俊

1概述 (4) 1.1课题研究的目的和意义 (4) 2 课题方案论证 (4) 2.1系统总体设计要求 (4) 2.2系统模块结构论证 (5) 3 系统硬件设计 (5) 3.2最小单片机系统 (6) 3.3按键电路 (7) 3.4显示电路 (8) 4软件设计 (9) 4.1 主程序 (9) 5软硬件联调及调试结果 (18) 5.1调试步骤 (18) 结束语 (18) 参考文献 (18) 附录 (19) 附录3 proteus仿真图 (19)

基于T89C51设计可调式的电子钟 摘要: 数字电子时钟电路设计系统,以AT89C51单片机为控制核心,由开关显示、LED 共阴极数码管和LED灯显示等功能模块组成。基于题目基本要求,本系统对时间显示和定时报警进行了重点设计。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了要求的基本功能,而且有一定的创新功能。 关键字:单片机;AT89C51;数字钟

1概述 1.1课题研究的目的和意义 此次设计是单片机内部的定时/计数器来实现电子时钟的方法以及借助键盘直接控制整时的调整,本设计根据AT89C51单片机系统扩展的基本原理和方法,由单片机AT89S51芯片,LED数码管和键盘为核心,辅以必要的电路,构成了一个单片机电子时钟。一块单片机芯片就是一台计算机,由于单片机以其集成度高、体积小、可靠性高、控制功能强、低电压、低功耗等特点使它应用于智能仪器仪表、机电一体化、实时程控、人类生活中。除此之外还广泛应用办公自动化领域、商业营销领域、汽车及通信系统、计算机外部设备等各领域中,并且单片机已成为计算机发展和应用的一个重要方面。由此可见掌握单片机的使用方法和利用单片机解决实际问题具有重要的意义。而此次的设计刚好用到单片机相关的知识可以说这是这次设计的重要意义和目的所在。 再者,此设计的LED电子时钟主要是显时间的,是时钟用途。在此设计的基础上人们还可根据不同的需求和不同的设计水平做出不同的设计项目。也可以加上日期,温度的显示和闹钟的功能。如果设计水平还更高的话还可以设计LED 电子显示屏。因此说,LED电子时钟设计是最简单和基础的。而且电子时钟很实用,准确性也很好,也容易调节,若有毁坏更换元器件也简单,制作原理和过程也很易懂易做,成本也不高。在此设计间也包含了很多的知识,跟我所学专业又对口,所以,做这个LED电子时钟是个很用很好很值得做的设计。 2 课题方案论证 2.1系统总体设计要求 本次设计中的LED数码管电子时钟电路采用24小时制记时方式。本次设计采用AT89C51单片机的扩展芯片和1个74LS04做驱动,由八块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的LED数码管稳定显示。设计采用AT89C51单片机,配备12MHz晶振,复位电路为上电复位。采用软件译码动态显示,考虑直接用单片机I/O口作为位选时可能驱动功率不够,可采用三极管作驱动共阳极数码管显示。8位8段LED数码管作正常、调时显示,时间按时分秒排列,时钟误差:24小时误差3~5秒,并且在按键的作用下可以进行调时,调分,复位功能。本电路采用直流5V电源供电。同时为了限流保护电路也用了若干个阻值不等的电阻。 在本文一开始做了一些概述主要说明此设计的目的和意义,并会对这类设计项目发展情况做个简介。这是对这次设计很重要的一个认识是前提和设计者必须明确和了解的。 然后本文对此设计做了一些简要分析,这对理清设计思想很重要。然后还对设计中用到的元器件进行比较全面的介绍。只有真正了解了元器件的特性和功能才能让这些元器件在设计中起到作用。电子整个设计第一步是电路原理图,它直接关系着后续的工作。

电子时钟数码管显示

/********************************************************** ***/ //电子时钟数码管显示,具有暂停,清零,调整时,分,秒的功能2014年8月17日 /********************************************************** */ #include #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; sbit wela=P2^7; //sbit s0=P3^2; //清零键 sbit speak=P1^2; //蜂鸣器 //sbit s2=P3^0; //矩阵键盘 //sbit s3=P3^1; //sbit s4=P3^4; //暂停 sbit s1=P3^2; //功能键 sbit s2=P3^5;// 闹钟设定 sbit s3=P3^3; //加 sbit s4=P3^4; //减 //sbit juzhen=P3^4;

bit sflag,setflag,setcflag,cflag,k1,k2,k3,k4; uchar code duanma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示数字0~9 unsigned char code weima[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //unsigned char code weima[]={0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //unsigned char code weima[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb}; uchar tempdata[8]; uchar miao,fen,shi,cmiao,cfen,cshi; uchar count,ncount,s1num,cnum,state,normal; //-------------------------ms级延时函数-----------------------------------------// void delayms(uint z) { uint x,y; for(x=z;x>0;x--) for(y=123;y>0;y--); } //-----------------------------蜂鸣器发声--------------------------------------------------// void buzzer() {

LED数码管设计的可调式电子钟说明说

课程设计说明书 用LED 数码管设计的可调式电子钟 专业 学生姓名 班级 学 号 指导教师 完成日期 2013年6月28日

用LED数码管设计的可调式电子钟 摘要: 数字电子时钟电路设计系统,以AT89C51单片机为控制核心,由键盘显示、定时闹铃、LED共阴极数码管和LED灯显示等功能模块组成。基于题目基本要求,本系统对时间显示和定时报警进行了重点设计。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了要求的基本功能,而且有一定的创新功能。 关键字:单片机;AT89C51;数字钟 Abstract: T h i s d i g i a l electronic clock circuit design system ,based o n c hip microcomputer AT89C51,is composed by the following functional modules : keyboard displaying , timing alarmg. common cathode LED digital tube, LED lights display,and s o on. According to the basic requirem ents of t he subj ect,t he s ys t em st res ses on the real iz ati on of Time display and regularly report t o the police.The design achieved the required basic technical indexes. Furthermore , adopting the iedao fhardware-to-software, m o s t o f those functions are r e a l i z e d b y softwares, which makes the electrocircuit more concise and the system more stable. Key words:chip microcomputer;AT89C51:digital electronic clock

LED数码管显示电子钟

#include #include unsigned char data dis_digit; unsigned char key_s, key_v; unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off unsigned char data dis_buf[8]; unsigned char data dis_index; unsigned char hour,min,sec; unsigned char sec100; sbit K1 = P1^4; sbit K2 = P1^5; bit scan_key(); void proc_key(); void inc_sec(); void inc_min(); void inc_hour(); void display(); void delayms(unsigned char ms); void main(void) { P0 = 0xff; P2 = 0xff; TMOD = 0x11; // 定时器0, 1工作模式1, 16位定时方式 TH1 = 0xdc; TL1 = 0; TH0 = 0xFC; TL0 = 0x17; hour = 12; min = 00; sec = 00; sec100 = 0; dis_buf[0] = dis_code[hour / 10]; // 时十位

基于单片机的电子时钟6位LED数码管显示

数码管显示电子时钟设计 一.功能要求 1.数字电子时钟最主要是LED数码管显示功能,以24小时为一个周期,显示时 间时、分、秒。 2.具有校时功能,可以对时、进行单独校对,使其校正到标准时间。 二.方案论证 1.数字时钟方案 数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。 方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。 方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。 基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。 2.数码管显示方案 方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,

用LED数码管显示的秒表设计

单片机课程设计说明书 用LED 数码管显示的秒表设计 专业 电气工程及其自动化 学生姓名 刘宁 班级 B 电气081 学 号 0810601114 指导教师 张兰红 完成日期 2011年 6月 26 日

目录 1、概述 (2) 2、课题方案设计 (2) 2.1系统总体设计要求 (2) 2.2系统模块结构论证 (2) 3、系统硬件设计 (3) 3.1总体设计 (3) 3.2单片机运行的最小系统 (4) 3.2.1 52单片机最小系统电路介绍 (4) 3.2.2单片机的振荡电路与复位电路 (7) 3.3数码管介绍 (8) 3.4驱动电路 (9) 4、软硬件联调及调试结果 (10) 4.1软硬件调试中出现的问题及解决措施 (10) 4.2实物图 (11) 4.3调试结果 (13) 5、结束语 (13) 参考文献 (14) 附录 (14) 附录1:基于单片机的秒表设计原理图 (14) 附录2:基于单片机的秒表设计PCB图 (15) 附录3:PROTEUS仿真图 (16) 附录4:基于单片机的秒表设计C语言程序清单 (17) 附录5:基于单片机的秒表设计元器件目录表 (19)

1、概述 21世纪是一个电子技术和电子元件有更大发展的世纪。回顾百年来电子技术和电子工业发展的成就,举世瞩目。作为一个电气专业的大学生,我们不但要有扎实的基础知识、课本知识,还应该有较强的动手能力。现实也要求我们既精通电子技术理论,更要掌握电子电路设计、实验研究和调试技术。课程设计就是一个理论联系实际的机会。 本次设计主要完成具备基本功能的电子秒表的理论设计,电子秒表是重要的记时工具,广泛运用于各行各业中。作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点,不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。 在设计中应用到数码管,数码管主要用于楼体墙面,广告招牌、高档的DISCO、酒吧、夜总会、会所的门头广告牌等。特别适合应用于广告牌背景、立交桥、河、湖护栏、建筑物轮廓等大型动感光带之中,可产生彩虹般绚丽的效果。用护栏管装饰建筑物的轮廓,可以起到突出美彩亮化建筑物的效果。事实证明,它已经成为照明产品中的一只奇葩,绽放在动感都市。 2、课题方案设计 2.1 系统总体设计要求 用AT89C52设计一个2位LED数码显示“秒表”,显示时间为00~59秒,每秒自动加一。另设计一个“开始”按键和一个“复位”按键,一个“暂停”按键。接上电源后从00开始计时,至59后再回到00,继续循环。 2.2系统模块结构论证 1.单片机模块选择 方案一:选用飞思卡尔单片机,飞思卡尔单片机功能强大,但是价格相对要高,而且对此不熟悉。

非常详细 单片机 数码管LED 显示电子钟

单片机数码管LED 显示电子钟(C语言)转载 收藏人:shengshiguanjia 2010-11-24 | 阅:862 转:50 | 来源| 分享 单片机数码管LED 显示电子钟(C语言)转载 2010-10-22 01:32 ? /************************************************************ ************** ?* 标题: 数码管显示电子钟(C语言) ?* 作者: wentao ?* 日期: 2007.3.3 ?* 软件: Keil C51 V8.02 ?* 芯片: AT89X51 ?* 说明: 实验板实测通过,数码管为8位共阳 ?* 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途! ? ************************************************************* *************/ ? ?#include ?#include ?#define uchar unsigned char ? ?void delay_ms(uchar ms); // 延时毫秒@12M,ms最大值 255 ?void key_scan(); // 按键扫描 ?void key_to(); // 按键处理 ? ?uchar code dis_code[11] = {0xc0,0xf9,0xa4,0xb0,0x99, //段码表 ?// 0 1 2 3 4 对应内容

? 0x9 2,0x82,0xf8,0x80,0x90,0xbf}; ?// 5 6 7 8 9 - ? ?uchar data dis[8]; // dis[0]为秒个位 值,dis[1]为秒十位值 ?// dis[2],dis[5]为'-'段码的偏移量 ?// dis[3]为分个位值,dis[4为分十位值 ?// dis[6]为时个位值,dis[7]为时十位值 ? ?uchar data sec = 0; // 秒计数器(00s-59s) ?uchar data min = 0; // 分计数器(00m-59m) ?uchar data hou = 0; // 时计数器)00h-23h) ? ?uchar data cou = 0; // 软计数器,对10ms时基信号累加到1s ? ?uchar data dis_b; // dis_b为位码选通数码管 ?uchar data dis_r; // dis_r为取段码时的偏移量 ? ?uchar data key_v = 0; // 存储键值 ?uchar data key_t = 0; // 按键扫描中临时存储键 值 ? ?void main() ? { ?P2= 0xff; // 关所有数码 管 ?P1= 0xff; // p1为准双向口,作输入时先写1 ? dis[2] = 10; // '-'在段码表中偏移量为10 ? dis[5] = 10; // '-'在段码表中偏移量为10 ? dis_b = 0x7f; // 初始选通P2.7口数码管 ? dis_r = 0; // 初始化偏移量为0

单片机实验数码管显示时钟设计

《单片机原理与应用》课程设计 总结报告 题目:数码管显示时钟设计 数码管显示时钟设计 一﹑实验目的: 1、进一步掌握定时器的使用和编程方法。 2、进一步掌握中断处理程序的编程方法。 3、进一步掌握数码管显示功能。 5、进一步掌握软件数据处理的方法。 二﹑主要内容要求: 1、利用CPU的定时器和数码管显示电路,设计一个电子时钟。格式如下:XX XX XX 由左向右分别为:时、分、秒。 三、设计框图及整机概述 1、系统整体框图 +5V 单片机目标机 静态 显示 6位 LED 发光管 8个 电源指示控制 按键

2、整机概述: 1 正常情况显示时间 四﹑系统说明: 1.目标机为一个以89CS51单片机为核心的单片机最小系统,负责控制各个模块,完成实验及相关操作。各模块接口与引脚分配如下: (1)P2口:8个发光二极管接; (2)P0.0~P0.3:4个独立按键; (3)P0.4~P0.7:外扩展液晶模块数据线; (4)P1.0:J5短路冒,为外扩展DS18B20数据线和DS1302复位线共用; (5)P1.1:J4短路冒,为24C01数据线和DS1302时钟线共用; (6)P1.2:J6短路冒,为24C01时钟线和DS1302数据线共用; (7)P1.3:J9短路冒,为继电器控制端和液晶使能端共用; (8)P1.4:液晶模块读写控制端; (9)P1.5:J7短路冒,为液晶复位端和下载线共用; (10)P1.6~P1.7:下载线; (11)P3.0:J1短路冒,为下载线和串行通信线共用; (12)P3.1:J2短路冒,为下载线和串行通信线共用; (13)P3.2:一体化红外接收头; (14)P3.3:蜂鸣器驱动端; (15)P3.4~P3.5:定时器/计数器预留接口; (16)P3.6:164串行显示数据线; (17)P3.7:164串行显示时钟线。 2.静态显示模块 静态显示部分由6片串并转换芯片74164和6个共阴极8段数码管构成,可以实现6位数码显示,该部分特点是占用口线少,显示亮度高,由于74164在低电平输出时,允许通过的电流达8mA,故不必再添加驱动电路,与动态扫描显示比较,无需CPU不停的扫描,频繁的为显示服务,可以节省CPU的时间 五﹑程序流程图:

8位数码管显示电子时钟c51单片机程序

8位数码管显示电子时钟c51单片机程序 时间:2012-09-10 13:52:26 来源:作者: /* 8位数码管显示时间格式 05—50—00 标示05点50分00秒 S1 用于小时加1操作 S2 用于小时减1操作 S3 用于分钟加1操作 S4 用于分钟减1操作 */ #include sbit KEY1=P3^0; //定义端口参数 sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit LED=P1^2; //定义指示灯参数 code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0—9 unsigned char StrTab[8]; //定义缓冲区 unsigned char minute=19,hour=23,second; //定义并初始化为 12:30:00 void delay(unsigned int cnt) { while(--cnt); } /******************************************************************/ /* 显示处理函数 */ /******************************************************************/ void Displaypro(void) { StrTab[0]=tab[hour/10]; //显示小时 StrTab[1]=tab[hour%10]; StrTab[2]=0x40; //显示"-" StrTab[3]=tab[minute/10]; //显示分钟 StrTab[4]=tab[minute%10]; StrTab[5]=0x40; //显示"-" StrTab[6]=tab[second/10]; //显示秒 StrTab[7]=tab[second%10]; } main()

ds1302时钟数码管显示时分秒

单片机原理课程设计 课题名称:基于DS1302的数码管显示数字钟 专业班级:电子信息工程 学生学号:0414070126 学生姓名:张向阳 指导教师:张云马崇霄 设计时间:2010年6月21日--2010年6月25日

目录 摘要........................................................................................................................................................................ 1 设计任务和要求............................................................................................................................................ 2 方案论证........................................................................................................................................................ 3 系统硬件设计................................................................................................................................................ 3.1 系统总原理图 ................................................................................................................................ 3.2 元器件清单...................................................................................................................................... 3.3 PCB板图....................................................................................................................................... 3.4 Proteus仿真图 ............................................................................................................................... 3.5 分电路图及原理说明................................................................................................................... 3.5.1 主控部分(单片机MCS-51).............................................................................. 3.5.2 计时部分(实时时钟芯片DS1302).................................................................. 3.5.3 显示部分(共阳极数码管)................................................................................ 3.5.4 调时部分(按键)................................................................................................ 4系统软件设计................................................................................................................................................ 4.1 程序流程图..................................................................................................................................... 4.2 程序源代码........................................................................................................................................ 5心得体会........................................................................................................................................................ 6参考文献........................................................................................................................................................ 7结束语............................................................................................................................................................

LED显示电子时钟

一、硬件设计及说明 1、原理图设计 时钟控制部分原理图如图1所示 图1 时钟控制部分原理图 时钟显示部分原理图如图2所示 图2 时钟显示部分原理图 AT89S52是一种低功耗、高性能CMOS8位微控制器,它具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

本电子时钟设计具有最简单的计时功能及调整时间的功能。基于AT89C52芯片和LED 数码管为核心,辅以必要的电路,并以C语言程序设计为基础,构成一个简单的单片机数字电子时钟。通过数码管能够准确显示时间,并且可以通过按键进行校时,连接P3.2口的按钮(H按钮)可以进行小时调整,连接P3.3口的按钮(M按钮)可以进行分钟调整。它的计时周期为24小时,显示满刻度为23时59分59秒。 该电路数码管的位选由P2口控制;数码管的显示代码由P0口传送;调整时间按键接单片机的P3.2和P3.3引脚;按键的扫描原理就是首先P3高四位送高电平,判断低四位的电平,如有高电平表明有按键按下,读取哪个键按下,接着P3口低四位接低电平,高四位接高电平,读取按键。 2、PCB设计 LED显示电子时钟PCB图如图3所示 图3 LED显示电子时钟PCB图 二、软件设计及说明

相关文档
最新文档