6位数字钟课程设计用P1口控制4只段码管,用2位数码管进行分针时间显示,用2位数码管进行秒针时间显示。
单片机课程设计6位数字显示计时(DOC)

单片机课程设计报告书课题: 6 位数显频率计数器院(系):机电工程学院专业:机械设计制造及其自动化姓名:学号:2014年1月14日目录一、前言----------------------------------------------------1.1、课程设计任务------------------------------------------------1.2、课程设计任务完成要求------------------------1.3、设计目的-----------------------------------------------------二、方案提出与论证-------------------------------------2.1频率测量原理与方法-----------------------------------三、系统硬件设计----------------------------------------3.1电路原理图总图-------------------------------------------------3.1.1电源供电电路--------------------------------------------------3.1.2 单片机时钟电路----------------------------------------------3.1.3单片机复位电路-----------------------------------------------3.1.4显示及驱动电路-----------------------------------------------3 .2 AT89C51单片机芯片的功能及其参数------------------四、系统软件设计----------------------------------------4.1软件流程图-------------------------------------------------------4.2程序调试及误差分析-------------------------------------------五、制作PCB板及焊接元件调试--------------------六、元器件明细表----------------------------------------七、实验总结-------------------------------八、参考文献----------------------------------------------题目四:6位数显频率计数器一前言数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
六位数字钟课程设计

R9.R10.R11.R12.R13.R14
C1 C2.C3.C5 C4 C7.C8. D1.D2.D3 电解电容 电解电容 瓷片电容 瓷片电容 二极管 220UF 10UF 104 30 1N4148
电阻
1 3 1 2 3
4.7k
ห้องสมุดไป่ตู้
6
LED1.LED2.LED3.LED4 发光二极管 3MM 红色 Q1.Q2.Q3.Q4.Q5.Q6. IC1 IC2 集成电路 集成电路 三极管 9012
程序设计部分
• AT89C2051时钟程序 ;
• 定时器T0、T1溢出周期为50MS,T0为秒计 数用, T1为调整时闪烁用
• P3.7为调整按钮,P1口 为字符输出口, 采用共阳显示管。
元件清单
位号 名称 规格 数量 电阻 2 470 8 R1.R2.R3.R4.R5.R6.R7.R16 R8.R15 电阻 10K
概述
• 控制芯片采用AT89C2051,数码管采用3只 0.36寸双位红色共阳型LED数码管;
• S1按键用于校准时间,按住2秒以上校准 时间状态及换档和退出,快速点触用于调 节时间数阻。本电路又增加了一个3V的备 用电池,停电时AT89C2051采用备用电池 供电,时钟不会停止,但数码管不显示, 来电后备用电池失去作用,AT89C2051采 用外部电源供电,数码管正常显示。 • 加入光敏电阻后,能达到白天显示,夜晚 中断的效果,节省电量。
六位光敏数字钟
卢雄辉 黄斌
在此处插入产品 照片
设计要求
• 时间以24小时为一个周期;
• 显示时,分,秒; • 有校时功能,可以分别对时及分进行单独 校时,使其校正到标准时间; • 为了保证计时的稳定及准确须由晶体振荡 器提供表针时间基准信号.
《六位数数字电子钟》实训报告书

实训报告一. 实训目的:了解常用电子元器件的性能,规格,质量参数及其意义.学习借助万用表鉴别其性能好坏的方法,学习通孔插装元器件的组装焊接技术,提高焊接水平.通过数字钟组状与调试学习,提高识图能力及实际操作技能.二. 实训内容:1.常用元器件识别及测试性能鉴别2.通孔插装元器件手工焊接及拆焊3.数字钟组装调试三. 实训步骤:1.常用元器件识别及测试性能鉴别1)三用表使用方法学习2)电阻、电容、电感、二极管、三极管、集成电路等(符号、参数、万用表测试三极管及其E.B.C判别方法)2.通孔插装元器件手工焊接及拆焊1)常用工具使用方法学习钳子、镊子、起子、吸锡器、烙铁等2)焊料(焊锡丝)3)助焊剂4)手工焊接A.对焊点要求B.焊接要领(五步法)C.焊件表面处理:保持烙铁头清洁、焊锡、焊剂用量适中、焊件整形及固定、烙铁撤离方向等5)拆焊要求拆焊原则、拆焊工具、拆焊操作要点实训过程步骤一准备认准焊点位置, 准备好焊锡丝和烙铁, 处于随时可焊接的状态。
此时特别强调的施烙铁头部要保持干净, 即可以沾上焊锡(俗称吃锡)。
步骤二加热将烙铁头放在工件焊点处, 加热焊接点。
注意首先要保持烙铁加热焊件各部分, 例如印制板上引线和焊盘都使之受热, 其次要注意让烙铁头的扁平部分(较大部分)接触热容量较大的焊件, 烙铁头的侧面或边缘部分接触热容量较小的焊件,以保持焊件均匀受热。
步骤三送焊锡当焊件加热到能熔化焊料的温度后将焊丝置于焊点, 焊料开始熔化并润湿焊点。
步骤四去焊锡当熔化一定量的焊锡后将焊锡丝移开。
步骤五移烙铁当焊锡完全润湿焊点后移开烙铁, 注意移开烙铁的方向应该是大致45°的方向。
要保证焊点美观。
上述过程, 对一般焊点而言焊接时间大约2~3秒钟。
对于热容量较小的焊点, 例如印制电路板上的小焊盘, 有时用三步法概括操作方法, 即将上述步骤2, 3合为一步, 4, 5合为一步。
实际上细微区分还是五步, 所以五步法有普遍性, 是掌握手工烙铁焊接的基本方法。
6位单片机电子钟

