单片机课程设计_秒表系统_第1页
单片机课程设计_秒表系统_第2页
单片机课程设计_秒表系统_第3页
单片机课程设计_秒表系统_第4页
单片机课程设计_秒表系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程名称单片机原理及应用设计题目基于单片机的秒表系统设计系部名称机械电子工程系专业班级电子信息工程 2014级2班姓名学号成绩指导教师2016年12月摘要秒表主要有机械和电子两大类, 电子表又可分为三按键和四按键两大类。 绝大部分体育教师使用的多是电子秒表, 机械秒表在很多地方已经成为历史。 电子秒表是一种较先进的电子计时器, 国产的电子秒一般都是利用石英振荡器的振荡频率作为时间基准,采用 6 位液晶数字显示时间,具有显示直观、读取方便、功能多等优点。广泛运用于学校、小型比赛等计时时间较短的场所。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推

2、广, 广泛应用于工业控制系统, 数据采集系统、 智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中, 如车间流水线控制、 自动化系统等、 智能型家用电器(冰箱、空调、彩电)等。本课程设计以 stc89c51 单片机为核心,结合c 语言编程及其他硬软件相结合设计的简易秒表,旨在学会运用单片机解决实际生产生活中问题。关键字: stc89c51 单片机、 c 语言、秒表等2目录摘要 i目录 ii第 1章设计目的、内容及要求 1.1.1 设计目的 1.1.2 设计内容 1.1.3 设计要求 1.1.4 设计工具 主要软件 1.1.

3、4.2 主要硬件 2.第 2章设计原理及相关硬件 4.2.1 设计方案原理及各模块设计 4.2.2 硬件原理及模块设计 时钟电路 复位电路 控制电路 报警电路 显示电路 总体电路图 7.2.3 软件原理及模块设计 7.第 3章程序编译及仿真过程 9.3.1 工程建立及原理图绘制 9.3.2 仿真方法 9.3.3 仿真结果分析 9.第 4章设计总结1.2.参考文献1.5.附录1源程序 1.6.附件1任务书 1.9.附件2评价表 2.0.第 1 章 设计目的、内容及要求1.1 设计目的了解并掌握一般设计

4、方法,具备初步的独立设计能力;掌握用 c 语言程序设计基本技能; 提高综合运用所学的理论知识独立分析和解决问题的能力; 进一 步掌握单片机技术的开发流程, 学习较复杂的数字系统设计方法, 为以后进行工 程实际问题的研究打下设计基础。1.2 设计内容1、进行总体设计,画出设计原理图;2、用proteus软件画出设计电路图;3、用keil 软件编写程序;4、在proteus里模拟并调试程序达到期望功能。5、撰写单片机课程设计报告1.3 设计要求1、设计精度为 1/60s 的秒表系统。2、设置启动、暂停、清零按钮。3、秒表的最长计时长度为01:59:59,超过此长度,报警。1.4 设计工具1.4.1

5、 主要软件1、proteus 软件proteus软件是英国lab center曰ectronics公司出版的eda工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它 eda 工具软件的仿真功能, 还能仿真单片机及外围器件。 它是目前比较好的仿真单片机及外围器件的工具。 虽然目前国内推广刚起步, 但已受到单片机爱好者、 从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到 单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、pcb

6、设计软件和虚拟模型仿真软件三合一的设计平台,具处理器模型支持8051、hc11、 pic10/12/16/18/24/30/dspic33 avr、arm、8086 和 msp430 等,2010 年又增 加了 cortex和dsp系列处理器,并持续增加其他系列处理器模型。 在编译方面, 它也支持iar、keil和mplab等多种编译器。2、keil软件keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开 发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的 优势,因而易学易用。keil提供了包括c编译器、宏汇编、链接器、库管理和 一个功能

7、强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(小vision)将这些部分组合在一起。运行 keil软件需要 win98、nt、win2000、 winxp等操作系统。如果你使用c语言编程,那么keil几乎就是你的不二之选, 即使不使用c语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件 仿真调试工具也会令你事半功倍。1.4.2 主要硬件1、stc89c51 单片机stc89c51是一种低功耗、高性能cmos 8位微控制器,具有4k在系统可 编程flash存储器。使用atmel公司高密度非易失性存储器技术制造,与工业 80c51产品指令和引脚完全兼容。片上flash允许程序存

