单片机课设数码管显示滚动控制_第1页
单片机课设数码管显示滚动控制_第2页
单片机课设数码管显示滚动控制_第3页
单片机课设数码管显示滚动控制_第4页
单片机课设数码管显示滚动控制_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机设计与实训 设计报告题目:数码管滚动显示控制姓名:王伟杰班级:自动化四班学号:2014550430指导老师:张莹提交日期:2016年10月29日卑微如蝼蚁、坚强似大象共享知识 分享快乐目录一、设计题目与要求 51.1 设计题目 51.2 设计要求 5二、系统方案设计 52.1 硬件电路设计 51.单片机最小系统简介 52. 数码管显示电路 82.3 硬件选型及说明 81. ST89C51 单片机 82. 四位一体七段共阴极显示数码管 10三、系统原理图设计与仿真 113.1 系统仿真图 113.2 系统仿真结果 12四、程序设计 134.1 程序设计 134.2 程序流程图 14五、系统

2、调试 165.1 系统硬件调试 165.2 系统软件调试 16六、总结与体会 16附录一 18卑微如蝼蚁、坚强似大象附录二 19附录三 30一、设计题目与要求单片机课程设计是一门实践课程, 要求学生具有制作调试单片机最小系统及 外设的能力, 能够掌握单片机内部资源的使用。 单片机课程设计内容包括硬件设 计、制作及软件编写、调试,学生在熟练掌握焊接技术的基础上,能熟练使用单 片机软件开发环境 Keil C51 编程调试,并使用 STC ISP 调试工具采用串口下载 方式联调制作的单片机最小系统。单片机课程设计题目包含基本部分及扩展部 分,基本部分即单片机最小系统部分,扩展部分是对单片机内部资源及

3、外部 IO 口的功能扩展,使制作的单片机系统具有一定的功能。1.1 设计题目数码管滚动显示控制1.2 设计要求自制一个单片机最小系统, 包括串口下载、 复位电路, 采用两个四位一体数 码管作为显示器件, 通过按钮选择实现四种滚动显示模式, 例如从左至右, 从右 至左,内缩,外扩等,滚动信息可以是数字或有意义的英文字符。二、系统方案设计2.1 硬件电路设计本设计的硬件电路主要包括的模块有: 单片机最小系统、 七段数码管显示模 块、1.单片机最小系统简介单片机最小系统 ,或者称为最小应用系统 ,是指用最少的元件组成的单片机可 以工作的系统 .对 51 系列单片机来说 ,最小系统一般应该包括 :单片

4、机、晶振电路、 卑微如蝼蚁、坚强似大象复位电路。结构图如下:WC PDA n | 叭PA s FtMHI?Kio E 3 - 4 .5 i 血f-tFlplpt:nw.w-i aiEAA.PPP27P28P2SP24 F2 I m n i KO图2.1单片机最小系统r .气 f7 s;Fa 必 i R开 WftfT r EA-pif*Hi ROM幵 SfKfj各部分的功能介绍如下:复位电路:复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外, 当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复

5、位键以重新启动。MCS-51单片机的复位电路由片内、片外两部分组成,进行 复位操作时,外部电路需在复位引脚 RST端产生大于两个机器周期的高电平信 号, RST引脚通过片内施密特触发器与复位电路相连(施密特触发器的作用是脉冲整型和抑制噪声)。MCS-51单片机的复位操作有两种方式:上电复位和上电 按钮复位。共享知识分享快乐19VCCAGNDJ匚GND厂1L5uFR151oFXTAL1XFAL2F?STPSENALEEA2GND53 A5图22复位电路图晶振电路(时钟电路):时钟电路是单片机的心脏,它用于产生单片机工作 所需要的时钟信号。单片机本身就是一个复杂的同步时序电路, 为了保证同步工 作

6、方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。单片机的时钟产生方法有内部时钟方式和外部时钟方式,大多数单片机应用系统采用内部时钟方式,本系统采用的亦是内部时钟方式。在MCS-51芯片内部有一个高增益反相放大器,XTAL1 XTAL2引脚分别为该反相放大器的输入端和输出端,在 芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。卑微如蝼蚁、坚强似大象共享知识分享快乐2.数码管显示电路图2.4数码显示电路2.3硬件选型及说明1.ST89C51单片机MCS-51把微型计算机的主要部件都集成在一块心片上,使得数据传送距离 大大缩短,可靠性更高,

