单片机课程设计_定时器控制4只LED滚动闪烁_报告正文_第1页
单片机课程设计_定时器控制4只LED滚动闪烁_报告正文_第2页
单片机课程设计_定时器控制4只LED滚动闪烁_报告正文_第3页
单片机课程设计_定时器控制4只LED滚动闪烁_报告正文_第4页
单片机课程设计_定时器控制4只LED滚动闪烁_报告正文_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、目录1 设计目的设计目的 .11.1 设计目的.11.2 设计内容和要求.11.3 设计思路.12 2 软硬件开发平台软硬件开发平台 .22.1ALTIUM DESINGER硬件电路开发平台.22.2 KEIL UVISION2 程序开发平台.32.3 PROTEUS仿真软件.33 设计原理分析设计原理分析 .53.1 定时器控制 4 只 LED 滚动闪烁系统设计 .53.2 定时器控制 4 只 LED 滚动闪烁系统的功能要求 .53.2.1 计时显示.53.2.2 中断设置.53.3 定时器控制 4 只 LED 滚动闪烁制系统的基本构成及原理 .54 4 系统硬件电路的设计系统硬件电路的设计

2、 .74.1 系统硬件总电路构成及原理.74.2 主控制部分AT89C51 单片机简介.74.2.1 AT89C51 的内部结构功能.84.2.2 51 单片机的串行接口工作方式.94.3 其它器件.104.4 定时器控制 4 只 LED 滚动闪烁控制系统原理图 .104.5 设计的连线图:.114.5.1 单片机实物图:.114.6 硬件资源及其分配.114.7 运行步骤.124.8 检测与调试.124.8.1 硬件调试:.124.8.2 软件调试:.135 系统软件程序的简单设计系统软件程序的简单设计 .145.1 程序框图.145.2 程序流程图及程序.155.2.1 程序流程图:.15

3、5.2.2 程序清单:.155.2.3 仿真结果图:.17结结 论论 .18参考文献参考文献 .19XXXX 大学课程设计1i1 设计目的1.1 设计目的1、通过单片机课程设计,熟练掌握 C 语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。 2、通过定时器控制 4 只 LED 滚动闪烁系统的设计,掌握定时/计数器的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力。1.2 设计内容和要求 内容:设计一个能够控制 4 盏 LED 灯的模拟系统。 要求:利用单片机的定时器定时,令 4 盏 LED 灯交替点亮和熄灭。1.3 设计思路1.先熟悉实验原理,了解 4 只 LED 滚动

4、闪烁系统灯的工作过程,组成滚动闪烁系统需要的组件。2.了解各个硬件的工作原理, 3.绘制电路原理图,编写程序,并进行仿真,基本实现 LED 滚动闪烁系统灯的功能。 XXXX 大学课程设计22 软硬件开发平台2.1Altium Desinger 硬件电路开发平台Altium Desinger 硬件电路设计软件介绍。Altium Designer 是原 Protel 软件开发商 Altium 公司推出的一体化的电子产品开发系统,主要运行在 Windows XP操作系统。这套软件通过把原理图设计、电路仿真、PCB 绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全

5、新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高6。硬件开发平台简介:电路设计自动化 EDA(Electronic Design Automation)指的就是将电路设计中各种工作交由计算机来协助完成。如电路原理图(Schematic)的绘制、印刷电路板(PCB)文件的制作、执行电路仿真(Simulation)等设计工作。随着电子科技的蓬勃发展,新型元器件层出不穷,电子线路变得越来越复杂,电路的设计工作已经无法单纯依靠手工来完成,电子线路计算机辅助设计已经成为必然趋势,越来越多的设计人员使用快捷、高效的 CAD 设计软件来进行辅助电路原理图、印制电

6、路板图的设计,打印各种报表。Altium Designer 是原 Protel 软件开发商 Altium 公司推出的一体化的电子产品开发系统,主要运行在 Windows XP 操作系统。这套软件通过把原理图设计、电路仿真、PCB 绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。Altium Designer 除了全面继承包括 Protel 99SE、Protel DXP 在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传