8、储器在系统可编程,亦 适于常规编程器。在单芯片上,拥有灵巧的 8位cpu和在系统可编程flash, 使得stc89c51在众多嵌入式控制应用系统中得到广泛应用。具引脚如图1.1所示。ri.oc pl.i c pile pmc pl4 t 以3 c pl.fi cf .l 7 c rst t(hxdip3,0 cirtftlpj.i g iisttipij c4to网金匚 ttijpljc swrlplh g (kblpit c l.hu : 口 j dund ea pv.oiado?3 po.uadn n ffl讨凡阳3.昭皿) a fo.+;am|i rajiads):1 pfr.adfrj

9、 h mktfadt) 二瓯一3 ai.i:trmj 口 ser力闻九3 p2jra14)3 fm(a13)3 p2.*a 3 p23ia11)30工人1财3因3其为3管口恻23图 1.1 stc89c51 引脚1)电源地组 vcc和vss: vcc (40)脚接+5v电压;vss (20)脚接地2)时钟电路组xtal1和xtal23)控制信号组 rst/ale/pse恃口 ea4) i/o 端 口 pr p1,、p2 和 p32、数码管数码管也称led数码管,不同行业人士对数码管的称呼不一样,其实都是 同样的产品。数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多 一个发光二

10、极管单元,也就是多一个小数点(dp)这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、 5位、6位、7位等数码管。按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(com)的数码管,共阳数码管在应用时应将公共极 com接到+5v,当某一字段发光二极管的阴极为低电 平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴 数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管,共阴数码管在应用时应将公共极 com接到地线gnd上,当某一字段发光二极管 的

11、阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段 就不亮。对应段码如表1.1所示,对应符号和引月却及内部结构如图 1.1所示。表1.1常用字符字型码(十六进制表示)字符0123456789abcdefp.暗共阴极3f065b4f666d7d077f6f777c395e7971738000共阳极c0f9a4b0999282f880908883c6a1868e8c7fff图1.1符号和引脚及内部结构笛步母母妙第2章设计原理及相关硬件2.1 设计方案原理及各模块设计本设计是基于at89c51单片机设计的,分为硬件设计模块、软件设计模块。秒表的硬件包括时钟电路、控制电路以及外部显示

12、电路。利用 89c51单片 机的定时器/计数器定时和记数的原理,结合显示电路、led数码管以及外部中图2.1设计原理框图时耕1fl示 电建显于播视软件模块断电路来设计计时器。计时精度为 60s。秒表软件设计采用c语言编写程序, 包括延时程序、显示程序、按键扫描、报警程序、定时中断服务程序等。设计原 理框图如图2.1所示。硬 件 模 块2.2 硬件原理及模块设计2.2.1 时钟电路通过xtal1和xtal2外接晶体振荡器构成内部振荡方式。由于单片机内 部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时 钟脉冲。51单片机内部的振荡电路是一个高增益反相放大器,引线 xtal1和

13、 xtal2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振 荡器的输出,该反向放大器可以配置为片内振荡器。其中石英晶振为12mhz时钟电路如图2.2所示。c1i |o x7al130pf x1.-crystal- i1o xtal2图2.2时钟电路2.2.2 复位电路采用上电加按键复位电路,也就是手动复位,上电后,由于电容充电,使ret持续一段高电平时间,当单片机运行时,按下复位键也能使ret持续一段时间的高电平,从而实现上电加开关复位的操作。复位电路如图2.3所示。0 rst图2.3复位电路2.2.3 控制电路 当某一按键按下时,连接按键的io 口被置为低电平,通过软件识别产

