




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第一章 设计背景3第二章 硬件设计42.1硬件组成42.2 AT89C51引脚功能42.3晶振62.4 复位状态72.5流水灯硬件原理图82.6 MCS-51系列单片机内部采用模块式结构92.7元件清单92.8程序流程图10第三章 软件编程113.1 C语言编程123.1.1 C语言程序123.1.2编程注意事项133.2仿真结果15实验总结16参考文献:17第一章 设计背景单片机的应用已经广泛的渗透到国民经济的各个领域,随着在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未有的速度被单片机智能控制系统所取代,它已经成为工科大学生的必修课程之一。单片机技术含有硬软两个方面的技术。硬件是以单片机为核心,再加以其他各元器件组成的电子电路的一个实体。它既有单片机的技术,又有电子类专业所必须的模拟数字高频电子电路的综合运用。单片机的种类繁多,目前单片机应用系统开发工具也有不少,但同一系列单片机的开发工具或实验系列基本相同。51系列单片机时目前应用最广泛的一种8为单片机之一,它具有体积小功能强成本低应用面广等优点。经过20多年的推广与发展,51系列单片机形成了一个规模庞大,功能齐全,资源丰富的产品群。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。随着电子技术的迅速发展,单片机得到了越来越多的运用。本设计用单片机8951结合LED制作了一种新型的LED流水灯控制系统的设计,以AT89C51作为主控核心,利用软件实现对LED流水灯进行控制。本系统具有体积小、硬件少、电路结构简单及容易操作等优点。本文设计的是基于单片机89C51的流水灯设计关键词:LED AT89C51单片机 控制系统 流水灯 第二章 硬件设计2.1硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.255.50V的电压工作范围和024MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位等电路和必要的软件组成的单个单片机。2.2 AT89C51引脚功能 图1 AT89C51引脚图VCC:供电电压。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA :当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出2.3晶振 晶振,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,石英晶体谐振器,简称为石英晶体或晶体、晶振;而在封装内部添加IC组成振荡电路的晶体元件称为晶体振荡器。晶振是控制CPU的时钟频率的,也就是产生高低电平的周期(产生一个高电平,和一个低电平为一个周期,)一般说来次频率越高,电脑在单位时间里处理的速度越快晶振本身并不产生振荡,但它会以一个固定的频率与外电路发生谐振,前提是外电路的振荡频率必须与晶振的固有振荡频率相一致,起码也要非常接近,否则电路将停振 此次流水灯设计,我们用1MHZ晶振和30pf的电容,它们组成一个稳定的自己振荡器。电容的大小可以影响震荡频率的高低,振荡器的稳定性和起振的快速性。为单片机提供标准时钟。图2时钟电路2.4 复位状态复位是单片机的初始化操作,其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化外,当程序运行出错或操作错误使系统处于死锁状态时,也须重新启动单片机,使其复位。 单片机复位后,除P1.0P1.7的端口锁存器被设置成FFH、堆栈指针SP设置成07H和串行口的SBUF无确定值外,其它各专用寄存器包括程序计数器PC均被设置成00H。片内RAM不受复位的影响,上电后RAM中的内容是随机的。记住这些特殊功能寄存器的复位状态,对熟悉单片机操作,简短应用程序中的初始化部分是十分必要的。 单片机的复位操作有上电自动复位和手动按键复位两种方式。上电自动复位操作要求接通电源后自动实现复位操作。如图所示。上电瞬间由于电容C上无储能,其端电压近似为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。只要高电平能保持复位所需要的时间(约两个机器周期),单片机就能实现复位。图3 复位电路2.5流水灯硬件原理图其具体硬件组成如图1所示。 图4 流水灯硬件原理图从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。2.6 MCS-51系列单片机内部采用模块式结构其结构组成框图如图所示。图5 MCS-51系列单片机组成框图由图1可见,MCS-51系列单片机主要由以下部件通过片内总线连接而成:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行输入/输出口(P0口P3口)、串行口、定时器/计数器、中断控制、总线控制及时钟电路。2.7元件清单元件规格数量电容30pf/1nf2/1电阻8220/10K16/1发光二极管2v 10mA16单片机芯片AT89C511晶振1MHz1 图6元件清单表 2.8程序流程图 程序中LIGHT7为多种亮灯方式结合循环延时子程序DELAY为100毫秒延时,延时子程序DELAY1为100毫秒延时端口P1.0P1.07控制的16个发光二极管亮灯方式程序中有标注开 始跳至主程序,设置外部中断0有效,电平触发主程序等待中断中断到来?继续等待中断P1.0=0?P1.1=0?P1.2=0?P1.3=0?P1.4=0?P1.5=0?P1.6=0?中断?继续循环D1 D2D3D4D5D6D7相应亮灯方式图7程序流程图第三章 软件编程 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现16个LED灯的循环点亮,来介绍实现流水灯控制的编程方法。3.2.1 C语言程序 在上个程序中我们是一个个控制P1.0至P1.7端口的每个来实现的,下面我们用c语言程序来控制各个端口赋值来实现P1.0至P1.7的发光二极管的亮与灭,我们将初始值11111110赋值给led,并将led赋值给P1.0端口,然后每隔100毫秒led左移一位改变P1.1端口,实现P1.0端口的灭和P1.1端口的亮,其他几个端口按此方法依次执行,实现各个端口依次亮与灭,做流水工作。当P1.7端口灭时,led又变回11111110,完成流水灯的循环工作。#include #include #define uchar unsigned char void delay_ms(uchar ms); /延时毫秒12M,ms最大值255void main() uchar led; /为P1口赋值的变量 uchar i; /循环控制变量 while(1) led = 0xfe; /初值为11111110 for(i = 0; i 7; i+) P1 = led; /led值送入P1口 delay_ms(100); /延时100ms led = _crol_(led, 1); /led值循环左移1位 for(i = 0; i 7; i+) P1 = led; /led值送入P1口 delay_ms(100); /延时100ms led = _cror_(led, 1); /led值循环左移1位 void delay_ms(uchar ms) /延时毫秒12M,ms最大值255 uchar i; while(ms-) for(i = 0 ;i124; i+); 3.2.2编程注意事项 这里需要说明的是,按从语言编写的要求,所编制的程序(下称源程序)之格式和书写要求必须依下列原则: 每行的格式应为:标号: 命令 参数 ;注释 。即一行由四部份组成,各部份的顺序不能搞错,依实际要求可以缺省其中的一部份或几部份,甚至全部省去,即空白行。需要使用标号时标号后面必须有“:”(冒号),而命令语句和参数之间必须用空格分开,如果命令有多个参数,则参数与参数之间必须用“,”(逗号)分开,需要注释时注释前必须用“;”(分号),“;”后面的语句可以写任何字符,包括汉字用于解释前面的汇编语句,它将不参与汇编,不生成代码。由于汇编程序对我们还不直观,所以在编写源程序时,应当养成多写注释的习惯,这样有助于今后源程序的阅读和维护。到此,我们做的流水灯已成功,工作原理也清楚了,我们将发光二极管的顺序改变一下,可以同时将流水灯从左向右流改为从右向左流,也可以改为两边向内流、内部向外流.,在前面学习的程序中我们让LED流水是去逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们就采用新的思路来编程。新的编程思路如下:我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后让这个数据向高位移动不就实现“流水”效果啦?的确如此!80c51指令中没有让P1数据移动的指令,但有对累加器ACC中数据左移或右移的指令,ACC在指令中常写为A,累加器A数据左移指令为RLA,累加器数据右移指令为RRA,累加器在数据传输和数据处理过程中作用十分重要,累加器ACC为8位。他可与片内所有单字节寄存器交换数据,实际上P1和其他端口在单片机中也是一个寄存器。这样我们可以将需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样同样可以实现“流水”效果。3.3仿真结果我们将程序加载到proteus中的流水灯电路中,我们就可以看到流水灯的工作,上排8个发光二极管从左往右依次循环亮和灭,然后,从右往左依次循环亮与灭,下排发光二极管从右往左依次循环亮与灭,然后,从左往右依次循环亮和灭。如图所示 图8仿真结果当上述程序之一编写好以后,我们需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码写到AT89C51单片机中,最后连接好电路通电,我们就看到LED1LED8的“流水”效果了。实验总结本次实验我选择的题目是流水灯的设计,其实流水灯就是一组灯,然后在控制系统的控制下按照一定的顺序和时间来发亮和熄灭,两者时间在一定的时间间隔下,就会形成一定的视觉效果。本次实验主要应用的是AT89C51单片机,利用其与晶振电路和复位电路进行控制发光二极管的发光与熄灭。通过本次的课程设计,使我了解到实践出真知的正确性,不光如此,这次实际它还让我更加扎实的掌握了有关单片机方面的知识。在这次课程设计中我发现最主要的还是要有明确的设计思路,清晰的分析过程有很大的作用。在设计之前,对所用AT89C51单片机的内部结构有一个系统的了解,这样才能很好地完成设计。通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019-2025年中国牛膝市场运行态势及行业发展前景预测报告
- 中国汽车传动轴行业市场运营现状及投资规划研究建议报告
- 开关控制装备项目投资可行性研究分析报告(2024-2030版)
- 2025年 常宁市市级机关遴选考试笔试试题附答案
- 渔船避风港口航道疏浚采砂工程项目可行性研究报告
- 中国楼宇工程市场竞争态势及行业投资潜力预测报告
- 中国晶圆制造设备市场全面调研及行业投资潜力预测报告
- 中国水产品干腌加工行业市场调查研究及投资前景预测报告
- 玻璃调棒行业深度研究分析报告(2024-2030版)
- 中国高密度聚乙烯薄膜行业调查报告
- 2023年镀层和化学覆盖层技术要求规范(铝合金化学导电氧化)
- 南宁市信息化大楼工程建设项目可行性研究报告
- 管 制 刀 具课件
- 生物多样性保护与建设项目可行性研究报告
- 健康减肥调脂降糖
- LaTeX科技排版课件
- 2023年河北交通投资集团有限公司招聘笔试题库及答案解析
- 反向传播算法课件
- 企业质量安全主体责任
- 南模自招试卷-2012年自主招生
- 数据仓库开发规范
评论
0/150
提交评论