单片机的应用毕业论文_第1页
单片机的应用毕业论文_第2页
单片机的应用毕业论文_第3页
单片机的应用毕业论文_第4页
单片机的应用毕业论文_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

单片机的应用毕业论文大庆石油学院应用技术学院应用电子技术专业毕业论文题目单片机的应用专业:应用电子技术班级:一班学号1001330116姓名:彭伟民指导教师:张利国设计日期:2013年4月16号

摘要单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),单片机芯片常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。在全国高等学校电子信息类专业中,已普遍开设单片机及其相关课程。单片机课程是全国大中专院校电子类专业实践性,应用性和专业性很强的专业基础课程,仅在课堂上讲基本原理是不够的,必须加强实践环节让学生有足够的实践机会。其中单片机实验板就是一个很好的学习单片机的工具。目前市场上单片机实验板种类较多。此次设计的实验板是将各个单元电路合理的拼凑在一块大印刷电路板上,构成一个有机的整体。根据学生知识水平,教学内容可深可浅更加符合多层次学习单片机的需求,有利于培养学生的创新精神。关键词:单片机;实验板;接口电路;C语言目录摘要 第1章绪论 -1-1.1单片机现状及概述 -1-1.2单片机的性能特点 11.3主要产品及系列 1第2章实验板总体设计方案 错误!未定义书签。2.1实验板系统功能 错误!未定义书签。2.2AT89C51在实验板中的应用 2第3章实验板的硬件设计 33.1单片机外围电路 43.24X4矩阵键盘电路 63.3液晶显示 63.4串行通信线路 83.5I/O口扩展电路 93.6数码管动态扫描 93.7DS18B20 11第4章实验板的软件设计 134.1键盘扫描 144.2液晶显示 164.3数码管动态扫描 184.4串行通信 204.5DS18B20多路测温 24第5章实验板调试 285.1仿真调试 285.2Keil软件的使用 29参考文献 32致谢 33第1章绪论1.1单片机现状及概述单片机也叫嵌入式微控制器,属于第四代微型计算机的一个重要分支,它是把中央处理器CPU,随机存储器RAM,只读存储器ROM,定时器/计数器以及I/O接口电路等集成在电路芯片上的微型计算机。单片机自从70年代问世以来功能日趋完善。第一,单片机集成了越来越多的资源,用户不需要扩充什么资源就可以完成对项目的开发。第二,由于单片机抗干扰能力很强,使得它更适用于工业控制领域,具有更加广阔的市场前景。现在,随着计算机技术,电子技术的发展,单片机作为微型计算机的一个重要的分支已经成为了现在电子技术,计算机应用,网络,自动控制与计量测试,通信,信号处理与采集等技术等技术中非常普及的一项技术。1.2单片机的性能特点单片机作为控制系统的核心部件,除了具备通用微机CPU的数值计算功能外,还必须具有灵活强大的控制功能,以便实时监测系统的输入量,控制系统的输出量实现自动控制的目的。由于单片机主要面向工业控制,工作环境比较恶劣,例如高温,电磁干扰等。因此具有抗干扰能力强,工作温度范围宽,可靠性高,控制功能很强,指令系统比普通微机简单等优点。1.3主要产品及系列自单片机诞生的近30年中,单片机已有70多个系列,国际上较有名的有美国英特尔公司的MCS-48系列,MCS-51系列;美国ATMEL的AT89系列,东芝公司的TLCS-470系列,美国摩托罗拉公司的8位单片机主要有68HC05,68HC08,68HC11系列,16位单片机有68HC12,68HC16系列。上述产品既有很多共性,又各具有一定的特色。我国所用的单片机以MCS-51,MCS-48系列为主。

1.4实验板系统功能该实验板将各种单元电路合理的拼凑在一块大印刷电路板上,构成一个有机的整体能够为相关的学生单片机实验提供支持。本实验板可以做键盘实验,流水灯实验,温度采集实验,液晶显示及串口调试等实验。1.5AT89C51在实验板中的应用AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4KB可反复擦写的只读程序存储器和128B的随机存取数据存储器。因为AT89C51在整个实验板系统中处于核心地位,所以硬件电路设计中几乎所有元器件的选取都要依据AT89C51的性能参数来决定。例如电源电路中基于AT89C51的工作电压为+5V,所以稳压芯片选择7805系列。在软件设计中,AT89C51接收并处理键盘输入的信号,将其发给显示器件,实现液晶显示功能,或发给PC机实现串口通信功能。另一方面,它也接收上位机发送的数据处理后传送给显示器件。

