《单片机定时闹钟课程设计.docx》由会员分享,可在线阅读,更多相关《单片机定时闹钟课程设计.docx(13页珍藏版)》请在三一办公上搜索。
1、单片机定时闹钟课程设计绪 论 摘要: 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。、 电子闹钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打
2、铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时自动报时及自动控制的领域。因此,研究数字钟及扩大其应用,有着非常现实的意义。 关键字:C52、单片机、定时闹钟、电子设计 1 一 设计目的和要求 1.1设计任务:设计一个可控制的定时闹钟。 1.2设计目
3、的: 1.了解定时闹钟的组成及工作原理。 2.进一步熟悉和掌握单片机的结构和工作原理。 1.3设计要求: A基本要求: 1).由晶振电路产生1HZ标准秒信号。 2).秒、分为00-59六十进制计数器。 3).时为00-23二十四进制计数器。 4).可手动校正:能分别进行秒、分、时的校正。只要将开关置于手动位置,可分别对秒、分、时进行连续脉冲输入调整。 5).当时间到达闹钟设定时间时,蜂鸣器发出报警声。 B提高要求: a).通过按钮快速切换闹钟显示。 b).通过计算机串口在PC上快速设定时间闹钟 c).整点报时。 2 二 系统设计 2.1硬件系统: 2.1.1电源电路: 电源是单片机系统的重要组
4、成部分,它不仅为系统提供多路电压源,还直接影响到系统的技术指标和抗干扰性能。AT89C51单片机和一般的数字芯片一样,都是5V电压供电,所以可以共用一个5V电源。另外,为了提高电源的稳定性,在离电源的最近处做好退耦处理,即用一个47UF和一个10UF电容,以滤去干扰,保证电源的稳定。 2.1.2 AT89C51单片机 AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。 使用时VCC接电源,GND接地。P0-P3可作为输入或者输出端口。RST接复位电路。 3 2.1.3时钟电路 单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系
5、统中AT89C51单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHz12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF100pF之间取值。 单片机的时钟产生 AT89C51 、 2.1.4数码管显示电路 4 要同时使得6个数码管点亮,所需的IO口是很多的。为了节省单片机的IO口,通常采用动态扫描的显示方法,将每个数码管的同名段连在一起,分6次向数码管写数据,每次对6个数码管写相同的数据,每次选通一个数码管,完成扫描,通过调整、缩短扫描的时间,由于人眼的视觉暂留作用,使得
6、人们看起来就像同时显示一样,以达到动态显示的目的. 2.2设计原理 2.2.1 系统总体方案 1)由于要显示数字时间,所以需要6位数码管。 2)时间的定时用时钟电路,修改时间和定时用手动按键控制,报警声通过喇叭发出。 3)AT89S52单片机加上外围器件和应用程序,构成相应的应用系统。 2.2.2 系统设计方框图 5 晶振 及复位 单片机 AT89C51 限流 电阻 选位 6位共阴 数码管显 示 按钮 蜂鸣器 图1系统设计方框图 2.2.3 软件设计流程 6 三 实验结果和讨论 在确立了编程设计的基本思路后,我们开始查找相关的编程资料,然后采用C语言对软件设计的要求进行编译。一开始进展很慢,并
7、且编程过程中出现个各种错误,经过大量时间的编译与完善,我们终于逐步完成定时闹钟的软件设计过程。 最终程序如下: #include #define uint unsigned int #define uchar unsigned char uchar code shu=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f; /09 uchar code shu2=0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87, 0xff,0xef; /带小数点09 uchar code wei=0xef,0xdf,0xbf,0x
8、7f,0xf7,0xfb;/数码管位选码 uchar x=0,0,0,0; uchar y=0,0,0,0,0,0; uint hour=12,min,sec,h=22,m=0; uint a,s1=1,s2=1,s3=0,i=0,status=0,num=0,class=0; bit flag=0; 7 sbit P3_7=P37; void delay(uint t); void keyprint(unsigned char key); void display; void timer0; void sintinterrupt 4 s3+; s3=s3%4; if(RI&s3=1) RI=
9、0; hour=SBUF; if(RI&s3=2) RI=0; min=SBUF; if(RI&s3=3) RI=0; /串口中断,实现PC上快速设定时间与闹钟8 h=SBUF; if(RI&s3=0) RI=0; m=SBUF; if(!TI) TI=0; void delay(uint t) uint i; while(t-) for(i=0;i=24) h=0; display; void keyprint(unsigned char key) /各个按键功能 if(key=0x0e) num+; 12 if(num=1) class=1; if(num=2) class=2;num=0
10、; if(key=0x0d) status+; if(status=5) status=0; if(key=0x0b) if(status=1) if(min59) min+; else min=0;hour+; if(status=2) if(hour23) hour+; else hour=0; if(status=3) if(m59) m+; else m=0;h+; 13 if(status=4) if(h23) h+; else h=0; void display /数码管数值显示函数 uchar d=0; if(class=1|class=0) x0=hour/10; / 显示时的
11、十位 x1=hour%10; / 显示时的个位 x2=min/10; / 显示分的十位 x3=min%10; / 显示分的个位 while(d4) P2=weid; P0=shuxd; 14 delay(1); d+; else if(class=2) y0=h/10; / 显示时的十位 y1=h%10; / 显示时的个位 y2=m/10; / 显示分的十位 y3=m%10; / 显示分的个位 d=0; if(flag=0) while(d4) P2=weid; / 每过0.5s小数点闪烁一次 P0=shu2yd; delay(1); d+; else if(flag=1) 15 while(
12、d=100) flag=1; 16 if(count=200) / 定时 1S 到,以下为时钟的正常走钟逻辑 flag=0; count=0; sec+; if(sec= 60) sec=0; min+; /秒到60分加一,秒清零 if(min= 60) min=0; hour+; /分到60时加一,分清零 if(hour= 24) hour=0; /时到24立即变为0 17 四 结论 4.1本次课程设计的特点: 本次课程设计对单片机这么课程的知识原理要求比较高,具有一定的编程要求。设计出的定时闹钟比较贴近生活产品,实用性计较强,因此达到了知识与实践相结合,学以致用的目的。 4.2主要贡献:
13、让我们再一次深入了解了单片机的基本知识和原理,给予我们一定的单片机设计经验,强化了教学目标。 4.3心得与体会: 课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 回顾起此次单片机课程设计,我仍感慨颇多,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。 18 五参考文献 C51单片机技术教程 人民邮电出版社 田希辉、薛亮儒 单片机应用技术选编 北京航空航天大学出版社 何立民 六附 录: 1.主要使用软件:Keil C语言编写软件 Protues 仿真软件 串口调试助手 虚拟串口软件 19 2.实验箱内部图: 20