《单片机课程设计60秒倒计时.docx》由会员分享,可在线阅读,更多相关《单片机课程设计60秒倒计时.docx(16页珍藏版)》请在三一办公上搜索。
1、单片机课程设计60秒倒计时前言在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影 出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用 单片的需求。现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控 制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。单片机的应 用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强 度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。但是, 单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的 意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方
2、法。从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通 过软件(编程序)方法实现了。这种以软件取代硬件并提高系统性能的控制系统 “软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统控 制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展、日 益完善和更加充实。近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入, 同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统 中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应 根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。模拟 多通道压力系
3、统是利用压力传感器采集当前压力并反映在显示器上,它可以分析 压力过量程,并发出报警。并采用电子秤原理可根据输入单价准确的计算出物体 的金额。本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的四 位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方 法,即不使用专门的硬件译码器,而采用软件程序进行译码。第1章方案论证1*1LI 目 &t)9 mt,,,*?尊,, jj ,si *,咋,,,,,,, si ijj j ,,V9,】, ,?, 11 曲 2 漏总4 设 L I ”,”/,”,” W,“,”,37,”,K,”,”,”,”,”,”3,12 章Ff计w,h,”,
4、序,”,,,”,,,”,”,”,, w,”,”,m,”,”,,,”,”好,”,22.1 AT89S 51片,*,弗勺,”,”,苏,”季*,”,”,事,勺,小,,,队,,,”,”,利,132+2 LED刀 S -&3 SJ SS 3 * St JI ! 5 911 tl JJ? JI t5 3 f 3 St 1 1115 -Jt JttS 52. 3 其他兀器件介绍及参数选择WW”W183 fF k ,,” ” ”,m T3 H1J3J ” T 3713II ” ” ”,”* T5 ?1I,? 3?T5 JJ,” II ” H,t3 TJ 2F?J ” II3TI J5 ”28予HF,(,),3
5、,,费,,,!?,I尊,】,:J T3,】,】,】”,】,28At 0/ t|I* I,!W,,,、,。,,,噂,),。,1?,】,3. 23. 1摭件1,,,的,”,朴,”,$,3.3第4章调试与仿真4* 1 Ke 11 彳牛介 姐 M .使.用,,”,w ”字,w,”,羽,育,”,”做w,”,邮,项3 04* 2 PrOt OUS彳吏4*14,额 ” 珀 M- ,H,! f? II ,/”! 4 W K,,辑? 3 0L I U,/ *, 淳妙,,,,,,*, ,,,,9 *,,,,,,勺 ,勺 H,”4,,,44 4,季,, H,,,,,, 4?4考 .乂5,,】W,*,1 ,,*!费平
6、,T?,,,】H,,,1,m$,淳,,!M-S号,1WH3,,30基于AT89C51 的 60秒倒计时设计八第一章方案论证1.1课程设计的目的和要求1. 目的课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训 练。进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学 过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的 热情,因此课程设计是必不可少的,是非常必要的。课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环 节,是配合单片机课程内容掌握、应用得的专门性实践类课程。通过典型实际问 题的实际,训练学生的软硬件的综合设计、调试能力
7、以及文字组织能力,建立系 统设计概念,加强工程应用思维方式的训练,同时对教学内容做一定的扩充。2. 要求单片机控制的60s倒计时(1)用单片机AT89C51的定时器实现60s倒计时。本例中用两位数码管静态显 示倒计时秒值。(2)用PROTEU S设计,仿真基于AT89c51单片机的60s倒计时实验。3. 目标通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程 序设计及综合应用程序设计的方法。通过做一个综合性训练题目,达到对内容的 消化、理解并提高解决问题的能力的目的。1.2总体设计单片机60秒倒计时仿真设计口口口口口口口口F2.1i,AZ ZA3 ZJfAIT 苴 ZiACI
8、T.WA14 HWAIiSA图1: 60秒倒计时总体电路设计本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主 要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参 数的确定;软件设计主要是实现60秒倒计时程序的编写,包括利用中断实现1秒 的定时及60秒的倒计时。具体设计:通过AT89C51型号单片机,由P1和P2两组I/O引脚分别控制两个 7SEG - COM -ANODE型号数码管,分十位控制和个位控制,达到显示60秒倒计时 的目的。通过复位电路,在仿真过程中点击开关实现60复位。第二章硬件设计2.1 AT89C51的芯片概述AT89C51是一个低功耗,高
9、性能CMOS 8位单片机,片内含4k Bytes ISP(I n-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件 采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统 及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元, 功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比 的解决方案。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的 方案。其工作电压在4.5-5 V, 一般我们选用+ 5V电压。外形及引脚排列如图 2所示图2:PLi.O/MCP0.VAD
10、1XTAL2P0.3/AI:GPEi.WAMPO. 5/AI:r5PO.G.-AItiRSTP0.7/AD7P2.1 .:P2.2M10PSENP2.3/AHALEP2.4A:12EAP2.5/A13P2.6/A:14P2.7/A.15P1 JOP3.0/RXDP1 .1P3.1ZTXDP1 2F3.2/INTUFT 3P3.3/INT1P1 .4P3.4.T:iFT 5P:3.5.aiP1 J0P3.6/WRPI 7F3.7/F:DU1AT89L51=LED数码显示器的显示段码。为了显示字符,要为LED显示器段码(或称字 形代码),组成一个8字形字符的7段,再加上1个小数点位,共计8段,因此
11、提 供给LED显示器的显示段码为1个字节。各段码位的对应关系如下表所示.十六进 制数及空白字符与P的显示段码段码 位D7D6D5D4D6D2D1D0显示 段pdgfedeba字型共阳极段 码共阴极段 码字型共阳极段 码0C0H3FH990H1F9H06HA88H2A4H5BMB83H3B0H4FHCC6H499H66HDA1H592H6DHE86H682H7DHF84H7F8H07H空白FFH880H7FHP8CH数码管的驱动方式数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出 我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动
12、也称直流驱动。静态驱动是指每个数码管的每一 个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器 译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多, 如驱动5个数码管静态显示则需要5X8=40根I/O端口来驱动,要知道一个89S5 1单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动, 增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示 方式之一,动态驱动是将所有数码管的8个显示笔划”a,b,c,d,e,f,g,血”的同名端 连在一起,另外为每个数码管的公共极COM增加位选通控制电
13、路,位选通由各自独 立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但 究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以 我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受 控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms, 由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时 点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪 烁感,动态显示的效果和静态显示是一样的,能够节省大量的I
14、/O端口,而且功耗 更低。数码管参数8字高度:8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围 一般为0.25-20英寸。长*宽*高:长一一数码管正放时,水平方向的长度;宽一一数码管正放时,垂 直方向上的长度;高一一数码管的厚度。时钟点:四位数码管中,第二位8与第三位8字中间的二个点。一般用于显 示时钟中的秒。 数码管应用数码管是一类显示屏通过对其不同的管脚输入相对的电流会使其发亮从而 显示出数字能够显示 时间日期温度 等所有可用数字表示的参数由于它的价格便宜使用简单在电器 特别是家电领域应用极为广泛 空调热 水器冰箱等等绝大多数热水器用的都是数码管其他家电也用液晶屏与荧光屏数码管使
15、用的电流与电压电流:静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA, 峰值电流50-60mA。电压:查引脚排布图,看一下每段的芯片数量是多少?当红色时,使用1.9V 乘以每段的芯片串联的个数;当绿色时,使用2.1V乘以每段的芯片串联的个数。怎样测量数码管引脚,分共阴和共阳?找公共共阴和公共共阳:首先,我们找个电源(3到5伏)和1个1K (几百欧 的也行)的电阻,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总 有一个LED会发光的,找到一个就够了,然后GND不动,VCC (串电阻)逐个碰剩 下的脚,如果有多个LED (一般是8个),那它就是共阴的了
16、。相反用VCC不动, GND逐个碰剩下的脚,如果有多个LED (般是8个),那它就是共阳的。也可以 直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。2.3其他元器件介绍及参数选择本设计中还用到其他一些元器件,例如:晶振,电容,电阻排,电解电容,开晶振采用频率为12MHZ,连接的两个电容为30pF ;电阻排为470*8,能够实现8 个470欧电阻的等效替换;电解电容为10u ;开关功能是在仿真过程中,按下开关便 能实现60秒复位。第3章软件设计3.1程序框图3.2定时/计数器初值计算(1) 本电路应用TIMER0 MODE 16位计数器的计时中断法。(2) 1秒等于1000000微秒,
17、而每一计时脉冲是1微秒,因此需输入100000个计时脉冲, 方可达到1秒的时间。本设计中,设定中断每次溢出时间50ms。(3) 由上式得知,循环20次即可达到1秒定时,即:N=t/Tcy=0.05s/0.000001=5000X=65536-5000=15536=3CB0H(4) 由上式得知5000个脉冲,首先需设定TL0=3CH,TH0=0B0H,此时第1次只要输入 5000个脉冲输入,就会溢出;第2次至第20次,则需每1000000个计时脉冲,定时1 秒。(5) 上电时,显示60,开始倒数计时按下开关实现复位。3.3软件程序MAIN:LOOP1:LOOP0:TABLE:ORG 0000HA
18、JMP MAINORG 0030HMOV R2,#60MOV A,R2MOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,A+DPTRMOV P1,AMOV A,BMOVC A,A+DPTRMOV P2,AMOV R7,#20MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB TR0JNB TF0,$CLR TF0DJNZ R7,LOOP0DEC R2CJNE R2,#0FFH,LOOP1AJMP MAINDB 0C0H,0F9H,0A4H,0B0HDB 99H,92H,82H,0F8H;计数初值;查表;十位显示;个位显示;置T0工作于方
19、式0;装入计数初值;启动定时器T0;TF0=0,等待TF0;循环20次;减一;倒计时;复位回到60秒初始DB 80H,90H,88H,83HDB 0C6H,0A1H,86H,8EHEND第四章软件调试4.1系统调试工具keil c51Keil C51仿真器是一款利用KEIL C51的IDE集成开发环境作为仿真环境的廉 价仿真器,是利用SST公司具有IAP功能的单片机SST89C58制作而成,主要是利用了 SST89C58的IAP功能,所谓IAP功能是In application program的英文缩写,是在 应用编程的意思,通俗一点讲就是:它可以通过串口将用户的程序下载到单片机中, 可以通过
20、串口对单片机进行编程。它之所以具有这种功能,实际上它有两块程序 flash区,其中一块flash中运行的程序可以更改另外的一块程序flash区中的程序, 正是利用这一特性才用它作成了仿真器,我们把仿真器的监控程序事先烧入 SST89C58,监控程序通过SST89C58的串口和PC通讯,当使用KEIL C51的IDE环境仿 真时,用户的程序通过串口被监控程序写入flash程序区中,当用户设置断点等操 作仿真程序时,flash程序中的用户程序也在相应的更改,从而实现了仿真功能。 调试的主要方法:1. 启动Keil c512. 新建一个工程。Project菜单 New project,选择好我们要保
21、存的文件夹 后,键入Frist保存。接着弹出CPU类型选择框,我们选择最常用的AT89C51,按确 定。3. 在工程中加入文件。新建一个文件,文件菜单FileNew,我们再选择:文 件菜单File Save As?(另存为)弹出对话框后,我们文件名框中键入First.c(注意文件后缀名是.c)保存。C文件建好啦。现在我们把文件加入到工程中去。点击Target 1前面的+号,右键单击Source Group 1选择Add Files to Group,Source Group 1,选择添加Add。编译运行,检查程序是否有错误。4.2 PROTEUSProteus是一款EDA软件,该软件具有模拟电
22、路仿真,数字电路仿真,单片机 以及外围电路组成的系统的仿真,RS-232动态仿真,I2C调试器,SPI调试器,键 盘和LCD系统的仿真,以及各种虚拟仪器,如示波器,逻辑分析仪,信号发生器等。 该软件目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、 PIC16系列、PIC18系列、Z80系列、HC11系列、ARM以及各种外围芯片。该软件还 支持大量的存储器和外围芯片,所以,该软件是一款集单片机和SPICE分析于一身 的仿真软件。调试方法:首先用Keil软件将C编译成HEX文件,打开Keil软件,新建一个 文档,输入。程序,保存成C格式文件,然后新建工程,连接单片
23、机为AT89C51, 选择 Options for target,选择 OUTPUT 子菜单,在 Create HEX Fi 前打钩,DeBug子菜单中,Settings选择ProteusVSM Simuator, USE前打钩,再次运行文件,成 功后在目录下会生成HEX文件,打开Proteus软件,或直接点击DSN文件,双击单 片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开始,进行 调试心得体会在这次单片机课程设计中,我觉得最大的收获就是提高了自己的动 手及思考解决问题的能力,平常以为很明白的程序,在仿真过程中却发 现并不是想象的那么简单,设计的过程中失败了很多次,但通过自己的 不懈努力最终获得设计的成功!在这里要特别感谢陈玉玲老师,谢谢她课堂上的引导,使自己明确 了设计方向,避免了许多错误。参考文献:1. 李全利.单片机原理及应用技术高等教育出版社2. 吴金荣.8051单片机实践与应用清华大学出版社3. 张迎辉贡雪梅.单片机实训教程北京大学出版社
链接地址:https://www.31ppt.com/p-5076896.html