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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机课程设计.docx

1、单片机课程设计摘 要单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小但完善的微型计算机系统。该系统采用AT89C51单片机控制,可以实现多种功能组合,完成各种顺序的流水灯显示,并且操作简便,成本较低。彩色流水灯采用LED灯,灯光较亮且稳定。编程采用通用的C语言开发,并使用keilC51,proteus等开发平台进行软硬件设计。关键词:AT89C52单片机; LED; C语言IAbstract MCU is a kind of integrated

2、 circuit chips, is to use very large scale integrated circuit technology with data processing ability of the central processor CPU, RAM, RAM, read-only memory ROM, a variety of I/O mouth and interrupt system, timer/counter function integration to a piece of silicon consisting of a small but perfect

3、microcomputer system. The system uses AT89C51 single-chip microcomputer control, a combination of multiple functions can be implemented and completed, according to the sequence of flowing water light and easy to operate, low cost. Color light adopts LED lights, water lights bright and stable relativ

4、ely. Programming using common C language development, and use keilC51, proteus development platform of software and hardware design. Keywords:II AT89C52 MCU;LED;C language 摘要(4号黑体). IAbstract(4号Times New Roman).II1 绪论(4号黑体,可对应页码)1.1 课题背景(小4号黑体,与一级标题对齐).(1)1.2 系统功能.()2 方案设计2.1 方案.()2.2 方案.()2.3 方案论证.

5、()3 电路设计3.1 .()3.2 .()3.3 .()4 程序设计 4.1 .()4.2 .()4.3 . .()5 系统仿真5.1 .()5.2 .()5.3 .()参考文献.()答辩记录.()1 绪论 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。1.1 选题背

6、景与意义城市夜景中,变幻多姿的霓虹灯历来是一道亮丽的风景。利用单片机的自动控制功能,设计出相应不同的电路,可以实现彩灯不同模式的流水效果。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。本次设计根据设计要求,基本达到预期的目的,本设计利用AT89C52RC单片机的自动控制功能,并结合其它电子元器件以及软件实现的爱心彩色花样流水灯,实现不同种

7、类的闪烁循环。该设计具有实际意义,可以在建筑家居、广告业、媒体宣传、装饰业等领域得到广泛应用。1.2 系统功能 本设计以AT89C52RC单片机为核心,采用常用电子器件设计。有一个开关按键,按键控制流水灯电源开关,根据单片机所写入的程序,实现32位流水灯多种闪烁模式运行。 2 方案设计 2.1 基于数字电路设计 数字电路采用NE555产生秒脉冲信号,74LS161组成8进制计数器,74LS138进行译码,通过三极管,点亮发光二极管。需要用到芯片数量较多,电路结构较为复杂,实现功能有限。 2.2 基于PLC控制设计 PLC是一种专门为了在工业环境下应用而设计的数字运算操作装置,可被看 成是在系统

8、软件支持下的一种扫描设备。它一直周而复始地循环扫描并执行由系统软件规定好的任务。编程语言不同于其他语言,是一种简单直观的程序控制语言。功能强大,可以用于设计,但成本较高。 2.3 基于单片机系统设计 51系列单片机作为入门级单片机学习使用较为简单,需要熟练单片机的结构功能及C语言编程,可以通过编程实现多种功能,达到预期目标,并且成本较低,电路结构简单。满足设计要求且成本较低。 2.4 方案论证 数字电路不需要编程,但需要用到大量芯片与原件,简单的电路能实现的功能(流水灯循环、点亮、熄灭、顺序控制等)较少,要实现多种功能需要复杂的电路结构,不符合设计要求。PLC功能强大,电路结构较简单,编程语言

9、比较直观,但PLC及其硬件价格昂贵,成本过高,用于本次设计不太适合。而使用单片机可控制可以通过编程实现多种流水灯控制,编程使用C语言,技术成熟,稳定性高,电路结构直观简单,只需为单片机搭建最小系统即可工作。综合考虑设计难易、功能实现及成本等多方面因素,最终决定使用单片机控制32位流水灯。 3 电路设计 3.1 设计思路本次设计采用AT89C52单片机,不需外扩存储器,相当于一个带有32个LED灯的单片机最小系统,通过P0-P3口32个I/O口控制32个灯亮灭。 3.2 硬件设计 3.2.1硬件框图 89C52单片机是本次课程设计运用的主要原件。流水灯设计是用一个带有32个发光二极管的单片机最小