7、运行速度更块。由于属于芯片化的微型计算机,各功能 部件在芯片中的布局和结构达最优化, 抗干扰能力加强, 工作亦相对稳定。因此, 在工业测控系统中,使用单片机是最理想的选择。 单片机属于典型的嵌入式系统, 所以它是低端控制系统最佳器件。8051是MCS-51系列单片机的典型产品。8051 单片机包含中央处理器、程序存储器(ROM)数据存储器(RAM)定时/计数器、 并行接口、 串行接口和中断系统等几大单元及数据总线、 地址总线和控制总线等 三大总线:引脚介绍:电源:VCC -芯片电源,接+5V; VSS -接地端;时钟: XTAL1、 XTAL2 - 晶体振荡电路反相输入端和输出端控制线:ALE

8、/PROG地址锁存允许/片内EPROMS程脉冲:ALE功能: 用来锁存P0口送出的低8位地址;PROG功能:片内有EPROI的芯片,在EPROM 编程期间,此引脚输入编程脉冲。PSEN:夕卜ROM读选通信号。RST/VPD复位/备用电源:RST ( Reset)功能:复位信号输 入端;VPD功能:在Vcc掉电情况下,接备用电源。EA/Vpp:内外ROM选择/片内EPROMS程电源:EA功能:内 外ROM选择端;Vpp功能:片内有EPRO啲芯片,在EPRO编程期间,施加 编程电源 Vpp。I/O线:4个8位并行I/O端口: P0 P1、P2、P3 口,共32个引脚。P3 口 还具有第二功能,用于

9、特殊信号输入输出和控制信号(属控制总线)。卑微如蝼蚁、坚强似大象U11Q18S2Q3031123气567eXTAL1PO.O/AWP0.1/AE1P0.2/AD2XTAL2PO.3/AD0P0AD4P0.5/AD5P0.6/ACCrstP0.7/AD7F2.0l#8P2l1GP2,2/A10PSENP2.3/A11ALEP2.A12EAP2.5/A13P2.6/A14P2.7/A15P1DP3.0/RXDP1.1P3.1/TXDP12P3.2/1NT0F13P3.3/1NT1P1/4P3.VTOP1I5P3 5/T1P1BP3.6A/VRF17P3.7/R0AT890513Q383736353

10、43332211222324252627210阳1213141516图2.5 89C51引脚图2.四位一体七段共阴极显示数码管IULJLJL 1IL i IL1L 211LL | 1L亠II丄I1111CJ11l1H1g11丄1IImri n1图2.6数码管引脚图三、系统原理图设计与仿真3.1系统仿真图mi ttBIbE:eP 口 DW1FD.W1PD3 3P 口.咖中FDJfM F 口圧励Pn.7BW?PZ.i#B P2ZMD P2J*11 FS-bmS PZip-Q pum*P2.TW5P3DMP3.1iJ 眄耳TE mEPUW1P3SH PltlSW F3TJWT图3.1系统仿真图3.2

11、系统仿真结果weDPR1 1D TMiPE1UADO旳型迟 FEHADS 皿襯曲 msftDS PDJ9A06 也帖FZ.1JPzafAiiPI.4/A1Z nsMJ PZSAU FZ.TASP3VHXpj.aiinoP33flffTTF3.M1O PlanFSjBT pa.TiTC图3.2系统正在运行ABCDEFG DPLk:山gzn1LRm山RP1smZ3JiEtC卫1D1i!r口1411佑 P:-P11共享知识 分享快乐图3.3系统正在运行四、程序设计4.1程序设计数码管动态显示程序包含显示数字、部分字母符号、小数点、数码管闪 烁、数码管消隐等。其它程序输出到显示程序的数据既可以是 BC

