3.2复位电路
按键电平复位是通过复位端经电阻与VCC接通而实现的,也是一个高电平有效电路,无极电容C的两端不能突变,所以Ua=Vcc,Uab=Ua-Ub,Ub=Ua-Uab
C3R91k22uFRSTR101k
3.3 四位一体数码管显示
vcc90129012Q29012Q39012Q4R1R2R3R4R5R6R7R8Q14.7kJ2U11234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETRXDTXDINT0INT1T0T1WRRDXTAL2XTAL1GND8751VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VPALE/PPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.04039383736353433323130292827262524232221R9R10R11R12R13R14R15R16100100100100100100100100四位数码管abcdefdgpJ11234CON4R22R21R20R194.7K4.7K4.7K4.7K1234
4 软件设计
4.1 主程序流程图
开始 初始化
功能键
Y yN 调节时间 正常计时 LED显示 结束
4.2初始化
void csh(void) {
TMOD=0X11; TH0=0XF8; TL0=0X30; smg=0xff; EA=1; ET0=1; minute=0; minute1=0; TH1=0xd8; TL1=0xf0; TR1=1; ET1=1; lsd_4=1;
4.3 数码管显示
void smgxs(void) {
if(xtw==1) { } if(xtw==2) {
xt_en1=1;
smg1=smgxsm[bw]; if(dp_en==1) { } else {
smg=smg1; smg=smg1&0x7f; xt_en4=1; smg=smgxsm[qw]; xt_en1=0;
课 程 设 计 报 告
论文题目 单片机-电子钟
专业班级 学生姓名 学 号 指导教师
宁波技师学院电气技术系 二零一三 年 九月
摘 要
数字钟是一种用数字电路技术实现时、分、秒计时的装置,在现实生活中,各种数字钟已得到非常广泛的使用.数字钟的设计方法有许多种,例如可用中小规模集成电路组成数字钟,也可以利用好单片机来实现数字钟等。这些方法都各有特点,其中利用中小规模集成电路组建数字钟,原理简单,但由于集成电路集成度有限,对于需要实现较多功能的电路设计比较复杂,对于制作者焊接和布线有比较高的要求。用单片机实现的电子钟具有结构简单,并便于功能的扩展,但需要涉及到汇编以及C语言编写程序,对设计者有较高的要求。
1 引 言
数字钟是采用数字电路实现对时、分、秒,数字显示的计时装置广泛用于个人家庭,车站,码头,办公室等公共场所,成为人民日常生活中不可少的必须品,由于数字集成电路的发展和石英振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给 人们生活带来极大的方便,而且大大地扩展了钟表原先的报时功能。比如定时自动报警,校时自动打铃,自动启闭路灯等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用有着非常现实的意义。
2.总体设计方案
2.1 系统设计方案
本次设计的题目是可以正常的显示时、分、秒。本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89C51为核心元件,同时采用四位一体数码管动态显示“时”、“分”、“秒”的现代计时装置。它具有显示直观,校时功能等特点,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。
本次设计可分为两部分:硬件部分、软件部分。
硬件部分包括:AT89C51单片机四位一体显示器。主要由AT89C51单片机、显示输出电路、按钮输入电路等几大部分组成。具体说来,系统智能控制部分由单片机及其相关的外围电路组成,外围电路包括复位电路、数字钟电路、键盘设计。
利用单片机将复位电路、显示电路等正确的连接在一起,并通过单片机的编程来实现本次设计任务中的要求。
2.2 结构框图
3 硬件设计
3.1 时钟电路
89C51片内没有一个由反向放大器所构成的震荡电路,XTAL1和XTAL2分别是振荡电路的输入端和输出端。内部方式时钟电路只要在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就能产生自激震荡,晶体频率可以在1.2MHZ到12MHZ之间,电容值在5PF到30PF之间,电容可起频率微调作用,在5PF到30PF之间,频率越高,电容值越小
C120pF20pFC2 X1CRYSTAL
}
} xt_en2=0;
if(xtw==3) { } if(xtw==4) { } }
xt_en3=1; smg=smgxsm[gw]; xt_en4=0; xt_en2=1; smg=smgxsm[sw]; xt_en3=0;
4.4数码管关闭
void smggb(void) {
smg=0xff; }
4.5按键处理
void key_cl(void) {
if(zqz==0) {
}
if(ziqz==2&&dqz==2) { }
if(ziqz==3&&dqz==3) smg_tz=!smg_tz; if(ziqz==1&&dqz==1) {
smg_en=!smg_en; TR0=1;
{ }
if(ziqz==4&&dqz==4) { }
if(ziqz==7&&dqz==7) { } if(sjsz==1) {
lsd_1=0;
if(ziqz==5&&dqz==5) {
minute1++; if(minute1>=10) clock_en=1; sjsz++; if(sjsz==5) { } sjsz=0; sj_xz=!sj_xz;
}
{ }
if(minute>=6) { }
minute=0; minute1=0; minute1=0; minute++;
if(ziqz==6&&dqz==6) {
minute1--;
if(minute1==-1) {
minute1=9; minute--;
}
if(minute==-1) {
minute1=9; minute=5;
}
}
}
if(sjsz==2) {
lsd_1=1; lsd_2=0;
if(ziqz==5&&dqz==5) { }
if(ziqz==6&&dqz==6) hour1++; if(hour1>=10) { }
if(hour>=2&&hour1>=4) { }
hour=0; hour1=0; hour1=0; hour++;