第2章实验板的硬件设计外围电路是AT89C51工作的基础保障——电源电路提供稳定的+5V工作电压;时钟电路用于产生单片机工作所需要的时钟信号;复位电路是单片机实现初始化复位状态;键盘电路向系统输入运行参数,控制系统的运行状态。通过键盘扫描等程序设计把键盘输入的数据在液晶显示器上显示或者把数据发送到PC机实现串行通信。LCD电路用来显示键盘输入的数据。上位机发送到AT89C51的数据其功能也是靠硬件电路的设计和软件程序结合来实现的。串行通信电路也是为了单片机与上位机之间数据传递而设计的单片机实验板是一个实际的应用系统,能够为一般的学生单片机实验提供支持。此实验板能够实现简单的测试实验。各个部分组成如下:1单片机所需的平稳电压2时钟电路3复位电路44X4的矩阵键盘5液晶显示6串行通信电路7I/O口扩展电路DS18B20温度采集电路9数码管动态扫描红外遥控接收及其解码2.1单片机外围电路图2-2单片机的外围电路1)时钟电路时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行过程中各信号之间的相互关系.在AT89C51内部带有时钟电路,因此只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件(晶体振荡和电容),即可构成一个稳定的自激振荡器。用晶振和电容构成谐振电路。电容C1和C2容量在15~40PF之间,大小与晶振频率和工作电压有关。AT89C51的时钟电路如图所示:2)复位电路复位是单片机的初始化操作,其主要功能是使单片机从0000H单元开始执行程序。在AT89C51内部有复位电路,RST引脚是复位信号的输入端,复位方式有手动复位和自动复位两种。图2-3晶振AT89C51复位电路如图所示图2-4AT89C51复位电路3)电源电路电源是整个实验板正常工作的动力源泉。电源电压过大会大大缩短芯片的工作寿命,严重的会烧毁芯片或其他元件,过小将不能驱动整个实验板,因此设定合适的工作电压值非常重要。此实验板工作电压设定为+5V。接通电源后灯亮表示电源电路供电正常。图2-5电源电路2.24X4矩阵键盘电路键盘用于向CPU输入运行参数,控制系统的运行状态。矩阵键盘因为占用I/O口引脚较少常被按键较多的控制系统所采用。在矩阵键盘中,行线作为输入引脚与P1口的P1.0~P1.3连接,列线与P1.4~P1.7连接。键盘扫描时,首先将P1.0~P1.3置高电平P1.4~P1.7轮流扫描输入低电平。然后读P1.0~P1.3如果没有键按下则几个引脚为高电平,如果有键按下则P1.0~P1.3就有一引脚为低电平,确定哪个键按下后CPU执行相应的程序。图2-64X4矩阵键盘电路2.3液晶显示小型液晶显示器具有体积小,功耗低,显示内容丰富等特点。此实验板介绍LCD1602液晶显示模块。LCD1602属于16X2型,采用标准的14引脚或16引脚。RS为寄存器选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。R/W为读写线信号,高电平时进行读操作,低电平时进行写操作。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7为8位双向数据线。图2-7LCD1602指令表2.4串行通信线路AT89C51中的串行接口能方便的与其他计算机或串行通信的外围设备实现双机,多机通信。发送数据线TXD和接收数据线RXD均采用EIA电平。但是单片机串行口采用正逻辑的TTL电平,这样就存在TTL电平和EIA电平之间的转换问题。MAX232电平芯片实现电平转换,仅需外加四个0.1UF的电容,即可实现TTL电平和RS-232电平的互换。RS-232串口的标准为:正电平在+3~+15V,负电平在-3~-15V之间。51单片机内部集成了两个同名同地址的串口缓存区SBUF,一个发送缓存区,一个接收缓存区。其中RI为接收完成中断标志,TI为发送完成中断标志。“波特率”是串行通信的一个重要概念。所谓波特率,就是单位时间内传送的二进制的位数,单位是bit/s,51单片机的串行口有4种工作方式,可以根据需要选择相应的工作方式。图2-8串行通信线路2.5I/O口扩展电路51单片机有4个8位的并行I/O口,分别记为P0,P1,P2,P3。其中P0,P2,P3还有第二功能。2.6数码管动态扫描数码管可以显示带小数点的0~9十个数字。数码管内部有八个LED。共阳数码管使用时将COM端接高电平,各个LED的阴极a~g端接低电平时相应的笔段亮,小数点控制端dp接低电平时点亮小数点。共阴数码管使用时将COM端接低电平。数码管动态扫描显示是将所有数码管的8个笔段控制引脚并接在一起,连接到MCU的同一个I/O端口,由I/O口控制字段输出。数码管动态扫描显示方式是利用了数码管具有余辉特性和人眼的视觉暂留效应,把8个数码管按照一定的顺序逐个点亮,显然这些字符是在不同时刻出现的,而且在同一时刻只有一位显示,但只要控制好每位数码管的时间间隔就会看到一个连续稳定的显示效果。图2-9数码管动态扫描图2-10数码管显示2.7DS18B20DS18B20主要包括:寄生电源电路,64位ROM及单总线接口,高速暂存存储器RAM,温度传感器,存储温度报警上下限的E^2PROM报警触发器TH和TL,E^2PROM配置存储器,存储控制逻辑电路,8位CRC发生器。DS18B20采用高级单总线协议,利用一个控制信号执行总线通信。DS18B20的一个特点是可以在不需要外部电源供电的情况下工作。红外遥控的接收端一般使用一体化红外线接收头进行红外信号的接收,它是一种集红外线接收,放大,滤波,解调,整形于一体的集成电路,不需要任何外接元件,就能完成从红外线接收到输出与TTL信号兼容电平的所有工作,常用的一款SM0038红外接收头,其对外只有三个引脚,分别是数据输出端OUT,接地端GND,电源端VCC,与单片机接口非常方便。图2-11DS18B20外观图2-12红外(HS0038)