12、D码、二进制码、 ASCII码、自定义显示码等。由硬件电路工作原理可知,为了显示稳定的数据, 每秒必须显示数据50次以上,才能达到预期目的。MCS-51单片机内部有两个16位可编程的定时器/计数器TO和T1。它们即 可用作定时器方式,又可用作计数器方式。其中 TO由THO和TLO计数器构成; T1由TH1和TL1计数器构成。工作于定时器方式时,通过对机器周期(新型 51单片机可以对振荡周期计 数)的计数,即每一个机器周期定时器加 1,来实现定时。故系统晶振频率直接 卑微如蝼蚁、坚强似大象共享知识分享快乐影响定时时间。如果晶振频率为 12MHZ则定时器每隔(1/12MHZ X 12=1us加 1

13、。工作于计数器方式时,对 P3.4或P3.5管脚的负跳变(1-0)计数。它在 每个机器周期的 S5P2 时采样外部输入,当采样值在这个机器周期为高,在下一 个机器周期为低时,计数器加 1。因此需要两个机器周期来识别一个有效跳变, 故最高计数频率为晶振频率的 1/24。特殊功能寄存器TMOD用于定时器/计数器的方式控制。高4位用于设置T1, 低4位用于设置T0。单片机内部定时器/计数器的使用,简而概之:(1)如需用 中断,则将EA和相关中断控制位置1;(2)根据需要设置工作方式,即对TMOD 设置;(3)然后启动计数,即对TR(或TR1置 1。(4)如使用中断,则计数溢出 后硬件会自动转入中断入

14、口地址;如使用查询,贝U必须对溢出中断标志位TF0或TF1进行判断。4.2 程序流程图卑微如蝼蚁、坚强似大象图4.1主程序图共享知识 分享快乐五、系统调试5.1 系统硬件调试在领完课程设计所需的元器件并检查是否是自己所需要, 并且根据电路原理 图进行电路板的焊制, 在焊接过程中注意不要虚焊和短路。 焊接完成后首先对电 路板上的线路进行检查是否有错漏和重复。 并且用万用表测试电路中有无虚焊短 接的情况。在测试无误后,向单片机烧录程序,并接通电源进行测试。在第一次上电过程中, 数码管并没有显示出如期的结果, 用万用表对焊接点 进行再一次的排查并对线路进行检查, 发现单片机底座有几个虚焊点, 并重新

15、对 其进行焊制。5.2 系统软件调试在 keil 编译器下进行程序的编写,以子程序为单位进行调试,并且利用proteus软件进行仿真实验并结合电路板进行整机调试。六、总结与体会此次的课程设计是基于单片机的数码管滚动显示控制。 单片机是自动化的重 要课程, 学习的时候十分用心, 也同时也为这次的课程设计打下了理论基础。 但 是由于学习到的更多涉及于课本知识并没有灵活的掌握, 所以说在设计的过程中 也需要不断的翻阅书籍, 以此来达到完成顺利完成课程设计任务, 在这段学习与 制作的过程中巩固了我在课堂上学习到的内容, 而且锻炼到了我个人的自我学习 卑微如蝼蚁、坚强似大象共享知识分享快乐能力及制作能力

16、。 在课程设计最开始是做 Proteus 仿真, 从最小系统开始做。 单 片机最小系统是指用最少的元件组成的单片机可以工作的系统。 应该包括:单片 机、晶振电路、复位电路等。 我上学期做过数电的课程设计所以这次看到器件这 么少电路图这么简单还觉得很高兴。 然而做完仿真开始焊接时才发现从单片机芯 片出来的连接数码管的线路在仿真中隐藏了只留下了引脚, 导致我在焊接的时候 一下多了十多根线打乱我的节奏, 好在最后还是踉踉跄跄地焊完了。 在第一次调 试的时候并没有现象,这令我十分惶恐,仔细检查才发现仿真中 21 20 引脚的都 略去了而这几个针脚正是连接 vcc 跟地的引脚,后来将它焊上了。 给我的启

17、发是 以后在做完仿真焊接的时候一定要每个引脚的过, 因为仿真中它将芯片的引脚打 乱了顺序而且有的引脚也省略了, 仿真跟真实的焊接还是不同的。 还有就是拿到 仿真先别急着焊接, 还是要大致地考虑器件的布局跟正反面的走线, 提前理清思 路焊的时候才能游刃有余,不至于慌忙。而且在制作仿真的过程中也有了瓶颈, 大一学的 c 语言忘得差不多了好在同学的帮助下才解决了问题, 另外焊接只是一 方面,后续的检测诊断才是关键, 不可能一下子焊好就可以使用, 在焊接的过程 中难免有一些焊点漏焊虚焊的。 每一次的课程设计对我都是一种拔高跟历练, 在 一次次的课程设计中我会不断地进步, 提升自己的解决问题的能力, 跟

18、动手焊接 能力,还有故障排查能力, 做课程设计固然需要智慧然而坚持跟耐心也是很关键 的,这几样缺一不可, 否则很难做出成功的作品。 我相信我会一步步地慢慢变好 变强。附录元器件清单器件名称数量Stc89c54单片机1电容若干七段共阴极数码管2电阻若干微动开关2芯片插座3驱动1晶振1卑微如蝼蚁、坚强似大象附录二#include/- 定义使用的 IO 口-/#define GPIO_DIG P2/ 段选#define GPIO_PLACE P0/ 位选sbit k =P1A0;/- 定义全局变量 -/unsigned char code DIG_PLACE8 = 0xfe,0xfd,0xfb,0x

19、f7,0xef,0xdf,0xbf,0x7f;/位选控制 查表的方法控制unsigned char code DIG_CODE17 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;0、1、2、3、4、5、6、7、8、9、A b、C、d、E、F 的显示码unsigned char DisplayData8;/ 用来存放要显示的 8 位数的值/- 声明全局函数 -/void Displaykey();void Runkey();void first();void step1();vo

20、id step2();void step3();void step4();signed char delay;signed char i;unsigned char j;signed char i1;unsigned char step=1;/* 函 数 名 : main* 函数功能 : 主函数*/void main(void)unsigned char a;for(a=0; a8; a+)DisplayDataa = DIG_CODEa; / 存放段码first(); /设置定时器初值和工作方式while(1)Displaykey(); / 扫描按键Runkey(); / 执行相对应的按键步

21、骤* 函 数 名 :first()* 函数功能 : 设置初值*/void first()TMOD=0x01; /设置 T0 为定时器 工作方式TH0=(65536-20000)/256;20msTL0=(65536-20000)%256; / 设置计数器初值,定时时间为IE=0x82; / 允许定时器 0 中断* 函 数 名 :Displaykey();* 函数功能 : 按键扫描*/void Displaykey()if(k=0)启动定时器 0TR0=1; /* 函 数 名 :void time0() interrupt1 using 1* 函数功能 : 定时器 0*/void time0()

22、 interrupt 1 using 1unsigned char a;TH0=(65536-20000)/256;TL0=(65536-20000)%256; / 方式 1 需要重置定时器的初值if(k=0) /while(1)if(k=1) break;step=step+1;if(step=5)step=1;switch(step)case 1: i=0; break;case 2: i=7; break;case 3: i=0; i1=7; break;case 4: i=3; i1=4; break;a+;while(a=20)20ms*50=1sa=0;delay=1;定时20ms

23、去除按键抖动/ 判断按键是否弹起/ 进入下一个工作方式/ 设置步骤 1 的初值/ 设置步骤 2 的初值/ 设置步骤 3 的初值/ 设置步骤 4 的初值/ 利 用 定 时 器 进 行 延 时/ 延时结束标志位延时 时 间为/ 关闭定时器TR0=0;/* 函 数 名 :Runkey();* 函数功能 : 按键执行和选择*/void Runkey()switch(step)case 1: step1(); break;case 2: step2(); break;case 3: step3(); break;case 4: step4(); break;/* 函 数 名 : step1* 函数功能

24、: 右扫程序*/void step1()GPIO_PLACE = DIG_PLACEi; / 发送位选GPIO_DIG = DisplayDatai; / 发送段码j = 10; / 扫描间隔时间设定while(j-);GPIO_DIG = 0x00;/ 消隐TR0=1; / 开定时器延时while(delay=1)delay=0;i=i+1; / 延时时间到,数码管位选移动 while(i=8)i=0;/* 函 数 名 : step2* 函数功能 : 左扫程序*/void step2()GPIO_PLACE = DIG_PLACEi; GPIO_DIG = DisplayDatai; / j = 10;while(j-);GPIO_DIG = 0x00; /TR0=1;while(delay=1)delay=0;i=i-1;while(i=-1)i=7;/ 发送位选发送段码/ 扫描间隔时间设定消隐/ 延时时间到,数码管位选移动/*函数名: step3* 函数功能 : 内缩程序*输入: 无*输出: 无共享知识 分享快乐*/void step3()GPIO_PLACE = DIG_PLACEi; / 发送位选GPIO_DIG = DisplayDatai; / 发送段码j = 10;/ 扫描间

温馨提示

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

评论

0/150

提交评论