单片机课程设计60秒倒计时_第1页
单片机课程设计60秒倒计时_第2页
单片机课程设计60秒倒计时_第3页
单片机课程设计60秒倒计时_第4页
单片机课程设计60秒倒计时_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

基于AT89C51基于AT89C51的60秒倒计时设计前言在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目, 因此,单片机的应用大有想像和拓展空间。 单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。 但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统控制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。近年来随着计算机在社会领域的渗透 ,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构, 以及针对具体应用对象特点的软件结合, 以作完善。 模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。并采用电子秤原理可根据输入单价准确的计算出物体的金额。本篇论文讨论了简单的倒计时器的设计与制作 ,对于倒计时器中的四位 LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。目录第1章方案论证TOC\o"1-5"\h\z课程设计的目的和要求 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 1总体设计 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 1第 2章 硬件设计 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 2AT89S51芯片概述 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 13LED数码管显示器概述 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 15其他元器件介绍及参数选择 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 18第 3章 软件设计 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 28程序框图 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 28定时/计数器初值计算 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 2软件程序. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,第 4章 调试与仿真Keil软件介绍及使用 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 30Proteus软件介绍及使用 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 30课程设计心得体会,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,参考文献 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 30第一章方案论证1.1课程设计的目的和要求1.目的课程设计是单片机课程教学的最后一个环节, 是对学生进行全面的系统的训进行课程设计可以让学生把学过的比较零碎的知识系统化, 真正的能够把学能够开发简单的系统, 也进一步激发了学生再深一步学习的课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环应用得的专门性实践类课程。 通过典型实际问调试能力以及文字组织能力, 建立系2.要求单片机控制的 60s倒计时1)用单片机 AT89C51的定时器实现 60s倒计时。本例中用两位数码管静态显2)用 PROTEU设计,仿真基于S AT89c51单片机的 60s倒计时实验。3.目标通过课程设计, 使自己深刻理解并掌握基本概念, 掌握单片机的基本应用程通过做一个综合性训练题目, 达到对内容的1.2总体设计1:60秒倒计时总体电路设计1:60秒倒计时总体电路设计本设计由硬件设计和软件设计两部分组成,总电路如图 1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振, 电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现 60秒倒计时程序的编写,包括利用中断实现 1秒的定时及60秒的倒计时。具体设计:通过 AT89C51型号单片机,由 P1和P2两组 I/O引脚分别控制两个7SEG–COM–ANOD型号数码管,分十位控制和个位控制,达到显示E 60秒倒计时的目的。通过复位电路,在仿真过程中点击开关实现 60复位。第二章硬件设计2.1AT89C51的芯片概述AT89C51是一个低功耗,高性能 CMOS8位单片机,片内含 4kBytesISP(In-systemprogrammable)的可反复擦写 1000次的 Flash只读程序存储器,器件采用 ATMEL公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及80C51引脚结构,芯片内集成了通用 8位中央处理器和 ISPFlash存储单元,功能强大的微型计算机的 AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其工作电压在 4.5-5V,一般我们选用+ 5V电压。外形及引脚排列如图2所示图2:89C51的核心电路框图主要特性MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz·三级程序存储器锁定128×8位内部 RAM32可编程I/O线两个16位定时器/计数器5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明TOC\o"1-5"\h\z(1)电源及时钟引脚( 4个)Vcc:电源接入引脚Vss:接地引脚XTAL1:晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地) ;XTAL2:晶体振荡器的另一个引脚 (采用外部振荡器时, 此引脚作为外部振荡器信号的输入端)。(2)控制线引脚( 4个)RST/Vpd:复位信号输入引脚 /备用电源输入引脚;ALE:地址锁存允许信号输出引脚 /编程脉冲输入引脚:EA:内外存储器选择引脚 /片外 EPRO编程电压输入引脚;MPSEN:外部程序存储器选通信号输出引脚。(3)并行 I/O引脚P0.0-P0.7:一般 I/O口引脚或数据 /低位地址总线复用引脚;P1.0-P1.7:一般 I/O口引脚;P2.0-P2.7:一般 I/O口引脚或高位地址总线引脚;P3.0-P3.7:一般 I/O口引脚或第二功能引脚振荡器特性 :XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件, XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.2LED数码管显示器概述

