单片机实验报告-电子时钟制作

上传人:y****n 文档编号:145334303 上传时间:2022-08-29 格式:DOC 页数:13 大小:147.02KB
收藏 版权申诉 举报 下载
单片机实验报告-电子时钟制作_第1页
第1页 / 共13页
单片机实验报告-电子时钟制作_第2页
第2页 / 共13页
单片机实验报告-电子时钟制作_第3页
第3页 / 共13页
资源描述:

《单片机实验报告-电子时钟制作》由会员分享,可在线阅读,更多相关《单片机实验报告-电子时钟制作(13页珍藏版)》请在装配图网上搜索。

1、淮北师范大学 电子时钟制作学 院 计算机科学与技术 专 业 计算机科学与技术(师范) 学 号 学 生 姓 名 一、设计内容与设计目的1、编写出一个电子钟,六个数码管每两个一组来分别显示小时、分和秒;一个蜂鸣器来实现报时或闹铃等声音功能;八个二极管玩花样设计,完美电子的整体设计。2、熟悉整个电路图,练习一下焊接操作。3、熟练掌握C51的编程方法与技巧。4、能够有效地控制数码管、二极管、蜂鸣器和键盘的操作(可采用多种形式)。5、能够根据原理图焊接电路板,经过调试,保证整个电路板没有虚焊点。硬件设计要求1、根据项目要求,去选择相应的电路,比如MCU系统,输入输出驱动电路,电源供电电路。2、整体布局合

2、理,标注规范、明确、美观、不产生歧义。3、列出完整的元件清单(标号、型号及大小、封装形式、数量)。4、估算电路板的功耗,并对供电形式提出要求。5、根据设计好的原理图,焊接实物。软件设计要求1、所编代码要能够实现以下基本功能,当时时间的设定,定点闹铃,秒针走一下四个二极管同时向右移一位 。2、根据项目要求,设计软件整体规划,人机对话,各模块的关联,底层驱动模块。3、程序在必要的地方进行注释。每个函数的出入口要有输入输出参数的说明。 程序必须具有具有良好的可读性,可重用,容易调试和维护。4、使用c语言进行编程。二、硬件系统设计 1.STC12C5A60S2控制模块考虑到设计功能需要,控制器的功能用

3、于外部键盘信号的接收和识别、数码管的显示控制等,我们选择了学习过的12C5A60S2系列单片机,具有反应速度极快,工作效率特高的特点。12C5A60S2是一种低功耗、高性能得微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。另外掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.键盘功能模块根据系统的基本的要求,基于时间的观看和设定等功能,采用由四个键构成的独立式键盘分别接在单片机的P3.2-P3.5口,非常的方便,同时相对于独立式键盘大大节省了空间

4、,在软件的设计时带来了极大的方便,使程序简易明了,可读性强。本次设计中,五个功能键分别定义为KEY1键、KEY2键、KEY3键、KEY4键对应着小时加一、小时减一、分钟加一、分钟减一及同时组合键KEY1和KEY2同时按下实现显示年月的操作,KEY3和KEY4同时按下实现显示日的操作,使得操作起来十分的清晰与方便。3.数码管显示模块 显示模块要具有显示时分秒,年月日的功能,共需要六位数码管。数码管的六个位控口接在12C5A60S2单片机的P0口线上,从左到右顺序连接,段控制线接在12C5A60S2单片机的P2口线上,从低位到高位对应连接.再由于数码管的本身显示亮度不够,所以一般都会在其位控和段控

5、口前加上一定的驱动电路,本次设计中采用三极管作为驱动。4.蜂鸣器模块电子钟的另外一个功能是秒走一下,会有声音提示一下,本次设计利用蜂鸣器来实现。具有电路结构非常简单,控制极其方便等优点。5.二极管显示模块二极管采用共阳接法,其负极接在P1口线上。在正常运行时,二极管会随着秒的走动来亮和灭,周期为2秒。6.系统电路图总原理图.总布局图.PCB图见附录(1) 7.系统的元器件清单本系统中所用到的元件如表2.1所示。表2.1 系统元器件表器件型号数量器件型号数量单片机12C5A60S21个按键普通5个三极管普通8个开关6脚双路1个排阻A103J,A427J,A102J1个,1个,1个二极管灯普通8个

6、电容10F2个 数码管 CPS056AR6个电阻普通若干下载接口4针接口1个蜂鸣器压电式1个单排针普通若干三软件系统设计1.使用单片机资源介绍12C5A60S2单片机的P0、P1、P2、P3口作为输入输出口。 RST: 复位输入。2.软件系统各功能模块介绍2.1独立式键盘模块独立式键盘软件设计通过在主程序中调用子程序key去执行相应的功能 ,单片机P3口在复位后保持高电平,当键按下相应口线为低电平,此时CPU做初期判断,之后延时,确定为按键后等待键松,之后执行子程序。达到通过键功能程序的分支执行相应的程序段,完成对应的操作。2.2数码管显示模块 数码管显示是通过调用子程序displaypro来

7、实现的,由于数码管动态显示,所以在执行其他的程序的时候依然要经常调用显示子程序DISP。数码管的段控由单片机改变P2口相应位电平来实现,为实现不同的显示功能,设置了不同的显示缓冲单元,通过控制标志位控制。数码管的位控由CPU改变P0口相应位电平来实现,基于人的视觉延迟性,通过从右到左的循环保证所有数码管都被点亮。 2.3中断函数模块这个程序运用了两个中断函数,分别为定时器0和定时器1的中断,定时器0是用来计时,定时器1是用来动态扫描,这样使得电子钟的性能更稳定。2.4系统的整体设计思路 1.明确要实现的功能:主要有数字时钟时间的显示,时间的调试。另外还有附加功能的实现。2.编写函数利用P2引脚

