ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:4.16MB ,
资源ID:4220994      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-4220994.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计-可以调控的跑马灯.doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计-可以调控的跑马灯.doc

1、1 摘 要 单片机自 20 世纪 70 年代问世以来,以其极高的性能价格比,受到人们的重视和关注, 应用很广、发展很快。而 51 单片机是各单片机中最为典型和最有代表性的一种。本课程设 计是基于 MCS51 系列单片机所设计的,用 AT89S52 芯片控制跑马灯(流水灯) ,整个系统 有 8 种跑马灯模式可以选择,K1 是选择模式键,并将相应的模式在 LED 七段数码管中显示 出来,K2 可以对跑马灯的速度进行加速,K3 可以对跑马灯的速度进行减速。整个系统可以 实现对跑马灯模式的多层控制,还可以进行加减速。 关键词:MCS51、跑马灯、加减速、七段数码管 2 目录 1、引言 1.1、单片机基

2、础知识3 1.2、单片机的发展趋势3 1.3、本课程设计的目的4 1.4、仪器设备4 1.5、课程设计的内容4 1.6、本设计的题目与要求4 2、总体设计4 2.1、框图设计.4 2.2、电路原理图.5 2.3、系统材料清单.5 2.3.1、AT89C51 芯片.5 2.3.2、共阳极七段数码显示管6 2.3.3、发光二极管8 2.3.4、轻触开关9 2.4、软件设计.10 2.4.1、c 语言编程 10 2.3.2、软件硬件仿真.12 3、实物焊接13 4、结束语14 5、参考文献16 6、附录17 3 1、引言 1.1 单片机基础知识 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片

3、,而是把一个计算机系统 集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。 单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电 子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、 价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与 结构的最佳选择。 现在,这种单片机的使用领域已十分广泛。彩电、冰箱、空调、录像机、VCD、遥控器、 游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地融入我们每个人的生活之中。 单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生 活带来舒适和方便

4、的同时,在工农业生产上也极大地提高了生产效率和产品质量。单片机按 用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。 MCS-51 单片机是美国 INTEL 公司于 1980 年推出的产品,与 MCS- 48 单片机相比,它 的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达 111 条, MCS-51 单片机可以算是相当成功的产品,一直到现在,MCS-51 系列或其兼容的单片机仍 是应用的主流产品,各高校及专业学校的培训教材仍与 MSC-51 单片机作为代表进行理论基 础学习。MCS-51 系列单片机主要包括 8031、8051 和 8751 等通用产品

5、。 1.2 单片机的发展趋势 单片机现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自 己的单片机,从 8 位、16 位到 32 位,数不胜数,应有尽有,有与主流 C51 系列兼容的,也 有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。现在常规的 单片机普遍都是将中央处理器(CPU) 、随机存取数据存储(RAM) 、只读程序存储器 (ROM) 、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上, 增强型的单片机集成了如 A/D 转换器、PMW(脉宽调制电路) 、WDT(看门狗) 、有些单片 机将 LCD(液晶)驱动电路都集成在单一

6、的芯片上,这样单片机包含的单元电路就更多, 功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单 片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外, 还要求其体积要小。现在的许多单片机都具有多种封装形式,其中 SMD(表面封装)越来 越受欢迎,使得由单片机构成的系统正朝微 4 型化方向发展。现在虽然单片机的品种繁多,各具特色,但仍以 89C51 为核心的单片机占 主流。 1.3 课程设计的目的 (1) 、训练学生正确地应用单片微机,培养解决工业控制、工业检测等领域具体问题的 初步能力。 (2) 、让学生通过所做课题,熟悉单片微机

7、应用系统开发、研制的过程,软硬件设计的 工作方法、工作内容、工作步骤。 (3) 、对学生进行基本技能训练,例如组成系统、编程、调试、查阅资料、绘图、编写 说明书等;使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。 1.4 仪器设备 PC 机、万用表、电烙铁等。 1.5 课程设计的内容 (1)、设计并绘制硬件电路图; (2)、购买电子元器件并按电路图焊接到电路板上; (3)、编写程序并将调试好的程序固化到单片机中。 1.6 本设计的题目与要求 (1)题目:可以调控的跑马灯 (2)要求:用 AT89S52 芯片控制跑马灯(流水灯) ,整个系统有 8 种跑马灯模式可以选 择,K1 是选择

8、模式键,同时将相应的模式在 LED 七段数码管中显示出来,K2 可以对跑马 灯的速度进行加速,K3 可以对跑马灯的速度进行减速。整个系统可以实现对跑马灯模式的 多层控制,还有加减速。 二、总体设计 2.1 框图设计 框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。同时 罗列出需要主要使用到的各个器件,以方面系统开发中器件的选取。通过框图设计,让设计 者从整体上把握系统的开发。本系统设计的框图如下图 2-1 所示。 89S52 发光二极管 按键模块 LED 5 图 2-1 系统结构框图 2.2 电路原理图 本系统由 89S52 芯片、LED 七段数码管、发光二极管、轻触开