本设计中采用的是 7SEG–COM–ANODE型号数码管,它是一种半导体发光3所示:图3图3:7SEG–COM–ANODE型号数码管数码管的分类数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多;按能显示多少个“ 8”可分为 1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极(COM)COM接到 +5V,当某一字段发光二极当某一字段的阴极为高电平时, 相应字(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线 GND上,当某一相应字段就点亮。 当某一字段的阳极为低电LED数码管有两种连接方法如下:共阳极接法。 把发光二极管的阳极连在一起构成公共阳极, 使用时公共阳极+5V,每个发光二极管的阴极通过电阻与输入端相连。共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极LED数码显示器的显示段码。 为了显示字符,要为 LED显示器段码(或称字形代码),组成一个 8字形字符的 7段,再加上 1个小数点位,共计 8段,因此提供给LED显示器的显示段码为 1个字节。各段码位的对应关系如下表所示 .十六进制数及空白字符与 P的显示段码段码位D7D6D5D4D6D2D1D0显示段pdgfedeba字型共阳极段码共阴极段码字型共阳极段码0C0H3FH990H1F9H06HA88H2A4H5BMB83H3B0H4FHCC6H499H66HDA1H592H6DHE86H682H7DHF84H7F8H07H空白FFH880H7FHP8CH数码管的驱动方式数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动: 静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O端口进行驱动, 或者使用如 BCD码二 -十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O端口多,如驱动5个数码管静态显示则需要 5×8=40根I/O端口来驱动,要知道一个 89S51单片机可用的 I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动: 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8个显示笔划 "a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极 COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的 COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为 1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O端口,而且功耗更低。数码管参数8字高度:8字上沿与下沿的距离。 比外型高度小。 通常用英寸来表示。 范围一般为0.25-20英寸。长*宽*高:长——数码管正放时,水平方向的长度;宽——数码管正放时,垂直方向上的长度;高——数码管的厚度。时钟点:四位数码管中,第二位 8与第三位 8字中间的二个点。一般用于显示时钟中的秒。数码管应用数码管是一类显示屏 通过对其不同的管脚输入相对的电流 会使其发亮 从而显示出数字能够显示 时间日期温度等所有可用数字表示的参数由于它的价格便宜 使用简单 在电器特别是家电领域应用极为广泛 空调热水器冰箱等等绝大多数 热水器用的都是数码管 其他家电 也用液晶屏与 荧光屏数码管使用的电流与电压电流:静态时,推荐使用 10-15mA;动态时,16/1动态扫描时, 平均电流为 4-5mA,峰值电流 50-60mA。电压:查引脚排布图,看一下每段的芯片数量是多少?当红色时,使用 1.9V乘以每段的芯片串联的个数;当绿色时,使用 2.1V乘以每段的芯片串联的个数。怎样测量数码管引脚,分共阴和共阳 ?找公共共阴和公共共阳:首先,我们找个电源( 3到5伏)和1个1K(几百欧的也行)的电阻, VCC串接个电阻后和 GND接在任意 2个脚上,组合有很多,但总有一个 LED会发光的,找到一个就够了,然后 GND不动, VCC(串电阻)逐个碰剩下的脚,如果有多个 LED(一般是 8个),那它就是共阴的了。相反用 VCC不动, GND逐个碰剩下的脚,如果有多个 LED(一般是 8个),那它就是共阳的。也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。2.3其他元器件介绍及参数选择本设计中还用到其他一些元器件,例如:晶振,电容,电阻排,电解电容,开关等等。晶振采用频率为 12MH,连接的两个电容为Z 30pF;电阻排为 470*8,能够实现 8个470欧电阻的等效替换;电解电容为 10u;开关功能是在仿真过程中,按下开关便能实现 60秒复位。第3章 软件设计程序框图定时/计数器初值计算(1)本电路应用 TIMER0MODE1位计数器的计时中断法。61秒等于 1000000微秒 ,而每一计时脉冲是 1微秒,因此需输入 100000个计时脉冲 ,方可达到 1秒的时间。本设计中,设定中断每次溢出时间 50ms。(3)由上式得知,循环 20次即可达到 1秒定时,即:N=t/Tcy=0.05s/0.000001=5000X=65536-5000=15536=3CB0H(4)由上式得知 5000个脉冲,首先需设定 TL0=3CH,TH0=0B0,此时第H 1次只要输入5000个脉冲输入,就会溢出;第 2次至第 20次,则需每 1000000个计时脉冲,定时 1秒。(5)上电时,显示 60,开始倒数计时按下开关实现复位。

软件程序ORG0000HAJMPMAINORG0030HMAIN:MOVR2,#60LOOP1:MOVA,R2MOVB,#10DIVABMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP1,AMOVA,BMOVCA,@A+DPTRMOVP2,AMOVR7,#20LOOP0:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0JNBTF0,$CLRTF0DJNZR7,LOOP0DECR2CJNER2,#0FFH,LOOP1AJMPMAINTABLE:DB0C0H,0F9H,0A4H,0B0HDB99H,92H,82H,0F8HDB80H,90H,88H,83HDB0C6H,0A1H,86H,8EH计数初值T0工作于方式 计数初值T0工作于方式 0T0TF0=0,等待;清TF0;循环 20次;减一;倒计时;复位回到 60秒初始第四章软件调试系统调试工具 keilc51KeilC51仿真器是一款利用 KEILC51的IDE集成开发环境作为仿真环境的廉价仿真器,是利用 SST公司具有 IAP功能的单片机 SST89C5制作而成,主要是利用了8SST89C5的8IAP功能,所谓 IAP功能是 Inapplicationprogram的英文缩写,是在应用编程的意思,通俗一点讲就是:它可以通过串口将用户的程序下载到单片机中,可以通过串口对单片机进行编程。它之所以具有这种功能,实际上它有两块程序flash区,其中一块 flash中运行的程序可以更改另外的一块程序 flash区中的程序,正是利用这一特性才用它作成了仿真器,我们把仿真器的监控程序事先烧入SST89C5,8监控程序通过 SST89C5的串口和8 PC通讯, 当使用 KEILC51的IDE环境仿真时,用户的程序通过串口被监控程序写入 flash程序区中, 当用户设置断点等操作仿真程序时, flash程序中的用户程序也在相应的更改,从而实现了仿真功能 。调试的主要方法 :启动Keilc51新建一个工程。 Project菜单——〉Newproject,选择好我们要保存的文件夹后,键入Frist保存。接着弹出 CPU类型选择框, 我们选择最常用的 AT89C51,按确定。在工程中加入文件。新建一个文件,文件菜单 File——〉 New,我们再选择:文件菜单File——〉SaveAs?(另存为) 弹出对话框后, 我们文件名框中键入 First.c(注意文件后缀名是 .c)保存。 C文件建好啦。 现在我们把文件加入到工程中去。 点击Target1前面的 +号,右键单击 SourceGroup1——〉选择 AddFilestoGroup,SourceGroup1,选择添加 Add。编译运行,检查程序是否有错误。PROTEUS

温馨提示

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

评论

0/150

提交评论