7、统界面,全面集成了 FPGA 设计功能和 SOPC 设计实现功能,从而允许工程设计人员能将系统设计中的 FPGA 与 PCB 设计及嵌入式设计集成在一起。 由于 Altium Designer 在继承先前 Protel 软件功能的基础上,综合了 FPGA 设计和嵌入式系统软件设计功能,Altium Designer 对计算机的系统需求比先前的版本要高一些。XXXX 大学课程设计3开发平台系统功能:硬件开发平台主要有下面几个主要功能:1 原理图设计;2 印刷电路板设计;3 FPGA 的开发;4 嵌入式开发等等。2.2 Keil uVision2 程序开发平台Keil uVision2 软件开发平

8、台简介1。软件开发平台介绍: Keil uVision2 是德国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,使用接近于传统 c 语言的语法来开发,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。KEILC51 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语言环境,同时保留了汇编代码高效,快速的特点。C51 编译器的功能不断增强, 使你可以更加贴近 CPU 本身,及其它的衍生产品。C51 已被

9、完全集成到 uVision2 的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE 可为它们提供单一而灵活的开发环境。软件系统功能:Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面,使您能在很短的时间内就能学会使用 keil c51 来开发单片机应用程序 。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优越性。2.3 Proteus 仿真软件Proteus 软

10、件简介1。软件开发平台介绍:Proteus 是世界上著名的 EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和XXXX 大学课程设计4MSP430 等,2010 年又增加了 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR、Keil 和 MPLAB 等多种编

11、译器。仿真软件系统功能:Proteus 软件具有其它 EDA 工具软件(例:multisim)的功能。这些功能主要是:1原理布图 2PCB 自动或人工布线 3SPICE 电路仿真。丰富的器件库:超过 27000 种元器件,可方便地创建新元件;智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件和总线布线使电路设计简明清晰;可输出高质量图纸:通过个性化设置,可以生成印刷质量的 BMP 图纸,可以方便地供 WORD、POWERPOINT 等多种文档使用。在 PROTEUS 绘制好原理图后,调入已编译好的

12、目标代码文件:*.HEX,可以在 PROTEUS 的原理图中看到模拟的实物运行状态和过程。XXXX 大学课程设计53 设计原理分析3.1 定时器控制 4 只 LED 滚动闪烁系统设计通过编写程序,实现对发光二极管的控制,来 4 只 LED 滚动闪烁灯的管理。每延时一段时间,灯的显示情况都会按 LED 灯的显示规律进行状态转换。采用单片机内部的 I/O 口上的 P0 口中的 4 个引脚即可来控制 4 个 LED 灯1。3.2 定时器控制 4 只 LED 滚动闪烁系统的功能要求本设计能模拟基本的 LED 滚动闪烁系统,是用中断的方式定时控制 LED 定的闪烁及滚动。 3.2.1 计时显示定时/计数

13、器工作方式寄存器,定时器采用 T0 定时器 0 工作于模式 2 位数:8 位计数范围:0-255 具有自动加载功能。 3.2.2 中断设置 每累计若干次定时器中断才执行一次闪烁。3.3 定时器控制 4 只 LED 滚动闪烁制系统的基本构成及原理单片机设 LED 灯闪烁系统,可用单片机直接控制信号灯的状态变化可以广泛的应用到商业和工业的流程控制测电路当中1。单片机晶振LED 灯复位电路图 3.1 系统的总体框图据此,本设计系统以单片机为控制核心,连接成最小系统。系统的总体框图如上所示。因为它能够准确地划分成时钟频率,与 UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(1

14、9600,19200),不管多么古怪的XXXX 大学课程设计6值,这些晶振都是准确,常被使用的。当定时器 1 被用作波特率发生器时,波特率工作于方式 1 和方式 3 是由定时器 1 的溢出率和 SMOD 的值(PCON.7-双倍速波特率)决定:方式 1、3 波特率= (定时器 1 的溢出率) 特殊时,定时器被设在自动重袋模式(模式 2,TMOD 的高四位为 0100B),其为:方式 1、 3 波特率= 11.0592MHZ 晶振的一些典型波特率如下:波特率 SMOD TH1 19200 1 0FDH 9600 0 0FDH 4800 0 0FAH2400 0 0F4H 1200 0 0E8H