《6位单片机电子钟》一.硬件电路设计:我们此次设计的电子钟采用2个3位共阳LED数码管作为显示器件,以STC89C52单片机作为控制器,可以显示时分秒。
具体电路设计如下图:二:源程序:#include "at89x52.h"#define uchar unsigned char#define uint unsigned intuchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};uchar code tab1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x42,0x78,0x00,0x10};uchar n;uchar hh,mm,ss;uchar nhh,nmm,nss;uint year;uchar day,mon,week;uchar hhs,hhg,mms,mmg,sss,ssg;uchar days,dayg,mons,mong;uchar nhhs,nhhg,nmms,nmmg,nsss,nssg;uchar set1=1,set2=1;sbit fm=P3^6;sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;uchar table1[]={31,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年uchar table2[]={31,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年void jishi();void baoshi();void alarm();void set_time();void set_alarm();void set_mdw();void key_change();void key_set();void delay(int m) //延时程序,延时m*0.5ms{uint i;uint j;for (i=0;i<m;i++){for(j=0;j<50;j++);}}void timer0( ) interrupt 1{TMOD=0x01;TH0=0x3c;TL0=0xb1;n++;jishi();}main(){TMOD=0x01;TH0=0x3c;TL0=0xb1;TR0=1;EA=1;ET0=1;hh=23;mm=59;ss=50;nhh=7;nmm=30;nss=0;year=2008;mon=12;day=1;week=1;while(1){hhs=hh/10;//时分秒hhg=hh%10;mms=mm/10;mmg=mm%10;sss=ss/10;ssg=ss%10;nhhs=nhh/10;//闹钟nhhg=nhh%10;nmms=nmm/10;nmmg=nmm%10;nsss=nss/10;nssg=nss%10;days=day/10;//月日dayg=day%10;mons=mon/10;mong=mon%10;key_change(); //k1按键扫描key_set(); //k2按键扫描set_time(); //设置时间set_mdw(); //设置月日星期set_alarm(); //设置闹钟if(set1==1) //正常走时显示{P0=tab[hhs];P2_5=0;delay(1);P2_5=1;//时十位P0=tab1[hhg];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[mms];P2_3=0;delay(1);P2_3=1;//分十位P0=tab1[mmg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[sss];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[ssg];P2_0=0;delay(1);P2_0=1;//秒个位}if(set1==2) //设置时间{P0=tab[hhs];P2_5=0;delay(1);P2_5=1;//时十位P0=tab1[hhg];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[mms];P2_3=0;delay(1);P2_3=1;//分十位P0=tab1[mmg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[sss];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[ssg];P2_0=0;delay(1);P2_0=1;//秒个位}if(set1==3) //正常显示月日-星期{P0=tab[mons];P2_5=0;delay(1);P2_5=1;//时十位P0=tab1[mong];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[days];P2_3=0;delay(1);P2_3=1;//分十位P0=tab1[dayg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[11];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[week];P2_0=0;delay(1);P2_0=1;//秒个位}if(set1==4) //设置月日-星期{P0=tab[mons];P2_5=0;delay(1);P2_5=1;//时十位P0=tab[mong];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[days];P2_3=0;delay(1);P2_3=1;//分十位P0=tab[dayg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[11];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[week];P2_0=0;delay(1);P2_0=1;//秒个位}if(set1==5) //正常显示定时{P0=tab[nhhs];P2_5=0;delay(1);P2_5=1;//时十位P0=tab[nhhg];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[nmms];P2_3=0;delay(1);P2_3=1;//分十位P0=tab[nmmg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[nsss];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[nssg];P2_0=0;delay(1);P2_0=01;//秒个位}if(set1==6) //设置闹钟定时{P0=tab[nhhs];P2_5=0;delay(1);P2_5=1;//时十位P0=tab[nhhg];P2_4=0;delay(1);P2_4=1;//时个位P0=tab[nmms];P2_3=0;delay(1);P2_3=1;//分十位P0=tab[nmmg];P2_2=0;delay(1);P2_2=1;//分个位P0=tab[nsss];P2_1=0;delay(1);P2_1=1;//秒十位P0=tab[nssg];P2_0=0;delay(1);P2_0=01;//秒个位}baoshi(); //整点报时alarm(); //闹钟}}void jishi() //计时函数{if(n==20){n=0;ss++;if(ss==60){ss=0;mm++;if(mm==60){mm=0;hh++;if(hh==24){hh=0;day++;week++;if(week==8){week=0;}if(year%4==0&&year%100!=0||year%400==0) //闰年{if(day==table1[mon]+1){day=0;mon++;if(mon==13){mon=0;year++;}}}else //非闰年{if(day==table2[mon]+1){day=0;mon++;if(mon==13){mon=0;year++;}}}}}}}}uchar incone(uchar n) //加1函数{if(k3==0){delay(20);if(k3==0){n++;while(!k3);}}return(n);}uchar decone(uchar m) //减1函数{if(k4==0){delay(20);if(k4==0){m--;while(!k4);if(m<0){m=0;}}}return(m);}void key_change() //k1按键扫描{if(k1==0){delay(20);if(k1==0){set1++;while(!k1);if(set1==7){set1=1;}}}}void key_set() //k2按键扫描{if(k2==0){delay(20);if(k2==0){set2++;while(!k2);if(set2==4){set2=1;}}}}void baoshi() //整点报时函数{if(mm==00&&ss==00){fm=0;}if(ss==1){fm=1;}}void alarm( ) //闹钟函数{uchar x;if(nhh==0){goto end;}if(hh==nhh&&mm==nmm&&ss==nss) {for(x=0;x<6;x++){fm=0;delay(30);fm=1;delay(20);fm=0;delay(30);fm=1;delay(20);fm=0;delay(30);fm=1;delay(20);fm=0;delay(30);fm=1;delay(180);}}end:;}void set_time() //设置时间函数{if(set1==2){if(set2==1){hh=incone(hh);if(hh==24){hh=0;}if(hh==-1){hh=23;}hh=decone(hh);}if(set2==2){mm=incone(mm);if(mm==60){mm=0;}if(mm==-1){mm=59;}mm=decone(mm);}if(set2==3){ss=incone(ss);if(ss==60){ss=0;}if(ss==-1){ss=59;}ss=decone(ss);}}}void set_mdw() //设置月日星期函数{if(set1==4){if(set2==1){mon=incone(mon);if(mon==13){mon=1;}mon=decone(mon);if(mon==0){mon=12;}}if(set2==2){day=incone(day);if(day==32){day=1;}day=decone(day);if(day==0){day=31;}}if(set2==3){week=incone(week);if(week==8){week=1;}week=decone(week);if(week==0){week=7;}}}}void set_alarm() //设置闹钟函数{if(set1==6){if(set2==1){nhh=incone(nhh);if(nhh==24){nhh=0;}if(nhh==-1){nhh=23;}nhh=decone(nhh);}if(set2==2){nmm=incone(nmm);if(nmm==60){nmm=0;}nmm=decone(nmm);if(nmm==-1){nmm=59;}}if(set2==3){nss=incone(nss);if(nss==60){nss=0;}nss=decone(nss);if(nss==-1){nss=59;}}}}合作者:吴肖,陈耀,张鹏程,徐煜。
六位数字钟设计课程设计