14、生相应控 制指令。控制电路如图2.4所示。(1)复位/暂停按键,按下后使得tr0取反,相应启动和停止t0定时器。(2)清零按键,按下后使得num清零,tr0=0,即秒、分等置零,且定时 计数器关闭。型停,开始p3 2 op3 6 o图2.4控制电路2.2.4 报警电路当数显显示1-59-59时,p1.0 口变为低电平并延时1s后再变为高电平,使得led 灯亮1s后灭。报警电路如图2.5所示。强警灯d led-green图2.5报警电路2.2.5 显示电路由软件控制单片机给p0 口发送段码,p0 口 p0.0-p0.7分别与a,b,c,d,e,f,g,dp 相连(同时连上拉电阻),p2 口发送位

15、码,p2 口 p2.0-p2.7分别与8个选通口顺 次相连。采用数码管动态显示原理,8个位码单独发送,每次仅选选通一位,于 此同时给该位发送相应段码,然后延时一段时间,大约为 1-10ms。虽然每次只 有一个led显示,但只要扫描显示速率够快,由于人的视觉余辉效应,使我们 仍会感觉所有的数码管都在同时显示。显示电路如图2.6所示。图2.6显示电路2.2.6 总体电路图图2.7总体电路2.3软件原理及模块设计相关计算:设计要求精度为 60s,因此定时计数器t0定时时间为60s, 则:时钟周期: = 12mhz计数值:n =t/tcy =-1 60 1 =16666.7cy 12-m2 10计数初

16、值 x =216 -n =65536 -16667th 0 =(65536-16667)/256tl0 = (65536-16667)%2 5 6利用c语言编程,程序见附录1。软件设计框图如图2.8所示。nufn=i2aomo力圾尸口仃蚓。,后1口; 产阿而场细纲0顺;gmirteaettmd 口; nrwunvmoo;图2.8软件设计框图第3章程序编译及仿真过程3.1 工程建立及原理图绘制1)启动keil建立一个空白工程,然后命名为miaobiao.uvproj。2)新建c语言源程序文件 miaobiao.c,写出程序代码并保存(程序附后), 进行编译,若在编译过程中发现错误,则找出并更正误

17、,直至编译成功为止,点 击,忒图标,output选项下勾选create hex file,再次编译生成 miaobiao.hex文 件3)启动proteus软件新建设计原理图,然后命名为 miaobiao.dsn。4)添加各元件绘制如图2.7原理图并保存。3.2 仿真方法打开miaobiao.dsn,点击单片机,在程序一栏添加 keil生成的miaobiao.hex 文件,点击开始仿真按钮即开始仿真。按下不同的按钮,观察结果有何不同,在下一节做详细分析。3.3 仿真结果分析1、接通电源(启动仿真时)数码管显示为00-00-00,如图3.1所示图3.1仿真1:初始图2、按下启动/暂停键数码管开始

18、计数,最低位逢10进1向高位进1,第二位逢6向高位进1,第 三位和第六位固定显示“-”,其余各位进位法则与前两位一样,最多显示01-59-59。再次按下时停止计数。如图 3.2、3.3所示。图3.2仿真2:按下启动键图3.3仿真3:按下暂停键3、按下清零键数码管显示为00-00-00,且停止计数。如图3,4所示nn.on.nnu u u u u图3.4仿真3:按下清零键fi4、报警数码管显示为01-59-59, led亮,1s后数码管显示00-00-00, led灯灭。如图3.5、3.6所示。图3.5仿真5:报警图3.6仿真6 :报警结束第 4 章 设计总结随着电子技术的发展, 特别是随着大规

19、模集成电路的产生, 给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。单片机作为可编程控制器的代表,以高性价比、高可靠性、低电压、低功耗的优点, 遍布现代社会各个领域。 本次课程设计所做的秒表, 在各阶层体育教育、中小规模体育赛事及其他需要计量时间的场合都不可缺少, 设计优良的秒表不仅要保证精度、实用性等功能要求,还要求要有好的后期制作:如包装等,但由于时间问题并未具体制作产品,只做基于 proteus 的设计仿真。在课程设计过程中对编程做过多次修改:启动 /暂停等控制功能,可以用多种方法:

20、中断、 for 语句等,用中断做可以稳定实现启动 / 暂停功能,但会因执行中断导致数码管的动态扫描停止,只显示一位数码管的数字, 使秒表的实用性下降, 经过减少中断内语句也会出现数显界面闪烁;而用 for 语句放在主程序中,能解决这个问题,但亦会出现功能不可靠问题。最终在控制功能方面做优劣性分析选择了后者。对于数码管的动态扫描对硬件及软件编程均有修改:有以下两种方案:方案 1:采用 74 系列锁存器对io 口进行扩展,利用锁存控制端对数据进行隔离, 每次送一组段码及位码, 实现动态扫描。 程序段如下, 原理图如 4.1 所示。while(1)/ 大循环d=1; /开位锁存p2=dig0; 送位

21、码d=0;/关位锁存s=1;/开段锁存p0=segc1_0 ;/送段码s=0;/关段锁存delayms(1);/施时 1msd=1;/重复上诉过程,送下一位位段码p2=dig1;d=0;s=1;p0=segc1_1 ;s=0;delayms(1);enhr匿 i-:,h|图4.1 74hc573实现的动态扫描这种方法的优点是可扩展io 口,节约io 口资源;缺点是程序冗长,会造 成无法正确显示。方案2:直连法实现动态扫描。程序段如下,原理图如图 4,2所示。disp0=0;disp1=num/3600;disp2=0xa;disp3=num%3600/600;disp4=num%3600%60

22、0/60;disp5=0xa;disp6=num%3600%600%60/10;disp7=num%10;/分离各位数字while (1)uchar i;for(i=0;i8;i+)p2=digi;位码p0=segdispi;/段码delayms(5);/施时图4.2直连法实现动态扫描此方案优点是程序简短;缺点是io 口不可复用,浪费io 口资源。结合优缺点分析最终选择了方案 2。通过此次课程设计,我明白了单片机的要点就是对io 口的高低电平进行控制,而控制手段要通过不同的单片机的资源功能进行程序编写,故需要软硬件结合才能实现相应功能,另外对于单片机程序无论是c语言,还是汇编语言不能仅仅只对程

23、序本身做解读,最精髓的一点要结合单片机的外部扩展一起考虑,才能对程序理解到位,理解透彻。参考文献1 李全利单片机原理及其应用 m 北京:高等教育出版社, 2012.122 楼然苗等 51 系列单片机设计实例 m 北京:北京航空航天出版社, 2003.33 百度文库 stc89c51 芯片资料 n/ol /link?url=ul78srtrq-rdjfcis3gceoosuojganfwr9l6ljbkq7qryk1b77h_guxe4t2ae4acugr7b40rwlhgh0qvo05cs-uqgth6u4xiy5rarliwb7o附录 1 源程序#i

24、nclude /头文件#define uint unsigned int#define uchar unsigned char/宏定义sbit stop=p3a2;暂停开始键sbit rst =p3a6;/ 复位键sbit baojing=p1a0;/ 报警灯uchar code seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf;/数码管段码uchar code dig=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/数码管位码uchar disp=0,1,2,3,4,5,6,7;uint n

25、um;/定义全局变量void delayms(uint n)uchar j;while(n-)for(j=0;j113;j+);/延时函数void shu()disp0=0;disp1=num/3600;disp2=0xa;/连接符“-”disp3=num%3600/600;disp4=num%3600%600/60;disp5=0xa;disp6=num%3600%600%60/10;disp7=num%10;/分离 六十分之一秒、六分之一秒、秒、十秒、分以及连接符-void display()uchar i;for(i=0;i8;i+)p2=digi;p0=segdispi;delayms(5);/动态显示函数void key()if(stop=0)delayms(5); /延时消抖tr0=tr0; /每按下一次定时计数器暂停开始,num 暂停叠加if(rst=0)delayms(5); /延时消抖tr0=0;num=0;/定时计数器停止计数,且num 值清零/按键检测 void main() tmod=0x01;/方式 1 定时th0=(65536-16666)/256;tl0=(65536-16666)%256;ie=0x82;tr0=0;/配置定时计数器t0while(1)key();shu();display();/主

温馨提示

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

评论

0/150

提交评论