10、应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。如果要让接在P0.0口的LED1亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED1熄灭,就要把P0.0口的电平变为高电平;同理,接在P0.1P0.7口的其他7个LED的点亮和熄灭的方法同LED1。P1、P2、P3口同理。因此,要实现流水灯功能,我们要将发光二极管LED1LED32点亮、熄灭,32只LED灯便会一亮一暗。注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候会延时一段时间,不然将观察不到效果。闪烁的延时为50毫秒。 3.2.

11、2 元件清单元件名型号数量单片机AT89C521排阻9*1k1晶振12MHz1电解电容10F1瓷片电容20pF2电阻10K1LED1白发红8LED2白发蓝8LED3白发黄8LED4白发绿8拨动开关SS-43D061 3.3 电路原理图设计 原理图绘制使用proteus作为开发平台,既能绘图又能完成之后仿真。 3.3.1 新建设计及元件库的建立 (1)新建设计; (2)元件库的建立 按快捷键P可进入元件搜索界面,在搜索框中输入对应的关键字可以搜索到需要使用的元件,如搜索单片机输入AT89C52,即可。界面如下: (3)需要的元件库: (4)元件库建立完成。 3.3.2 单片机最小系统 (1)时钟

12、电路 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。本电路采用12MHz石英晶振。电路图如下: (2)单片机复位电路 复位方式分为上电自动复位和手动复位,电阻用于上电复位,VCC上电,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了,还可以用手动复位,此次电路使用自动复位。电路图如下: (3)单片机最小系统 单片机最小系统由上述时钟电路与复位电路组成,是驱动单片机工作的最小外围电路。电路图如下: 3.3.3 LED显示电路设计 本次设计使用32个LE

13、D发光二极管摆成心形显示,LED1-LED32分别接P0-P3口的32个引脚。由于电路板大小有限,为了美观,使用网络标号连接。由于上拉电阻作用不大,决定LED正极引脚直接接VCC电源,负极引脚接单片机I/O口,不接上拉电阻,由于P0口内部无上拉电阻,所以P0口做输入输出作用时保留P0口的外接上拉电阻以保证电路稳定运行。初始LED排列:根据设计要求,进一步调整后排列如下:P0口上拉电阻(9*1K): 3.3.4 网络标号的标注 单击界面左边工具栏的工具,按快捷键A,打开属性编辑界面,字符串框中输入net=#,计数值为1,增量为1;即从1开始标号,每次标号加1。需要连接的两端标同样的标号。开始标号

14、:标号完成: 3.3.5 完整电路原理图4 程序设计 4.1实现功能 (1)按下电源开关,执行延时程序。 (2)两边逐个亮。 (3)各端口等待两个灯顺时针回转。 (4)各端口等待两个灯逆时针回转。 (5)顺时针追尾闪动。 (6)逆时针追尾闪动。 (7)全部闪烁 (8)逆时针逐个点亮 (9)逆时针逐个灭 (10)顺时针逐个点亮 (11)顺时针逐个灭 (12)对角闪 (13)两边逐个灭 (14)顺时逐个同步亮 (15)逆时逐个同步亮 (16)顺时逐个同步灭 (17)逆时逐个同步灭 (18)间隔闪 4.2 程序 #include #include #define uint unsigned int

15、#define uchar unsigned char void zg(uint t,uchar a) uchar i,j; for(j=0;ja;j+) P0=P1=P2=P3=0xff; P0=0x7f; delay(t); for(i=0;i7;i+) P0=table1i+1; P2=table1i; delay(t); P2=0x00; P3=0x7f; P1=0xfe; delay(t); for(i=1;i8;i+) P1=table0i-1; P3=table1i; delay(t); P3=0x00; P1=0x00; delay(t); void gdkshz() ucha

16、r i,k; P0=P1=P2=P3=0xff; for(i=0;i5;i+) P2=0x3f; delay(100); for(k=0;k3;k+) P2=_cror_(P2,2); delay(100); P2=0xff; P3=0x3f; delay(100); for(k=0;k3;k+) P3=_cror_(P3,2); delay(100); P3=0xff; P1=0x3f; delay(100); for(k=0;k3;k+) P1=_cror_(P1,2); delay(100); P1=0xff; P0=0xfc; delay(100); for(k=0;k3;k+) P0

17、=_crol_(P0,2); delay(100); P0=0xff; void gdknhz() uchar i,k; P0=P1=P2=P3=0xff; for(i=0;i5;i+) P0=0x3f; delay(100); for(k=0;k3;k+) P0=_cror_(P0,2); delay(100); ; P0=0xff; P1=0xfc; delay(100); for(k=0;k3;k+) P1=_crol_(P1,2); delay(100); P1=0xff; P3=0xfc; delay(100); for(k=0;k3;k+) P3=_crol_(P3,2); del