第3章实验板的软件设计软件总体设计实验板的软件设计是在硬件电路板的基础上,通过程序来实现的,在仿真器上调试成功后,录入AT89C51中以便实验板调用。此设计过程主要完成键盘扫描,液晶显示,数码管动态扫描,与上位机串行通信,DS18B20温度采集,红外解码,I/O口驱动,定时器及外中断的使用。程序设计一般按以下步骤进行:1分析问题分析问题就是要熟悉和明确问题的要求,明确已知条件以及对运算与控制的要求,建立数学模型。2确定算法根据实际问题的要求和指令系统的特点,选择解决问题的方法。算法是进行程序设计的依据。3设计程序流程图程序流程图是程序结构的一种图解表示法,它直观,清晰的体现了程序设计思想,是程序设计常用的一种工具。4编写程序根据流程图和指令系统编写程序。编写程序时,力求简单明了,层次清晰。5调试程序程序编写好以后必须上机调试,然后用系统进行联调修改,直至预定要求。以下是各模块的设计:3.1键盘扫描当键盘中数字键按下时,INT0引脚触发,CPU扫描P1口,接收并判断被按下是否为数字键。下面是一矩阵键盘驱动程序,采用P1口获取键值。YNYNYN返回建立无效标志建立有效标志闭合键释放?计算键值找到闭合键扫描键盘延时去键抖动有建闭合键盘扫描YNYNYN返回建立无效标志建立有效标志闭合键释放?计算键值找到闭合键扫描键盘延时去键抖动有建闭合键盘扫描按键抖动问题按下或者松开的瞬间,由于机械触点存在弹跳现象,即存在抖动现象。AT89C51CPU处理的速度是微秒级,而机械抖动的时间至少是毫秒级,所以这种现象必须消除。此实验板采用软件延迟方式实现解决按键抖动问题。*********驱动程序*******Ucharscankey(){uchartemp1,temp2;KEY=0x0f;//赋按键初值If(KEY!=0x0f)delay(5);//按键去抖If(KEY!=0x0f)//有键按下则分别取出高4位和低4位,并合成键值{temp1=KEY;KEY=0xf0;temp2=KEY;while(KEY!=0xf0);//等待按键释放return(temp1|temp2);}}矩阵键盘键号与键值对应表键号01234567键值0xee0xde0xbe0x7e0xed0xdd0xbd0x7d键号89ABCDEF键值0xeb0xdb0xbb0x7b0xe70xd70xb70x773.2液晶显示当有键按下时,显示器能够显示程序中事先编辑的数字,汉字,图形。现在有很多现成的字模软件,利用其图片取模功能,调入要显示的BMP图片,选择好取模方式,即可生成需要的图片点阵数据。注意:图像尺寸必须是128X64,否则不能正确显示图片。下面是LCD1602的C语言驱动程序。/*****LCD1602初始化函数*****/Voidini_LCD(){write_com(0x38);/8位数据接口,2行显示,5X7点阵字符write_com(0x01);/清DDRAM和AC值write_com(0x06);/数据读写操作画面不动,AC自动加1write_com(0x0c);/开显示,关光标和闪烁}/*****LCD1602忙检测*****/Voidlcd_busy(void){while(P0&0x80)/读取忙标志位BF,BF=1则一直等待{RS=0;/指令RW=1;/读操作EN=1;/使能控制EN=0;EN=1;}EN=0;}/*****向LCD1602写指令*****/Voidwrite_com(ucharLCDzhiling){Lcd_busy();/忙检测确保上一直令完成RS=0;RW=0;/写操作P0=LCDzhiling;EN=1;delay(1);EN=0;}/*****向LCD1602写数据*****/Voidwrite_dat(ucharLCDshuju){Lcd_busy();/忙检测确保上一指令完成RS=1;RW=0;P0=LCDshuju;delay(10);/改变延时长短控制写入数据的节奏EN=1;delay(1);EN=0’}3.3数码管动态扫描数码管可以显示带小数点的0~9十个数字。数码管内部有八个LED。共阳数码管使用时将COM端接高电平,各个LED的阴极a~g端接低电平时相应的笔段亮,小数点控制端dp接低电平时点亮小数点。共阴数码管使用时将COM端接低电平。数码管动态扫描显示是将所有数码管的8个笔段控制引脚并接在一起,连接到MCU的同一个I/O端口,由I/O口控制字段输出。数码管动态扫描显示方式是利用了数码管具有余辉特性和人眼的视觉暂留效应,把8个数码管按照一定的顺序逐个点亮,显然这些字符是在不同时刻出现的,而且在同一时刻只有一位显示,但只要控制好每位数码管的时间间隔就会看到一个连续稳定的显示效果。采用74HC573三态锁存器驱动段码,74HC138译码器驱动位选端。例8个数码管同时依次显示01234567图3-1数码管电路图*********************************************************#include”reg52.h”#defineucharunsignedcharUcharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/共阴数码段码表UcharcodeLED_W[8]={0,1,2,3,4,5,6,7};/位选控制/*****T0初始化程序*****/T0_ini(){TMOD=0X01;/设定T0的工作模式1开始EA=1;/开总中断开始TH0=0XF4;/装入初值,定时3ms串行寄存器TL0=0X48;串行寄存器ET0=1;/定时器0允许中断接受数据TR0=1;/启动定时器0接受数据}I=1display()I=1{N延时函数UcharI;延时函数P2=I;/位选通发送数据P0=table[i];/送段码发送数据If(++i>=8)i=0;RI=1}YRI=1/*****主程序*****/结束Voidmain()N结束{T0_ini();/初始化T0While(1);}/*****T0中断服务程序*****/Voidtimer0()interrupt1{TH0=0XF4;TL0=0X48;display();}/重装初值,定时3ms显示3.4串行通信串行通信是指通信双方的信息一位接一位的传送。按传输方向,串行通信有单工,双半工,全双工三种形式。51单片机有一个全双工的串行通信接口,能同时接收和发送数据,以异步方式进行数据传输。51单片机内部集成了两个同名同地址的串口缓冲区SBUF,一个是发送缓冲区,一个是接收缓冲区,虽然二者名字上相同但物理上相互独立。串口发送和接收事件发生时,由硬件标志来通知处理器,RI为接收完成中断标志,TI为发送完成中断标志,标志为“1”时表示事件发生。“波特率”是串行通信中的一个重要概念。所谓波特率,就是单位时间内传送的二进制数据的位数,单位是bit/s。51单片机的串行口有4种工作方式。图3-2串行通信电路图串口发送数据将数组table[6]={6,5,2,7,10,15}以2400bit/s的波特率从单片机串行口发送出去。#include”reg52.h”#defineucharunsignedchar#defineuintunsignedintUcharcodetable[6]={6,5,2,7,10,15};/定义要发送的数据Serial_ini()/串行口初始化子函数{TMOD=0x20;/TI,工作方式2TH1=0XF4;/波特率2400bit/sTL1=0XF4;SCON=0X00;/串行口工作方式1,禁止接收PCON=0x00;/SMOD为0TR1=1;/启动定时器1,用于产生串口波特率}voidserial_send()/发送数据子函数{UcharI;For(i=0;i<6;i++){SBUF=table[i];/将要发送的数据发送缓冲区While(TI==0);等待一帧数据发送完毕TI=0;将发送中断标志位清零}}main()/主函数图3-3串行通信工作原理{serial_ini();serial_send();while(1);}串口接收一个字节,送P0口的LED显示#include”reg52.h”serial_ini(){TMOD=0X20;/T1工作于方式2,自动重装载模式TH1=0XFD;/波特率9600bit/sTL1=0XFD;SCON=0X50;/串口工作于方式1,允许接收PCON=0X00;/SMOD=0TR1=1;/定时器1开始工作,用于产生串口波特率}serial_receieve(){while(RI==0);/RI为0则一直等待RI=0;P0=SBUF;}(main(){(serial_ini();While(1){serial_receieve();}}3.5DS18B20多路测温DS18B20可以在MCU的控制下将温度转换成数字量,DS18B20单总线通信功能是分时完成的,有严格的时序要求,因此读写时序非常重要。MCU要得到温度数据,必须按照单总线协议进行,协议的流程为:初始化DS18B20→发送ROM操作命令→发送RAM操作命令→处理数据。图3-4DS18B20多路测温以下是驱动程序********延时子程序********voiddelay_ms(uchart){uchari;while(t--)for(i=0;i<124;i++);}********延时函数*******voiddelay(uchari){while(i--);}*********初始DS18B20*************voidinit_DS18B20(void){ucharx=0;DQ=1;delay(8);DQ=0;delay(90);DQ=1;delay(5);x=DQ;delay(50);}******向DS18B20写入一个字节********voidwritebyte(uchardat){uchari;for(i=8;i>0;i--){DQ=0;拉低总线,开始写时隙DQ=dat&0x01;写入数据delay(8);延时等待到写时隙结束dat>>=1;DQ=1;总线回到空闲状态}}*********读入一个字节*********ucharreadbyte(void){uchari,dat;for(i=0;i<8;i++){DQ=0;下降沿自动读时隙dat>>=1;DQ=1;将总线拉高以便接收数据if(DQ)dat|=0x80;delay(8);读时序必须保持足够时间才能结束,最后自动回到高电平状态}return(dat);}**********读取温度*********voidreadtemperature(void){uchari;init_DS18B20();writebyte(0x55);发送匹配ROM命令for(i=0;i<8;i++){writebyte(DS18B20_1[i]);}发送DS18B20序列号writebyte(0x44);启动温度转换init_DS18B20();writebyte(0x55);发送匹配ROM命令for(i=0;i<8;i++){writebyte(DS18B20_1[i]);}发送18B20序列号writebyte(0xbe);发送读取暂存命令templ=readbyte();温度低字节temph=readbyte();温度高字节t=temph;t<<=8;t=t|templ;得到16位温度值init_DS18B20();writebyte(0x55);发送匹配ROM命令

温馨提示

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

评论

0/150

提交评论