版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z. . . . . 资料. . .单片机课程综合设计设计题目:基于单片机的秒表设计*:、*:杨晓博尹序鑫罗恩勇陈晓峰 班级 :电气1302提交日期 :信息与电气工程学院目录 TOC o 1-3 h z u HYPERLINK l _Toc438910908HYPERLINK l _Toc4389109091 概述 PAGEREF _Toc438910909 h 5HYPERLINK l _Toc4389109101.1 根本要求: PAGEREF _Toc438910910 h 5HYPERLINK l _Toc4389109112 系统总体方案及硬件设计 PAGEREF _Toc43
2、8910911 h 6HYPERLINK l _Toc4389109122.1系统总体方案 PAGEREF _Toc438910912 h 6HYPERLINK l _Toc4389109132.2硬件电路设计 PAGEREF _Toc438910913 h 7HYPERLINK l _Toc4389109141单片机简介 PAGEREF _Toc438910914 h 7HYPERLINK l _Toc4389109152电源电路 PAGEREF _Toc438910915 h 8HYPERLINK l _Toc4389109163晶体振荡电路 PAGEREF _Toc438910916 h
3、 8HYPERLINK l _Toc4389109174复位电路 PAGEREF _Toc438910917 h 8HYPERLINK l _Toc4389109185显示电路 PAGEREF _Toc438910918 h 9HYPERLINK l _Toc4389109196键盘电路 PAGEREF _Toc438910919 h 10HYPERLINK l _Toc4389109203 软件设计 PAGEREF _Toc438910920 h 11HYPERLINK l _Toc4389109213.1软件设计概述 PAGEREF _Toc438910921 h 11HYPERLINK
4、l _Toc4389109223.2程序流程图 PAGEREF _Toc438910922 h 12HYPERLINK l _Toc438910923Proteus软件仿真 PAGEREF _Toc438910923 h 14HYPERLINK l _Toc4389109244.1软件功能简介 PAGEREF _Toc438910924 h 15HYPERLINK l _Toc4389109324.2 Proteus运行流程 PAGEREF _Toc438910932 h 16HYPERLINK l _Toc4389109365课程设计体会 PAGEREF _Toc438910936 h 18
5、HYPERLINK l _Toc438910937课程小结 PAGEREF _Toc438910937 h 19HYPERLINK l _Toc438910938附1 源程序代码 PAGEREF _Toc438910938 h 21摘要本设计是一个利用单片机控制的多功能秒表系统,它是基于51系列的单片机进展的系统设计。它采用STC12C52A60S2单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现四位LED显示,最大显示时间为9分59.9秒,每毫秒自动加1,一个开场暂停按键、一个复位
6、按键。其突出的优点:体积小、场外作业、功耗最低、宜用电池作为电源、硬件构造紧凑、简单和软件设计灵活.当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、本钱低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。单片机的出现是现代科技开展的一个重要的里程碑。由于单片机的集成度高、功能强,通用性好,特别是它具有体积下、重量轻、能耗低、价格廉价等优点,使单片机迅速得到推广应用,目前已成为测量控制应用系统中的优选机种和新电子产品的关键部件。关键字:单片机,
7、多功能秒表 一、概述1.1 根本要求:设计一个秒表,用4位的LED数码管显示时间,从00:00秒到59:59秒,然后利用2个按键来控制:按键1开场/暂停,按键2 归零。发挥局部:1、利用8位LED数码管,显示年月日时分秒,要求单片机掉电重启时,不影响时间计时。可选用RTC芯片配合钮扣电池,简化设计。2、将时间转换为ASCII码,以9600 bps输出,与/由PC机进展同步。二、系统总体方案及硬件设计2.1系统总体方案本系统采用STC12C52A60S2单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将
8、软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。外围电路显示电路单片机外围电路显示电路单片机电源电路键盘电路电源电路键盘电路系统电路原理图2.2硬件电路设计本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等,本设计数码管采用共阳极四位数码管,总体电路图下1单片机简介本系统设计采用STC12C52A60S2单片机。STC12C52A60S2是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用A
9、TMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容由于在微机原理中学过C-51的具体知识,这里不再详细说明。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC12C52A60S2是一种高效的微控制器。2电源电路电源电路是系统最根本的局部,任何电路都离不开电源局部,由于三端集成稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用,由于是小系统,我们采用7809电源提供+5V稳压电压。3晶体振荡电路MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线 *TAL1和*TAL2分别为反向振
10、荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。这里,我们选用51单片机12MHZ的内部振荡方式,电容器C1,C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要使晶体振荡器*1尽可能接近单片机。4复位电路采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。当程序出现错误时,可以随时使电路复位。5显示电路显示电路既可以选用
11、液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用4个共阳极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比拟多;动态显示所使用的端口比拟少,可以节省单片机的I/O口。在设计中,我们采用LED动态显示,用P0口驱动显示。由于数码管使用的是共阳极,我们使用增强型51单片机具有的强推万挽模式,能够满足较大输出电流驱动数码管的要求。电路图如下所示:6键盘电路在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通
12、过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用局部P1口做开关,P1.0启动,P1.1清零,电路图如下所示三、 软件设计3.1软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为假设干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的构造层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,
13、实现*个具体的功能,如:加计数、暂停、清零,显示等,在具体需要时调用相应的模块即可。功能描述:用4位LED数码显示秒表,显示时间为009分59.9秒,每秒自动加1;一个开场键,一个复位键,一个清零键。3.2程序流程图开场开场系统初始化数码管显示按键判断定时启动位取反按键2关闭定时器时间清零按键1NYYN定时中断开场开场T0初始化程序处理分、秒、毫秒自动增加退出中断四、Proteus软件仿真4.1软件功能简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。该软件的特点是:1全部
14、满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。2具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。3目前支持的单片机类型有:ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。4支持大量的存储器和外围芯片。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大 ,可仿真ARM、51、AVR、PIC。Proteus启
15、动画面:4.2 Proteus运行流程Proteus ISIS的工作界面是一种标准的Windows界面,如下图。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。运行Proteus程序后,进入软件的主界面。通过左侧工具栏中的P(从库中选择元件命令)命令,在Pick Devices 左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最后进展连线。运行图如下:初始状态中间状态最终状态 经过protues仿真,实现了题目的要求,并且增加了扩展局部单片机与电脑通信授时的任务。并且经
16、过测试硬件运行稳定,秒表计时时间准确。完成了设计题目的全部内容。五、课程设计体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术开展的日新日异,单片机已经成为当今计算机应用中空前活泼的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回忆起此次单片机课程设计,仍感慨颇多,确实,从选题到定稿,从理论到实践,在接近四星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以稳固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
17、通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不够深刻,掌握得不够结实,比方说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。在做课程设计的日子里得到了教师的悉心指导和同学的帮助,在此向他们致以诚挚的谢意。感谢提供相关技术帮助的教师
18、和同学,你们的支持和鼓励使我们对这次的设计完成有了信心和动力,在此深表谢意。课程小结通过这两周程设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。本次电子课程设计主要是对已学习的模拟电子技术、数字电子技术和单片机的综合应用,同时加上电路等知识,设计完成了利用软件模拟的秒表。经过几天的奋战,我感受很深.我们一小组四个人一块儿讨论设计了此次试验,在设计过程中深感自己在培养动手能力这方面还需很大的努力。同时,通过这次我们积极的通过网络,书籍等资源,在同学的帮助下,把这个课程设计作为一次锻炼,为以后生活学习中培养善于动手,乐于动手的习惯。单片机课程设计不仅给我们提供
19、了一个良好的应用自己所掌握的知识的平台,又是检验自己所学知识的一次考核。我们运用各自在各方面的优势中和起来,形成了一个团队.通过团队力量,才使设计得以完成.可以说,我们三个人是一个不可或缺的整体,少了任何一个人都是无法完成任务的。在设计的过程中我们也不可防止的遇到了很多的问题。尤其是在调试过程中,会因为*些原因出不来结果,或三个人之间出现了意见分歧,但在最后都达成一致。通过这次的课程设计,我们也发现了不少自己不会的知识,通过查询各方面资料,我们也进步了很多,有学会了很多上课时没掌握的东西,最后在调试结果出来后,我们更是无比的兴奋,无比的自豪。总之,通过这次电子课程设计,我不仅对自己的知识有了更
20、好的掌握和应用,更了解到团队精神的力量.在以后的学习和生活中受用终身。参考文献1 余发山主编.单片机原理及应用技术.*:中国矿业大学.2003.76-94,152-1572 杨凌霄编著.微型计算机原理及应用.*:中国矿业大学,2004.36-52附1 源程序代码#include#include#define duan P0/段选#define wei1 P1/计时器位选,只接前四口#define wei2 P2/年月日位选#define uchar unsigned char#define uint unsigned intsbit start=P32;/开场按钮sbit reset=P33;
21、/暂停复位按钮sbit DSIO=P34;/ds1302 DSIO接口sbit RET=P35;/ds1302 RET接口sbit SCLK=P36;/ds1302 SCLK接口sbit date=P37;/日期时间转换按钮void DigDisplay();void delays(unsigned ms);void Ds1302Write(uchar addr, uchar dat);uchar Ds1302Read(uchar addr);void Ds1302Init();void Ds1302ReadTime();void UsartConfiguration();unsigned c
22、har code duan*uan21 = 0*c0,0*f9,0*a4,0*b0,0*99,0*92,0*82,0*f8,0*80,0*90,0*40,0*79,0*24,0*30,0*19,0*12,0*02,0*78,0*00,0*10,0*bf;/段选0,1,3,4,5,6,7,8,9,0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,-/DS1302写入和读取时分秒的地址命令/unsigned char code wei*uan8=0*01,0*02,0*04,0*08,0*10,0*20,0*40,0*80;/秒分时日月周年 最低位读写位;/uchar code READ
23、_RTC_ADDR7 = 0*81, 0*83, 0*85, 0*87, 0*89, 0*8b, 0*8d; uchar code WRITE_RTC_ADDR7 = 0*80, 0*82, 0*84, 0*86, 0*88, 0*8a, 0*8c;/DS1302时钟初始化2013年1月1日星期二12点00分00秒。/存储顺序是秒分时日月周年,存储格式是用BCD码/uchar TIME7 = 0, 0*30, 0*16, 0*21, 0*12, 0*01, 0*15;unsigned char second4=0;unsigned char clock8=0;unsigned char i=0
24、;void main()unsigned char c;char flag=1;bit temp=1;/unsigned char receiveData15=0;Ds1302Init();UsartConfiguration();TMOD=0*21;TL0=0*F0;TH0=0*D8;EA=1;ET0=1;while(1)if(temp=1)Ds1302ReadTime();clock0 = TIME2/16; /时clock1 = TIME2&0*0f; clock2 = 20;clock3 = TIME1/16; /分clock4 = TIME1&0*0f;clock5 = 20;clo
25、ck6 = TIME0/16; /秒clock7 = TIME0&0*0f;else if(temp=0)Ds1302ReadTime();clock0 = 2; /年clock1 = 0; clock2 = TIME6/16;clock3 = (TIME6&0*0f)+10;clock4 = TIME4/16;clock5 = (TIME4&0*0f)+10;clock6 = TIME3/16;clock7 = (TIME3&0*0f)+10;DigDisplay();if(date=0)delays(1);if(date=0) temp=temp; while(!date) DigDisp
26、lay();DigDisplay();if(start=0)delays(1);if(start=0) TR0=1; flag=1; while(!start) DigDisplay();DigDisplay();if(flag=0)if(reset=0)delays(1);if(reset=0)i=0;second0=0;second1=0;second2=0;second3=0;TL0=0*F0;TH0=0*D8;while(!reset) DigDisplay();else if(flag=1)if(reset=0)delays(1);if(reset=0) TR0=0; flag=0;
27、 while(!reset) DigDisplay();DigDisplay();if(RI = 1)/查看是否接收到数据for(c=0;c15;c+)/receiveDatai = SBUF;/读取数据/RI = 0;/去除标志位/second1=receiveData5;/*TIME1=(receiveData11-0*30)*0*10+(receiveData12-0*30);TIME2=(receiveData9-0*30)*0*10+(receiveData10-0*30);TIME3=(receiveData6-0*30)*0*10+(receiveData7-0*30);TIME
28、4=(receiveData4-0*30)*0*10+(receiveData5-0*30);TIME6=(receiveData2-0*30)*0*10+(receiveData3-0*30); */Ds1302Init();/DigDisplay();void DigDisplay()unsigned char k;unsigned int j;for(k=0;k4;k+)P1M0=0*ff;wei1 = wei*uank; /发送位选duan = duan*uansecondk; /发送段码j = 2000; /扫描间隔时间设定while(j-);duan = 0*ff;/消隐P1M0=
29、0*00;for(k=0;k8;k+)P2M0=0*ff;wei2 = wei*uank; /发送位选duan = duan*uanclockk; /发送段码j = 2000; /扫描间隔时间设定while(j-);duan = 0*ff;/消隐P2M0=0*00; void delays(unsigned ms)int j,k;for(j=0;jms;j+)for(k=0;k100;k+);void T0_INT()interrupt 1TL0=0*F0;TH0=0*D8;i+;if(i=500)i=0;second0=second0+1;if(second0=10)second1=seco
30、nd1+1;second0=0;if(second1=6)second2=second2+1;second1=0;if(second2=10)second3=second3+1;second2=0;void Ds1302Write(uchar addr, uchar dat)uchar n;RET = 0;_nop_();SCLK = 0;/先将SCLK置低电平。_nop_();RET = 1; /然后将RET(CE)置高电平。_nop_();for (n=0; n= 1;SCLK = 1;/数据在上升沿时,DS1302读取数据_nop_();SCLK = 0;_nop_();for (n=0; n= 1;SCLK = 1;/数据在上升沿时,DS1302读取数据_nop_();SCLK = 0;_nop_();RET = 0;/传送数据完毕_nop_();/* 函 数 名 : Ds1302Read* 函数功能 : 读取一个地址的数据* 输 入 : ad
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园自制故事
- 2026年幼儿园熊爸爸买鞋
- 2026年美术幼儿园介绍
- 2026年幼儿园有用的餐具
- (2026年)耻骨联合分离课件
- 2026年保龄球大赛幼儿园
- 2026年幼儿园 爱劳动
- 2026年幼儿园线描画培训
- 2026年鼻子的秘密幼儿园
- 2026年回民幼儿园教案
- 喀什地区2025新疆维吾尔自治区喀什地区“才聚喀什智惠丝路”人才引进644人笔试历年参考题库典型考点附带答案详解
- 2026LME与上海期货交易所价格引导关系研究
- 健康人口与社会经济协同发展策略
- T∕CAMDA 36-2026 双孢蘑菇采摘机器人
- 二十届四中全会模拟100题(带答案)
- 吾悦广场内部管理制度
- 2026年苏教版二年级科学下册(全册)教学设计(附教材目录)
- 腾讯收购案例分析
- 污水厂运营夜班制度规定
- 2026年就业市场:挑战与机遇并存高校毕业生就业指导与策略
- 医疗广告审查标准与医美宣传红线
评论
0/150
提交评论