18、ay(100); P3=0xff; P2=0xfc; delay(100); for(k=0;k3;k+) P2=_crol_(P2,2); delay(100); P2=0xff; void snszzwsd() uchar i; P0=P1=P2=P3=0xff; P0=0xe0; P2=0x07; P3=0xe0; P1=0x07; for(i=0;i32;i+) P0=_crol_(P0,1); P3=_cror_(P3,1); P2=_cror_(P2,1); P1=_cror_(P1,1); delay(40); for(i=0;i32;i+) P0=_cror_(P0,1); P

19、3=_crol_(P3,1); P1=_crol_(P1,1); P2=_crol_(P2,1); delay(40); void qs(uint t,uchar a) uchar j; P0=P1=P2=P3=0xff; for(j=0;ja;j+) P0=P1=P2=P3=0xff; delay(t); P0=P1=P2=P3=0x00; delay(t); void zgxh(uint t,uchar a) uchar i,j; for (j=0;ja;j+) P0=P1=P2=P3=0xff; for (i=0;i8;i+) P0=table1i; delay(t); for(i=0;

20、i8;i+) P1=table0i; delay(t); for(i=0;i8;i+) P3=table0i; delay(t); for(i=0;i8;i+) P2=table0i; delay(t); void nszgm(uint t,uchar a) uchar i,j; for(j=0;ja;j+) P0=P1=P2=P3=0x00; for (i=0;i7;i+) P0=table4i;delay(t); for (i=0;i8;i+) P1=table2i;delay(t); for (i=0;i8;i+) P3=table2i;delay(t); for (i=0;i8;i+)

21、 P2=table2i;delay(t); void zgxh1(uint t,uchar a) uchar i,j; for (j=0;ja;j+) P1=P2=P3=0xff; P0=0x7f; delay(t); for (i=0;i8;i+) P2=table1i; delay(t); for(i=0;i8;i+) P3=table1i; delay(t); for(i=0;i8;i+) P1=table1i; delay(t); for(i=0;i7;i+) P0=table5i; delay(t); void sszgm(uint t,uchar a) uchar i,j; for

22、(j=0;ja;j+) P0=P1=P2=P3=0x00; for (i=0;i8;i+) P2=table3i;delay(t); for (i=0;i8;i+) P3=table3i;delay(t); for (i=0;i8;i+) P1=table3i;delay(t); for (i=0;i8;i+) P0=table2i;delay(t); void djs(uint t,uchar a) uchar j; for(j=0;ja;j+) P0=P1=P2=P3=0xff; P0=P3=0x00; P1=0x7f; delay(t); P0=P1=P2=P3=0xff; P1=P2=

23、0x00; P0=0x7f; delay(t); void lbzgm(uint t,uchar a) uchar i,j; for (j=0;j1;i-) P1=table0i-1; P3=table1i-1; delay(t); P1=0xfe;P3=0xff;delay(t); P1=0xff;P2=0x01;delay(t); for(i=7;i1;i-) P0=table1i-1; P2=table1i-2; delay(t); P0=0x7f;P2=0xff;delay(t); P0=0xff;delay(t); void sztl(uint t,uchar a) uchar i,

24、j; for(j=0;ja;j+) P0=P1=P2=P3=0xff; for(i=0;i8;i+) P0=table0i; P1=P2=P3=table1i; delay(t); void nztl(uint t,uchar a) uchar i,j; for(j=0;ja;j+) P0=P1=P2=P3=0xff; for(i=0;i8;i+) P0=table1i; P1=P2=P3=table0i; delay(t); void sztm(uint t,uchar a) uchar i,j; for(j=0;ja;j+) P0=P1=P2=P3=0x00; delay(90); for

25、(i=0;i8;i+) P0=table2i; P1=P2=P3=table3i; delay(t); void nztm(uint t,uchar a) uchar i,j; for(j=0;ja;j+) P0=P1=P2=P3=0x00; delay(90); for(i=0;i8;i+) P0=table3i; P1=P2=P3=table2i; delay(t); void jgs(uint t,uchar a) uchar j; for (j=0;j0;x-) for (y=120;y0;y-); 4.3 程序调试 程序的运行环境是Keil uVision2,桌面新建一个文件夹,命名为流水灯,运行Keil uVision2软件

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1