目录目录 (I)摘要 ................................................................................................................................................................ I I 第一章绪论 . (1)1.1关于单片机的基础知识 (1)1.2开发背景及电子钟原理 (2)1.2.1 开发背景 (2)1.2.2 电子钟原理 (2)1.3方案比较 (2)1.4 定时与中断系统 (3)第二章系统硬件设计 (3)2.1 电源电路图 (3)2.2硬件电路设计框图 (4)2.3数字钟原理图 (4)2.4单片机模块 (5)2.5 AT89S52芯片简介 (5)2.6 AT89S52功能描述 (6)2.7键盘控制电路 (8)2.8复位电路 (8)2.9显示电路 (8)2.9.1 LED共阳数码管简介 (9)第三章系统软件设计 (10)3.1编程思路 (10)3.2系统资源分配 (11)3.3编程流程图初始化程序框图: (11)3.4数字钟程序 (12)第四章单片机应用系统的调试 (17)4.1.硬件调试 (17)4.2软件调试 (17)4.3系统调试 (18)谢辞 (18)参考文献 (19)摘要该数字钟电路采用单片机AT89S52实现,晶振频率采用6MHZ,显示部分采用了3个两位一体共阳极的LED数码管组成的动态显示电路,通过6个驱动器(即共阳极PNP 型的三极管)来驱动放大LED,用4个LED闪动的点来指示秒的节拍,其中字段由P0口控制。
按键K0进行选位,K1、k2进行时间调整,可适用显示时,分,秒的信息。
利用我们现所学的知识,本着经济,可靠、体积小、功能扩展方便并具有先进性的基本原则,我们选用当今世界流行的已被广泛应用的器件AT89S52单片微型计算机为核心并根据其功能要求的特性来构成本方案的基本设计思想,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,体积小、精度高、功能扩展极其方便,成本低。
6位 数字钟设计