8、控制三极管的基极用来控制6个数码管的工作状态,利用时间片分别显示不同数码管的显示,根据P0的8个引脚控制数码管的8段显示。3.编写函数利用键盘控制P3实现时间的调试功能。利用P3.2(key1)作为模式选择,P3.3P3.5作为不同功能的调试按键。4.编写函数P1引脚控制发光二极管的闪烁,实现花样式闪烁。5.接着就是闹钟功能的实现,其中包括定时的显示、调试、蜂鸣器的声音等。当定时的闹钟时间与实际时间相同时,蜂鸣器响动。2.5流程图见附录(2)附录1:数码管: 二极管:蜂鸣器:按键:单片机:开始key_board()012show_time()show_time()show_dell()set_

9、dell()set_time()YYNYNtime()walk_up_bell();结束四程序源代码#include #include #define uchar unsigned char #define uint unsigned int uchar num=0xbd,0x90,0xa7,0xb6,0x9a,0x3e,0x3f,0xb0,0xbf,0xbe;uchar hour=0,min=0,second=0,time1;uchar set_hour=0,set_min=0,set_switch=1,key1_time,function;uchar bell=0x17,0x13,0x2b

10、;uchar temp;sbit key1=P32;sbit key2=P33;sbit key3=P34;sbit key4=P35;sbit bell_ring=P21;int i;void timer() interrupt 1 using 0 /中断函数TH0 = (65536 - 50000)/256;TL0 = (65536 - 50000)%256;time1 +;void delay(uchar i)/循环的次数等于i*125,一次循环8微秒uchar j,k;for(j=0;ji;j+)for(k=0;k125;k+);void Beep() /控制蜂鸣器函数 bell_ri

11、ng=0;delay(1);bell_ring=1;delay(1); void time() / 时间函数 if(time1=20)time1=0; for(i=0;i25;i+) Beep();second+; P1=_crol_(P1,1); if(second=60)second=0;min+;if(min=60) min=0;hour+;if(hour=24)hour=0;void set_time() /调节时间函数 if(key2=0) delay(200);if(key2=1)hour+;if(hour=25)hour=0;if(key3=0)delay(200);if(key

12、3=1)min+;if(min=60)min=0;if(key4=0) delay(200);if(key4=1)second+;if(second=60)second=0;void show_bell() /显示设置的闹铃时间 P2=0x04;/显示ON,OF if(set_switch%2=0) P0=bell2;/OFdelay(6); else P0=bell1;/ONdelay(6); P2=0x08; P0=bell0; delay(6); P2=0x10; P0=numset_min%10; delay(6); P2=0x20; P0=numset_min/10; delay(6

13、); P2=0x40; P0=numset_hour%10+0x40; delay(6); P2=0x80; P0=numset_hour/10; delay(6);void set_bell() /设置闹铃函数 if(key2=0) delay(200); if(key2=1) set_hour+;if(set_hour=24)set_hour=0; if(key3=0) delay(200);if(key3=1)set_min+;if(set_min=60)set_min=0; if(key4=0) delay(200);if(key4=1)set_switch+; void show_t

14、ime() /显示时间P2=0x04;P0=numsecond%10;delay(6);P2=0x08;P0=numsecond/10;delay(6);P2=0x10;P0=(nummin%10+0x40);delay(6);P2=0x20;P0=nummin/10;delay(6);P2=0x40;P0=numhour%10+0x40;delay(6);P2=0x80;P0=numhour/10;delay(6);void walk_up_bell()if(min=set_min)&(hour=set_hour)temp=1;else temp=0;if(temp=1)&(set_swit

15、ch%2=1)&(second=5) for(i=0;i2;i+)Beep(); else bell_ring=0;void key_board() P3=0xff; if(key1=0) delay(200);if(key1=1) key1_time+; function=key1_time%3;switch(function)case 0 : show_time();break;case 1 : show_time();set_time();break; case 2 : show_bell();set_bell();break; void main()TMOD = 0x01;/TMOD

16、寄存器工作模式选择工作模式1,M1=0,M0=1,使用16位计数器TH0 = (65536 - 50000)/256;/*TL0、TH0 作为16 位寄存器用,计数值从初值开始(初值由软件设定),计数到0xFFFF即十进制的65536 后,再加1,计数器被溢出复位,并把溢出标志TF0 置1。*/TL0 = (65536 - 50000)%256;/50000表50000*0.1微妙=毫秒,EA=1; /EA:CPU 的中断开放标志ET0=1; /ET0:定时器/计数器T0 溢出中断允许位TR0=1; /TR0:定时器0 运行控制位P1=0xf0; / led灯只有第一个亮while(1) ke

17、y_board();time();walk_up_bell();四调试通过键盘,按key1(P32)若干次可以循环显示不同的功能,0时为显示时间,1次为调节时间,按key2(P33)能调节时分,key3(P34)调节分钟,key4(P35)可以调节秒钟。2次时可以调节闹铃key2(P33)调节闹铃时分,key3(P34)调节闹铃分钟,key4(P35)调节开或关即ON或OF。依次摸三循环,实现3个功能即显示时间、调节时间、显示调节闹铃。五总结 在于雷老师的耐心指导下,我们顺利的完成了这次基于单片机的电子钟时钟的设计,对单片机的知识和技能有所认知,把专业知识与实践相结合,既锻炼了我们的动手能力,又加深了我们对专业知识的理解,为我们以后的工作奠定基础,这对我们以后的课程设计和毕业设计都会有所帮助。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!