9、关等组成,电路原理图如 图 2-2 所示; 图 2-2 系统电路原理图 2.3 系统材料清单 2.3.1、AT89C51 芯片 (1)89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器( FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS8 位微处理器,俗 称单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易 失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 8

10、9C51 是一种高效微控制器。89C 单片机 为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 6 (2)主要特性:与 MCS-51 兼容;4K 字节可编程闪烁存储器;寿命:1000 写/擦循环; 数据保留时间:10 年;全静态工作:0Hz-24MHz;三级程序存储器锁定;1288 位内部 RAM;32 可编程 I/O 线;两个 16 位定时器/计数器;5 个中断源;可编程串行通道;低功耗 的闲置和掉电模式;片内振荡器和时钟电路。 (3)结构特点:8 位 CPU;片内振荡器和时钟电路;32 根 I/O 线;外部存贮器寻址范围 ROM、RAM64K;2 个 16 位的定时器/计数器;5 个中

11、断源,两个中断优先级;全双工串行口; 布尔处理器; AT89C51 芯片图如下图 2-3 所示; 图 2-3 AT89C51 芯片图 2.3.2、共阳极数码显示管 发光二极管显示管简称 LED,具有结构简单、价格低廉、使用方便、耗电少、与单片机 接口容易等特点,在单片机应用系统使用非常普遍。一位共阳数码管结构如图 2-4 所示; 7 图 2-4 一位共阳数码管 LED 数码显示器由七段条形的发光二极管组成“ ”字形显示字段,用一只圆形的发光 二极管做小数点。LED 数码显示器中,通常将各段发光二极管的阴极或阳极连在一起做公 共端,这样可以使驱动电路简单。共阳极数码管是指发光二极管的阳极都与正极

12、接在一起, 引脚接输出端,故低电平有效,其原理图如图 2-5 所示; 图 2-5 共阳极数码管原理图 共阳极的管脚示意图如图 2-6 所示; 图 2-6 共阳极管脚示意图 8 要使 LED 数码管显示数字,只要点亮相应字段的发光二极管即可。如要显示“1” ,点亮 b、c 段;要显示“0” ,点亮 a、b、c、d、e、f 段。从图 2-5 中不难看出,对于共阳极数码 管,点亮字段则用低电平“0”来表示,所以低电平有效。这样我们就可以把要显示的数字 与一串二进制代码对应起来,即对 LED 数码显示器实现编码。由于这种编码是与显示器结构 相对应的,因此分为共阴显示码和共阳显示码两种。 不考虑小数点的

13、编码只有七位,常称为七段显示码;如果对小数点也进行编码,则称为 八段显示码。常用字符的八段显示码如图 2-7 所示; 图 2-7 常用字符的八段显示码 2.3.3、发光二极管 它是半导体二极管的一种,可以把电能转化成光能;常简写为 LED。发光二极管与普 通二极管一样是由一个 PN 结组成,所以具有单向导电性。常用的发光二极管是发红光、绿 光或黄光的二极管。它广泛应用于各种电子电路、家电、仪表等设备中、作电源指示或电平 指示。发光二极管如图 2-8 所示; 9 图 2-8 发光二极管 2.34、轻触开关 轻触开关如图 2-9 所示; 图 2-9 清触开关 轻触开关的功能说明图如图 2-10 所

14、示; 10 图 2-11 轻触按钮说明图 2.4 软件设计 本课程设计是采用 80C51 单片机设计的可以调控的跑马灯,通过 keil 进行 c 语言编程, 通过 protues 进行软件硬件仿真。本设计成果,主要通过按键开关对跑马灯进行控制,包括 跑马灯模式的选择、跑马灯模式的显示、跑马灯速度变化控制。 2.4.1、C 语言编程 (1)定义 #include #define uchar unsigned char #define uint unsigned int uchar ModeNo; uint Speed; 11 uchar TCount=0; uchar Idx; uchar mb

15、_Count=0; bit Dirtect=1; (2)段码表: uchar code DSY_CODE=0xC0,0xF9, 0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; (3)调速表 uint code sTable=0,1,3,5,7,9,15,100,200,230,300,350; (4)延时 void Delay(uint x) uchar i; while(x-) for(i=0;i8); (7)定时器 2 void T0_INT() interrupt 1 . mb_Count=(mb_Count+1)%16; 12 (8)键盘处理 void

16、 KeyProcess(uchar Key) switch(Key) if(Idx8); void T0_INT() interrupt 1 if(+TCountmb_Count);break; case 2:if(Dirtect)Led_Demo(0x000Fmb_Count); if(mb_Count=15) Dirtect=!Dirtect; break; case 4:if(Dirtect)Led_Demo(0x003Fmb_Count); if(mb_Count=15) Dirtect=!Dirtect; break; case 6:if(Dirtect)Led_Demo(0x000

17、1mb_Count); if(mb_Count=15) Dirtect=!Dirtect;break; default:break; mb_Count=(mb_Count+1)%16; void KeyProcess(uchar Key) switch(Key) case 1: Dirtect=1;mb_Count=0; ModeNo=(ModeNo+1)%8; P3=DSY_CODEModeNo;break; case 2: if(Idx1) Speed=sTable-Idx;break; case 3: 21 if(Idx15) Speed=sTable+Idx; void main() uchar Key; P0=P1=P2=P3=0xFF; ModeNo=0;Idx=4; P3=DSY_CODEModeNo; IE=0x82; TMOD=0x00; TR0=1; while(1) Key=GetKey(); if(Key!=0) KeyProcess(Key); 实物如图 6-1 所示: 22 图 6-1 实物图

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。