目录一、课程设计目的 (2)二、课程设计正文 (2)1.任务要求说明 (2)1.1、主要任务 (2)1.2、技术要求 (2)1.3、设计思路 (2)1.4、所需器件 (3)1.5、硬件设计 (3)1.5.1.STC90C52AD说明 (3)1.5.2.数码管说明 (4)2.单元模块设计 (5)2.1时间显示模块 (5)2.2 按键调时模块 (6)2.3 显示驱动模块 (7)3.原理简介 (7)3.1电路原理图 (7)3.2、原理介绍 (8)4.参数计算 (8)5.系统软件设计 (8)5.1开发软件Keil C51 uVision3简介 (8)5.2单片机程序烧写软件 (9)5.3参考程序 (9)三、课程设计总结 (15)四、参考文献 (16)附录一、系统原理图附录二、PCB图一、课程设计目的1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二、课程设计正文1任务及要求说明1.1主要任务采用AT89S51作为控制单元,实现数字钟的设计。
1)设计键盘输入电路2)设计显示电路3)合理分配地址,编写系统程序4)利用Protel设计硬件电路原理图并进行软硬件联机调试1.2 技术要求1.3设计思路1、时间的显示:单片机P0.0—P0.3控制位选,可分别选通四只共阴数码管。
P1.0—P1.6控制段码管,将数据送给74LS245驱动数码管显示时间。
2、时间的调整:设置4个按钮,分别由P2.0—P2.3控制,其编号分别是1到4。
1为调节切换键,2为加1键,3为减1键,4为确认开始键。
1.4 设计所需器材电阻: 1K (8个) 10K(9个) 2.2k(1个) 300(8个)200K(1个)按键开关:5个瓷石电容:30pF (2个)电解电容:10μF(1个)晶振:6MHZ(1个)三极管:NPN(4个)共阴极数码管:4个底座:DIP40(1个)DIP16(1个)万能电路板:1个芯片:STC90C52(1片)Header2(1个)1.5 硬件设计1.5.1.STC90C52AD说明AT89C51的引说明和功能说明如下:XTAL1 :接外部晶振的一个引脚。
多功能6位电子钟说明书
多功能6位电子钟说明书一、原理说明:1、显示原理:显示部分主要器件为2位共阳红色数码管,驱动采用PNP型三极管驱动,各端口配有限流电阻,驱动方式为扫描,占用P1.0~P1.6端口。
冒号部分采用4个Φ3.0的红色发光,驱动方式为独立端口驱动,占用P1.7端口。
2、键盘原理:按键S1~S3采用复用的方式与显示部分的P3.5、P3.4、P3.2口复用。
其工作方式为,在相应端口输出高电平时读取按键的状态并由单片机支除抖动并赋予相应的键值。
3、迅响电路及输入、输出电路原理:迅响电路由有源蜂鸣器和PNP型三极管组成。
其工作原理是当PNP型三极管导通后有源蜂鸣器立即发出定频声响。
驱动方式为独立端口驱动,占用P3.7端口。
输出电路是与迅响电路复合作用的,其电路结构为有源蜂鸣器,4.7K定值电阻R16,排针J3并联。
当有源蜂鸣器无迅响时J3输出低电平,当有源蜂鸣器发出声响时J3输出高电平,J3可接入数字电路等各种需要。
驱动方式为迅响复合输出,不占端口。
输入电路是与迅响电路复合作用的,其电路结构是在迅响电路的PNP型三极管的基极电路中接入排针J2。
引脚排针可改变单片机I/O口的电平状态,从而达到输入的目的。
驱动方式为复合端口驱动,占用P3.7端口。
4、单片机系统:本产品采用AT89C2051为核心器件(AT89C2051烧写程序必须借助专用编程器,我们提供的单片机已经写入程序),并配合所有的必须的电路,只具有上电复位的功能,无手动复位功能。
二、使用说明:1、功能按键说明: S1为功能选择按键,S2为功能扩展按键,S3为数值加一按键。
2、功能及操作说明:操作时,连续短时间(小于1秒)按动S1,即可在以上的6个功能中连续循环。
中途如果长按(大于2秒)S1,则立即回到时钟功能的状态。
1、时钟功能:上电后即显示10:10:00 ,寓意十全十美。
2、校时功能:短按一次S1,即当前时间和冒号为闪烁状态,按动S2则小时位加1,按动S3则分钟位加1,秒时不可调。
【设计】六位数码管电子钟
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 【关键字】设计毕业设计(论文)(2011届)题目六位数码管电子钟系别信息电子系专业信息电子工程管理班级信电0811姓名张淑娇指导教师2011年月日目录摘要 (1)文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 4六位数码管电子钟【摘要】数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。
干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态送到七段显示译码器译码,通过七位LED七段显示器显示出来。
整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的。
数字钟是以不同的计数器为基本单元构成的,它的用途十分广泛,只要有计时、计数的存在,便要用到数字钟的原理及结构;同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱。
【关键词】:校时电路、报时电路、振荡器第一章数字电子钟的设计方案论证1.1数字电子钟的应用意义数字电子钟是用数字电路实现“时”、“分”、“秒”数字显示的计时装置,主要由振荡器、分频器、计数器、译码显示器、校时电路、报时电路等六部分组成。
数字逻辑课程设计数字时钟课程设计数电课程设计 数字电子技术
数字逻辑课程设计课题名称数字时钟班级姓名指导教师日期 2008-6-24前言自从它被发明的那天起,就成为人们生活中必不可少的一种工具,尤其是在现在这个讲究效率的年代,时钟更是在人类生产、生活、学习等多个领域得到广泛的应用。
然而随着时间的推移,人们不仅对于时钟精度的要求越来越高,而且对于时钟功能的要求也越来越多,时钟已不仅仅是一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
诸如闹钟功能、日历显示功能、温度测量功能、湿度测量功能、电压测量功能、频率测量功能、过欠压报警功能等。
钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
可以说,设计多功能数字时钟的意义已不只在于数字时钟本身,更大的意义在于多功能数字时钟在许多实时控制系统中的应用。
在很多实际应用中,只要对数字时钟的程序和硬件电路加以一定的修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。
因此,研究数字时钟及扩大其应用,有着非常现实的意义。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路.目前,数字钟的功能越来越强,并且有多种专门的大规模集成电路可供选择.目录前言 (2)目录 (2)题目 (2)摘要 (2)关键字 (3)设计要求 (3)正文 (3)1电路结构与原理图 (3)2数码显示器 (3)60进制计数和24进制计数 (4)校时 (7)振荡器 (8)3.计算、仿真的过程和结果 (9)鸣谢 (11)元器件清单 (11)参考文献 (11)总结与体会 (11)教师评语 (12)数字时钟的课程设计摘要:数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
六位电子钟实习报告
一、实习目的随着科技的发展,电子钟已经成为我们日常生活中不可或缺的用品。
为了更好地了解电子钟的原理和制作方法,提高自己的动手能力,我参加了为期一周的六位电子钟实习。
本次实习旨在让我了解电子钟的基本结构、工作原理和调试方法,掌握电子钟的组装技巧,并培养我的实践能力和创新精神。
二、实习内容1. 电子钟的基本结构电子钟主要由以下几个部分组成:电源、振荡器、分频器、计数器、显示器和控制系统。
电源为电子钟提供稳定的电压;振荡器产生基准频率信号;分频器将基准频率信号分频,得到所需的时、分、秒信号;计数器对时、分、秒信号进行计数;显示器将计数结果显示出来;控制系统对电子钟的整体运行进行控制。
2. 电子钟的工作原理电子钟的工作原理如下:(1)电源为电子钟提供5V电压,经过稳压电路后得到稳定的3V电压。
(2)振荡器产生一个1MHz的基准频率信号。
(3)分频器将1MHz的基准频率信号分频,得到1Hz的时、分、秒信号。
(4)计数器对时、分、秒信号进行计数,并将计数结果存储在存储器中。
(5)控制系统读取存储器中的计数结果,并通过显示驱动电路将计数结果显示在显示器上。
3. 电子钟的组装(1)首先,将振荡器、分频器、计数器、显示器和控制系统等元件焊接在电路板上。
(2)然后,将电路板固定在机箱中,连接好电源线和显示器的引脚。
(3)最后,进行调试,确保电子钟的正常运行。
4. 电子钟的调试(1)检查电路板上的元件焊接是否牢固,有无短路或虚焊现象。
(2)调整振荡器的频率,使分频器输出的时、分、秒信号符合实际时间。
(3)检查显示器的显示效果,确保显示的时、分、秒准确无误。
(4)调整控制系统,使电子钟的时、分、秒能够自动调整。
三、实习收获1. 了解电子钟的基本结构和工作原理,为今后从事电子行业打下基础。
2. 提高自己的动手能力,掌握电子钟的组装和调试方法。
3. 培养自己的实践能力和创新精神,为今后的职业生涯做好准备。
4. 增强团队协作能力,与同学们共同完成实习任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息与电气工程学院课程设计说明书(2011/2012学年第2学期)课程名称:单片机课程设计题目:6位数字钟设计专业班级:电气0901学生姓名:陈浪学号:090060116指导教师:岑毅南、苗敬利、王静爽等设计周数:两周设计成绩:2012 年6月20日目录一、课程设计目的 (2)二、课程设计正文 (2)1.任务要求说明 (2)1.1、主要任务 (2)1.2、技术要求 (2)1.3、设计思路 (2)1.4、所需器件 (3)1.5、硬件设计 (3)1.5.1.STC90C52AD说明 (3)1.5.2.数码管说明 (4)2.单元模块设计 (5)2.1时间显示模块 (5)2.2 按键调时模块 (6)2.3 显示驱动模块 (7)3.原理简介 (7)3.1电路原理图 (7)3.2、原理介绍 (8)4.参数计算 (8)5.系统软件设计 (8)5.1开发软件Keil C51 uVision3简介 (8)5.2单片机程序烧写软件 (9)5.3参考程序 (9)三、课程设计总结 (15)四、参考文献 (16)附录一、系统原理图附录二、PCB图一、课程设计目的1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二、课程设计正文1任务及要求说明1.1主要任务采用AT89S51作为控制单元,实现数字钟的设计。
1)设计键盘输入电路2)设计显示电路3)合理分配地址,编写系统程序4)利用Protel设计硬件电路原理图并进行软硬件联机调试1.2 技术要求技术要求1、用P1口控制4只段码管,用2位数码管进行分针时间显示,用2位数码管进行秒针时间显示。
2、可以调整时间,且调整位闪烁提示。
3、设置调节切换键、确认键、加1键和减1键。
1.3设计思路1、时间的显示:单片机P0.0—P0.3控制位选,可分别选通四只共阴数码管。
P1.0—P1.6控制段码管,将数据送给74LS245驱动数码管显示时间。
2、时间的调整:设置4个按钮,分别由P2.0—P2.3控制,其编号分别是1到4。
1为调节切换键,2为加1键,3为减1键,4为确认开始键。
1.4 设计所需器材电阻: 1K (8个) 10K(9个) 2.2k(1个) 300(8个)200K(1个)按键开关:5个瓷石电容:30pF (2个)电解电容:10μF(1个)晶振:6MHZ(1个)三极管:NPN(4个)共阴极数码管:4个底座:DIP40(1个)DIP16(1个)万能电路板:1个芯片:STC90C52(1片)Header2(1个)1.5 硬件设计1.5.1.STC90C52AD说明AT89C51的引说明和功能说明如下:XTAL1 :接外部晶振的一个引脚。
在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。
它采用外部振荡器时,些引脚应接地。
XTAL2 :接外部晶振的一个引脚。
在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。
当采用外部振荡器时,则此引脚接外部振荡信号的输入。
RST :复位信号输入引脚,高电平有效,当要对芯片复位时,只要将此引脚电平提升到高电平,并持续两个机器周期以上的时间,AT89C51便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。
P0口(P0.0~P0.7)是一个8位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8位)和数据总线复用。
外部不扩展而单片应用时,则作一般双向I/O口用。
P0口每一个引脚可以推动8个LSTTL负载。
P2口(P2.0~P2.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),当访问外部程序存储器时,它是高8位地址。
外部不扩展而单片应用时,则作一般双向I/O 口用。
每一个引脚可以推动4个LSTL负载。
P1口(P1.0~P1.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),其输出可以推动4个LSTTL负载。
仅供用户作为输入输出用的端口。
P3口(P3.0~P3.7)口是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能1.5.3数码管。
LED 显示器由8段发光二极管组成,排列成8字形状,称为8段LED 显示器,器件内部接线图如图所示:为了显示数字或符号,要为LED 显示器提供代码,即字形代码。
七段发光二极管,再加上一个小数点(dp )位,共计8段,因此提供的字形代码的长度正好是一个字节。
简易计算器用到的数字0~9的共阴极字形代码如下表:共阴数码管段码表2.单元模块设计2.1、时间显示模块时间显示模块显示字符 0 1 2 3 4 5 6 7 8 9 暗段码3FH06H5BH4F66H6DH7DH07H7F6FH 00H2.2 按键调时模块按键调时模块2.3 显示驱动模块显示驱动模块3 .原理简介3.1电路原理图电路原理图3.2、原理介绍(1)初始时,4个数码管显示全为0,并且秒显示数码管最后一位每秒钟加1.此时,单片机内部定时器0计时,每100ms溢出一次,10次中断秒显加一。
单片机P1口不断向245送数据驱动数码管显示。
(2)按下S1时,系统进入调节切换模式,定时器0关闭,计时停止。
按S1一下调分,按S1两下调秒。
S2、S3分别为加数和减数。
S4为确认开始键,按下后系统计时开始。
(3)进入调整时间模式时,数码管闪烁显示提示。
4.参数计算1、定时器初值计算定时器0设为16位定时器。
外部为6兆的晶体振荡器,故而可知一个机器周期是2微秒。
分析:已知fosc = 6MHz 则:(机器周期)1Tm=12Tc=12/6MHz=2 uS100mS÷2 S = 5000016位定时器最大数值为:65536 (=0FFFFH+1)故选择方式1工作可以满足要求。
计算初值:65536-50000=15536=3CB0H定时器0高八位和第八位分别装入初值TH0=03CH; TL0=0B0H。
每100ms定时器溢出一次,中断十次刚好1s,秒显示加1.5.系统软件设计5.1开发软件Keil C51 uVision3简介Keil uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS-51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持、PLM、汇编和C语言的程序设计,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
Keil C51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。
工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。
建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。
调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。
在工具栏下面,默认有三个窗口。
左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。
右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可在这里对源文件进行编辑、修改、粘贴等。
下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。
如果通过则会生成“HEX”格式的目标文件,用于仿真或烧录芯片。
基本环境如图2-1所示:MCS-51单片机软件Keil C51开发过程为:①建立一个工程项目,选择芯片,确定选项。
②建立汇编源文件或C源文件。
③用项目管理器生成各种应用文件。
④检查并修改源文件中的错误。
⑤编译连接通过后进行软件模拟仿真或硬件在线仿真。
5.2单片机程序调试软件STC90C52AD 系列单片机大部分具有在系统可编程特性,单片机在用户系统上即可在线调试用户程序,而无需将单片机从已经生产好的产品上拆下,在用通用编程器进行调试程序。
大部分STC90C50AD 系列单片机在销售给用户之前已经在单片机系统内部固化了ISP 系统引导程序配合PC 端得控制程序即可将用户的程序代码下载进单片机内部,故无需编程器烧写程序。
参考程序:ORG 0000H AJMP MAIN ORG 000BHAJMP TINT ORG 0030HMAIN:MOV R6,#00H ;确认键 SETB F0 ;闪烁标志位Keil C51软件的运行界面MOV R4, #00H ;闪烁时钟位MOV 50H,#00HMOV 51H,#00HMOV 52H,#00HMOV 53H,#00HMOV R5,#00H ;调整键0正常显示、1调分、2调秒MAIN2:LCALL XIANS ;调用显示子程序LCALL KEY ;调用按键检测子程序JZ MAIN2KEY:MOV P2,#0FFH ;将P2口设置成输入状态MOV A,P2CPL AANL A,#0FH ;P1口低4位连接4个按键,只判断该4位JZ EXIT_KEY ;无键按下则返回LCALL DELAY ;延时去抖动MOV A,P2 ;重新判断CPL AANL A,#0FHJZ EXIT_KEY ;键盘去抖动JB P2.0,FUNC1 ;切换JB P2.1,FUNC2 ;加JB P2.2,FUNC3 ;减JB P2.3,FUNC4 ;确认EXIT_KEY:RETFUNC4:CJNE R6,#01H ,MAIN1LJMP QUERENRETFUNC1:CJNE R6,#01H ,DONE7INC R5DONE7:RETFUNC2:CJNE R5,#01H ,XUANZE1LJMP FENJIARETXUANZE1:CJNE R5,#02H,MIAOJIARETFUNC3:CJNE R5,#01H ,XUANZE2LJMP FENJIANRETXUANZE2:CJNE R5,#02H,MIAOJIANRETMIAOJIA:MOV A,42H;秒加调整子程序ADD A,#01HDA AMOV 42H ,ACJNE A,#60H,DONE1MOV 42H,#00HDONE1:RETFENJIA:MOV A,41H;分加子程序ADD A,#01HDA AMOV 41H ,ACJNE A,#60H,DONE2MOV 41H,#00HDONE2:RETFENJIAN:MOV A ,#99H;分减子程序ADD A,41HDA AMOV 41H ,ACJNE A,#99H,DONE3MOV 41H ,#59HDONE3:RETMIAOJIAN:MOV A ,#99H;秒减子程序ADD A,42HDA AMOV 42H ,ACJNE A,#99H,DONE4MOV 42H ,#59HDONE4:RETQUEREN:CJNE R6,#00H,QUEREN1;确认子程序INC R6LJMP DONE5QUEREN1:MOV R6,#00HDONE5:RETQIEHUAN:CJNE R5,#02H,QIEHUAN1;切换子程序MOV R5,#00HMOV R4,#00HLJMP DONE6QIEHUAN1:INC R5DONE6:RETDELAY:MOV R7,#150DJNZ R7,$RETMAIN1:MOV TMOD,#01H ;选T0方式1,MOV TH0, #3CH ;赋初值3CB0H=15536(只能定100mS)MOV TL0,#0B0HMOV 30H,#0AH ;软件计数单元30H 初值=10CLR AMOV 41H,A ;"分"单元清零MOV 42H,A ;"秒"单元清零SETB EASETB ET0 ;开T0中断SETB TR0 ;启动T0MOV R6,#01H ;置位确认标志位RETTINT:MOV TH0, #3CHMOV TL0,#0B0H;再赋定时100mS的初值3CB0HINC R4MOV A,R4CJNE A,#05H,LOOP ;用于调时闪烁CPL F0 ;取反调时闪烁标志位MOV R4,#00HLOOP:CJNE R6,#01H,RTN;确认键控制计时起停DJNZ 30H,RTN ;若中断不到10次就返回MOV 30H,#0AH ;为下一个1秒定时做准备MOV A,#01H ;"秒"单元加一ADD A,42HDA A ;"秒"单元十进制调整MOV 42H,A ;"秒"单元BCD码存"秒"单元CJNE A,#60H,RTN ;是否到60S,未到则返回MOV 42H,#00H ;记满60S,"秒"单元清零MOV A,#01H ;"分"单元加一ADD A,41HDA A ;"分"单元十进制调整MOV 41H,A ;"分"单元BCD码存"分"单元CJNE A,#60H,RTN ;是否到60分,未到则返回MOV 41H,#00H ;记满60分,"分"单元清零RTN:RETI ;中断返回XIANS:MOV A, 42HANL A,#0FHMOV 51H,A ;转换出秒个位,存入51HMOV A,42HANL A,#0F0HSW AP AMOV 50H,A ;转换出秒十位,存入50HCJNE R5,#02H,XIANS1JB F0 ,XIANS1MOV 50H,#0AHMOV 51H,#0AHXIANS1:MOV A, 41HANL A,#0FHMOV 53H,A ;转换出分个位,存入53HMOV A,41HANL A,#0F0HSW AP AMOV 52H,A ;转换出分十位,存入52HCJNE R5,#01H,DXIANSJB F0,DXIANSMOV 52H,#0AHMOV 53H,#0AHDXIANS:MOV DPTR,#0200H ;数码管译码表首址, MOV A,#50HMOVC A, @A+DPTR ;查表MOV P1, A ;字段码送到P1口SETB P0.0LCALL DELAYCLR P0.0MOV A,#51HMOVC A, @A+DPTR ;查表MOV P1, A ;字段码送到P1口SETB P0.1LCALL DELAYCLR P0.1MOV A,#52HMOVC A, @A+DPTR ;查表MOV P1, A ;字段码送到P1口SETB P0.2LCALL DELAYCLR P0.2MOV A,#53HMOVC A, @A+DPTR ;查表MOV P1,A ;字段码送到P1口SETB P0.3LCALL DELAYCLR P0.3RETORG 0200HDB 3FH,06H,5BH,4FH,66H;显示段码表DB 6DH,7DH,07H,7FH,6FH 00HEND6.软硬件调试系统调试:根据系统设计方案,本系统的调试共分为两大部分:硬件调试,软件调试。