




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自动化学院课程设计报告书题 目: 基于LED的单片机键盘显示系统设计 专 业: 电气自动化技术 班 级: 学 号: 学生姓名: 指导教师: 2016 年 6月30日课程设计报告摘 要本次课程设计主要是以单片机程序设计和需求分析和功能分析为主,数码管显示作为当今社会工农业生产中最为常见显示工具,比如传统的人工监测通常是使用实验表等温湿度监测道具进行检测从而对条件不合适的车间进行温湿度调节。这些都用到数码管显示,因此,本次设计的八只数码管显示具有非凡的意义,可以进行向左移的循环显示也可以进行按键控制,并做了调试分析。关键词:TC89C51;数码管;按键AbstractThis course is designed mainly based microcontroller programming and requirements analysis and functional analysis based, digital display as industrial and agricultural production in todays society the most common display tools, such as the traditional manual monitoring is usually experiment using tables and other props to detect temperature and humidity monitoring thus unsuitable conditions workshop temperature and humidity regulation. These are used in digital display, therefore, the present design of the eight digital display has a special significance, you can cycle through to the left of the button can also be controlled and made a debug analysis.Keywords: TC89C51; digital pipe; button目录摘 要11.前言31.1课题开发背景31.2 课题研究的目的和意义41.3 设计内容42 系统硬件设计及说明62.1系统组成及总体框图62.3元件电路图62.3元件清单72.4 AT89C5183软件以及调试83.1开发工具介绍83.2调试结果94系统软件设计94.1主要程序及程序描述94.2程序流程图115总结与展望126参考文献131.前言1.1课题开发背景随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。基于当前市场上的智能数字市场需求量大,其中数码管显示技术就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现数码管准确显示各种数码。以液晶显示技术的发展为背景,选择了比较常用的T6963C内置控制器型图形LCD(液晶显示嚣)模块,从应用角度介绍了该控制器的特点和基本功能,并描述了单片机控制T6963CLCD模块的显示机理。在此前提下以C51硬件开发语言为基础,给出了8051单片机接口电路图,并以字符、图形的具体显示方法为例简要介绍了软件的设计流程及实现。1.2 课题研究的目的和意义1利用所学过的知识,初步分析单片计算机控制系统的能力;2综合运用本专业方向所学知识,构成以单片机为核心控制系统的能力;3单片计算机控制系统实时软件的设计、 编制与调试的能力;4单片计算机控制系统中模拟部件(包括电压及功率放大部件) 以及常规传感部件的使用、调试的能力;5单片计算机控制系统综合调整及性能测试的能力;6实验结果分析、总结及撰写技术报告的能力。利用AT89C51单片机自带资源,设计一款能流动显示12345678的设备,从而熟悉加深单片机C语言学习印象。1.3 设计内容(1)8个按键和8个数码管作为输入/输出设备(每个按键分别对应08) (2)将按键输入的键码在八位数码管上从右到左动态显示(每个按键分别对应8个数码管)2目标:(1)掌握单片机控制八位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让八位数码管稳定的显示12345678。(2)用PROTEUS进行电路设计和实时仿真3知识点链接(1)数码管动态扫描 (动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线s一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。 (2)总线的应用元器件与总线的连线P0口的接线采用总线方式,详细如图-所示。 选择总线按钮 绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。如果终点在空白处,左键双击结束连线。画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。在画斜线时,需要关闭线路自动路径功能才好绘制。Proteus的线路自动路径功能简称WAR,当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。 给与总线连接的导线贴标签PART LABELS与P0口相连的线标签名依次为P00P06,本电路中的P0口的上拉电阻通过总线与P0口相连,数码管也是通过总线与P0口相连,这些都需要标注,以表明正确的电气连接。单击绘图工具栏中的导线标签按钮,使之处于选中状态。将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“”号,表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图-所示。 在“string”栏中,输入标签名称(如p00),单击“OK”按钮,结束对该导线的标签标定。同理,可以标注其它导线的标签,如图516所示。注意,在标定导线标签的过程中,相互接通的导线必须标注相同的标签名。本课题设计的主要工作如下:研究学习AT89C51单片机其功能,对学习过的单片机,C语言课程进行巩固,设计一款在8只数码管上流动显示单个数字的设备。2 系统硬件设计及说明2.1系统组成及总体框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。该设计要实现一种由单片机控制的秒表,单片机工作于12MHZ时钟频率。该设计具有一个按钮,方便、便捷。系统结构图如电路图1示。数码管显示单片机按键信号2.3元件电路图2.3元件清单1.单片机:AT89C512.八位共阴极数码管:7SEG-MPX8-CA-BLUE3.NPN型三极管8个4.普通电容2个(22PF),电解电容1个(10UF)5.晶振1个(12MHZ)6.排阻1个.2207.电阻1个(220)8.电源1个(5V)9.按键8个2.4 AT89C51该课程设计中我们选用的芯片是AT89C51。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。3软件以及调试3.1开发工具介绍 单片机的使用除了硬件,同样也要软件的使用,我们写汇编程序编程CPU可执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。机器汇编通过汇编软件变为机器码,用于MSC-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从使用普通汇编语言到高级语言的不断发展,Keil是目前最流行开发MCS-51系列单片机的软件。Keil c51汇编,PLM语言和C语言的程序设计,界面友好。Keil是美国keil software公司出品的单片机c语言开发系统。用过汇编语言后再使用C语言来开发,体会更加深刻Keil C51软件提供丰富的库,与汇编相比,C语言在功能上,结构上,可读性,可维护性上有明显的优势,因而易学易用函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生产的汇编代码,就能体会到KeilC51DE 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势3.2调试结果4系统软件设计4.1主要程序及程序描述#include reg52.h #define uint unsigned int #define uchar unsigned char sbit key1 = P32; sbit key2 = P33; sbit key3 = P34; sbit key4 = P35; sbit key5 = P14; sbit key6 = P15; sbit key7 = P16; sbit key8 = P17; uchar code table = 0x3f, 0x06, 0x5b, 0x4f,/数码管显示编码 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 ; uchar led_1=0,led_2=0,led_3=0,led_4=0,led_5=0,led_6=0,led_7=0,led_8=0;voidInitPort();voidDelay_ms(uintxms);voidDisplay_LED1(void);voidDisplay_LED2(void);voidDisplay_LED3(void);voidDisplay_LED4(void);voidDisplay_LED5(void);voidDisplay_LED6(void);voidDisplay_LED7(void);voidDisplay_LED8(void);voidKey_Input();voidmain()InitPort();for(;)Display_LED1();/上电后全部显示0(根据需要随意填写09)Delay_ms(1); Display_LED2(); Delay_ms(1); Display_LED3(); Delay_ms(1);Display_LED4();Delay_ms(1);Display_LED5( ); Delay_ms( 1 ); Display_LED6( ); Delay_ms( 1 ); Display_LED7( ); Delay_ms( 1 ); Display_LED8( ); Delay_ms( 1 ); Key_Input(); void InitPort() P0 = 0x00;/点亮数码管所有段 P1 = 0xff;/没有按键按下 P2 = 0x00;/选择所有数码管P3 = 0xff; 其中键盘子程序举一例为if( key8 = 0 ) Delay_ms( 10 );/消除按键抖动 if( key8 = 0 ) if( led_8 9 )/判断LED8是否超出显示范围 led_8+; /如果没有超出显示范围,显示加1 else led_8 = 0;/如果超出显示范围,显示0 while( !key8 );/等待按键释放 4.2程序流程图开始声明变量, 数码管编码数组声明子程序数码管显示子程序主程序5总结与展望单片机作为我们们的主要专业课之一,虽然在大二开学初我们对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我们发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。作为一名通信技术专业的大二学生,我们觉得做单片机课程设计是十分有意义的,而且是十分必要的。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我们发现效率很高,这是我们做这次课程设计的又一收获。然后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我们受益终身。此次课程设计,基本达到预定的效果,系统部分功能已实现,可以准确高效地计时。在设计的过程中,小组各成员各负其责,设计不同模块。不仅提高了设计的效率,而且体现了实践动手及团队合作的精神。在此次设计过程中,虽然有很多程序的原理仍然没有弄懂,各器件的功能也不是完全了解,但是秉着勤奋刻苦和好学的态度,我在这次设计中对单片机的了解程度更增一步,也很大程度增大了我对单片机设计程序的兴趣。同时我们这次设计是通过团队来完成的,我们互相商量、讨论,力争得到最简单、最有用的设计程序。另外,遇到难题时,我们就会请教班级里的同学或老师,这样对于我们的进展也起到了很大的作用。在设计的过程中,小组各成员各负其责,设计不同模块。不仅提高了设计的效率,而且体现了实践动手及团队合作的精神。本次课程设计是大学学习阶段一次非常难得的理论与实践相结合的机会,通过这次比较系统的项目设计提高了我们运用所学的专业基础知识来解决面临实际问题的能力。为了尽早完成作品,我们坚持努力,经过课下大量的实践操作,我们丰富了各种器件常识,收获了难得的实践经验。在单片机C语言方面也有了更深层次的理解,也大大增加了自己在编程方面的兴趣,这次课程设计中,我请教老师,同学,去图书馆,上网查资料,直至最后完成课程设计,心里有一股成就感,我想在这会成为我以后在这条路上努力的动力。一个星期的单片机课程设计很快就结束了,在这一周当中,虽然开始有点困难,但是经过我们们分工合作,合理地进行设计安排,再加上老师的耐心指导,我们们终于顺利地完成了本次单片机课程设计,同时也学到了很多东西。在本次课程设计中,我们通过动手实践操作,进一步学习和掌握了单片机原理的有关知识,特别是程序的编程方面,加深了对单片机原理及应用技术的认识,进一步巩固了对单片机知识的理解,掌握简单单片机应用系统的设计、制作、调试的方法。在设计时根据课题要求,复习相关的知识,查询相关的资料。根据实验条件,找到适合的方案,找到需要的元器件及工具,进行实验。这次的单片机课程设计重点是通过实践操作和理论相结合,提高动手实践能力,提高科学的思维能力,更在一周的时间了解了更多的有关单片机的知识,使知识更加丰富,使自己更加充实。6参考文献1 张卫涛,刘兴,强宁.VB在单片机创新实验设计中的应用研究J.科技创新导报,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 视觉障碍的护理
- 用电知识安全培训课件
- 癌症护理培训课件题目
- 2025年联邦学习非独立同分布数据(含答案与解析)
- 2025年低资源机器翻译增强习题(含答案与解析)
- 餐饮服务与管理概述讲课文档
- 新质生产力水行业发展趋势
- 药事管理培训课件
- 荣德基压缩课件
- 水洗砂采购合同`4篇
- 核电站主要材料质量保证措施
- (2025年标准)挖桩孔协议书
- 浪浪山携志奔赴新学期-2025年秋季开学第一课主题教育班会-2025-2026学年初中主题班会
- 2025版集团内部无息借款资金调度与管理合同范本
- 管道吊装方案范本
- 黑龙江省五大连池市2025年上半年事业单位公开招聘试题含答案分析
- 小学英语课堂教学规范操作手册
- 人事经理工作汇报
- 项目实施进程汇报
- 2025学宪法讲宪法知识竞赛题库及答案(小学组)
- 中小企业网络安全解决方案概述
评论
0/150
提交评论