15、300 0 0A0H更换一种计算方式,它将以修改公式达到我们需求的波特率来计算出晶振。最小晶振频率=波特率 x 384 x 2SMOD 这就是我们所需波特率的最小晶振频率,此频率能成倍增加达到我们需求的时钟频率2。 XXXX 大学课程设计74 系统硬件电路的设计4.1 系统硬件总电路构成及原理实现本设计要求的具体功能,可以选用 AT89S51 单片机及外围器件构成最小控制系统,4 个发光二极管分成 1 组红绿蓝黄 4 灯构成信号灯指示模块等。主要器件的选择: 表 4-1 元器件表器件个数LED 4晶振(11.0592)1电阻若干电容34.2 主控制部分AT89C51 单片机简介 89C51 是

16、一种带 4K 字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。A

17、T89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 单片机为 40 引脚双列直插芯片,有 4 个 I/O 口,P0 ,P1, P2, P3,单片机的最小系统如图所示,18 引脚和 19 引脚接时钟脉冲电路,XTAL1 接外部晶振和微调电容的一端,在片内它是震荡器倒相放大器的输入,XTAL2 接外部晶振和微调电容的另一端,在片内她是振荡器倒相放大器的输出端,第引脚为复位输入端,接上电容,电阻及开关后构成上电复位电路,20 引脚为接地端,40 引脚为电源端4。XXXX 大学课程设计8如图所示: 图 4.1 晶振与单片机的连接4.2.1 AT89C51 的内部结构功能

18、 中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作4。 数据存储器(内部 RAM): 数据存储器用于存放变化的数据。AT89S51 中数据存储器的地址空间为 256个 RAM 单元,但其中能作为数据存储器供用户使用的仅有前面 128 个,后 128个被专用寄存器占用4。 程序存储器(内部 ROM): 程序存储器用于存放程序和固定不变的常数等。通常采用只读存储器,且其又多种类型,在 89 系列单片机中全部采用闪存。AT89C51 内部配置了 4

19、KB 闪存。 定时/计数器(T0):XXXX 大学课程设计9 定时/计数器用于实现定时和计数功能。AT89C51 共有 2 个 16 位定时/计数器。 并行输入输出(I/O)口: 8051 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的传输。 每个口都由 1 个锁存器和一个驱动器组成。它们主要用于实现与外部设备中数据的并行输入与输出,有些 I/O 口还有其他功能6。 全双工串行口: A89C51 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 时钟电路: 时钟电路的作用是产生单片机工作所需

20、要的时钟脉冲序列1。 中断系统: 中断系统的作用主要是对外部或内部的终端请求进行管 AT89C51 共有 5 个中断源,其中有 2 个外部中断源和 3 个内部中断源。 4.2.2 51 单片机的串行接口工作方式51 单片机的串行接口有四种工作方式6。方式 0 是将 SBUF 作为 8 位同步移位寄存器使用(固定波特率) ;方式 1 是 10 位异步通信方式(可变波特率) ;方式 2 是 11 位异步通信方式(固定波特率) ;方式 3 是 11 位异步通信方式(可变波特率) 。图 4.2串行接口与单片机的连接 XXXX 大学课程设计10 4.3 其它器件发光二极管根据本设计的特点,LED 的显示

21、不可少,LED 的显示采用普通的发光二极管。在硬件上连接图上也是对称分布的,如下图 3.3 所示。图 4.3 LED 灯的连接在本设计中,实际控制的灯只有 4 个,其中均是低电平有效,所以在运行前LED 灯的状态是灭。4.4 定时器控制 4 只 LED 滚动闪烁控制系统原理图 本系统以单片机为核心,系统硬件电路由单片机,电阻,LED 显示组成。其具体的硬件电路总图如图 3.4 所示。图 4.4 系统原理XXXX 大学课程设计114.5 设计的连线图:4.5.1 单片机实物图:图 4.5 实物图 4.6 硬件资源及其分配 主要用到的硬件:P0 口、LED 发光二极管、定时器 T0。硬件分配:(1

22、)P1 口:做为输出口,与发光二极管相连接。(2)定时/计数器 T0 用来产生 1 秒的定时。4.7 运行步骤1、接硬件图接线,为了确保 LED 灯能够对应显示,实验时,对 P0 口的接XXXX 大学课程设计12线做了调整。即,P0.0 接 L1,P0.1 接 L2,P0.2 接 L3,P0.3 接 L4。2、开始连续运行,观察 4 个 LED 灯是与程序设计思路对应,如果有偏差,则单步运行或断点运行,进行调试,直至满足设计要求。3、整体运行,观察 LED 显示是否都符合要求,如果不符合,则再调试。直至满足要求。4.8 检测与调试 4.8.1 硬件调试:硬件调试是利用开发系统、基本测试仪器(万

23、用表、示波器等) , 检查用户系统硬件中存在的故障。 硬件调试可分为静态调试与动态调试两步进行7。 静态调试 静态调试是在用户系统未工作时的一种硬件检测。 第一步:目测。检查外部的各种元件或者是电路是否有断点。 第二步:用万用表测试。先用万用表复核目测中有疑问的连接点, 再检测各种电源线与地线之间是否有短路现象。 第三步:加电检测。给板加电,检测所有的插座或是器件的电源端是否符合要求的值 第四步:是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。 动态调试 动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方

24、法是由近及远、由分到合。 由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的 器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。 XXXX 大学课程设计13由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。4.8.2 软件调试: 软件调试是通过对拥护程序的编译 、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠

25、正的过程。编完 程序后,编辑,查看程序是否有逻辑的错误9。 XXXX 大学课程设计145 系统软件程序的简单设计系统软件程序的简单设计5.1 程序框图 开始 初始化,全灭 蓝灯亮,开始闪烁 延时 蓝灯灭,绿灯亮,开始闪烁 延时绿灯灭,红灯亮,开始闪烁 延时 红灯灭,黄灯亮,开始闪烁 延时图 5.1 程序框图XXXX 大学课程设计155.2 程序流程图及程序5.2.1 程序流程图: 开始 初始化 设置计数器i=0;i+_LED 灯开始循环闪烁 计数器开始计数计数完成程序中断,i 自加 1,下一个 LED 灯开始闪烁否否图 5.2 程序流程图5.2.2 程序清单:主程序:#include /定义

26、8051 寄存器的头文件#define uchar unsigned char /定义无符号字符型(0255)#define uint unsigned int /定义无符号整型(065535)/字符与整型分为有符号(signed)与无符号(unsigned)两类/通常 sbit 数据类型是用于存取内部可位寻址的数据存储器sbit B1=P00; /声明 B1 为 P1.0 端口sbit G1=P01;sbit R1=P02;sbit Y1=P03;/若要使用权 sbit 数据类型,则其声明方式有下列几种:/1.先声明一个 bdata 存储器形式的变量,再声明属于该变量的 sbit 变量,例如

27、:/char bdata scan; 声明 scan 为 bdata 存储器类型的字符XXXX 大学课程设计16/sbit input_0=scan0; 声明 input_0 为 scan 变量的 bit 0/2.先声明一个 sfr 变量,再声明属于该变量的 sbit 变量,例如:/sfr P0=0 x80; 声明 P0 为 0X80 存储器位置,即 P0/sbit P0_0=P00;声明 P0_0 为 P0 变量的 bit0/3.直接指定存储器位置,例如要声明 P0 的 bit0,则/sbit P0_0=0X800; 声明 P0_0 为 0 x80 地址的 bit0uint i,j,k;/-

28、/主程序/-void main() /主程序开始i=j=k=0;P0=0 xff; /开始时全部关闭TMOD=0X02; /定时/计数器工作方式寄存器低 4 位/T0 定时器 0 工作于模式 2 位数:8 位计数范围:0-255 具有自动加载功能TH0=256-200;/200us 定时TL0=256-200;IE=0X82; /中断使能寄存器 IE,相当于 EA=1;ET0=1;TR0=1; /定时器/计数器控制寄存器 TCOD Timer0 的启动开关while(1); /无穷循环 /-/T0 中断函数/-void LED_Flash_and_Scroll() interrupt 1 /每

29、累计若干次定时器中断才执行一次闪烁if(+k35)return; /if 条件语句k=0;switch(i)/多分支选择语句,switch 语句开始 case 0:B1=!B1;/蓝灯闪烁break; /终止执行 switch 或循环语句case 1:G1=!G1;/绿灯闪烁break;case 2:R1=!R1; /红灯闪烁break;case 3:Y1=!Y1; /黄灯闪烁break; /退出 switch 语句default:i=0;if(+j300) /每次 LED 持续闪烁一段时间return;/从函数返回语句XXXX 大学课程设计17j=0;P0=0 xff; /关闭显示i+;/切换到下一 LED/符号:+ ,功能: 加 1 ,范例:i+ ,说明:执行运算后再将 X 变量的值加 1/符号:-

温馨提示

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

评论

0/150

提交评论