单片机的应用毕业论文
更新时间:2024-05-17 16:45:01 阅读量: 综合文库 文档下载
大庆石油学院应用技
术学院
应用电子技术专业毕业论文
题 目 单片机的应用 专 业: 应用电子技术 班 级: 一班 学 号 1001330116 姓 名: 彭伟民 指导教师: 张利国 设计日期: 2013年4月16号
东北石油大学秦皇岛分校毕业论文 摘要
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit), 单片机芯片
常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
在全国高等学校电子信息类专业中,已普遍开设单片机及其相关课程。单片机课程是全国大中专院校电子类专业实践性,应用性和专业性很强的专业基础课程,仅在课堂上讲基本原理是不够的,必须加强实践环节让学生有足够的实践机会。其中单片机实验板就是一个很好的学习单片机的工具。目前市场上单片机实验板种类较多。此次设计的实验板是将各个单元电路合理的拼凑在一块大印刷电路板上,构成一个有机的整体。根据学生知识水平,教学内容可深可浅更加符合多层次学习单片机的需求,有利于培养学生的创新精神。
关键词 :单片机;实验板;接口电路;C语言
I
目 录 目录
摘要 ···································································································································
第1章绪论 ··············································································································· - 1 -
1.1单片机现状及概述 ····························································································· - 1 - 1.2单片机的性能特点 ·································································································· 1 1.3主要产品及系列 ····································································································· 1 第2章实验板总体设计方案 ····················································· 错误!未定义书签。 2.1实验板系统功能 ···································································· 错误!未定义书签。 2.2 AT89C51在实验板中的应用 ··················································································· 2 第3章实验板的硬件设计 ·························································································· 3 3.1单片机外围电路 ····································································································· 4 3.24X4矩阵键盘电路 ···································································································· 6 3.3液晶显示 ················································································································ 6 3.4串行通信线路 ········································································································· 8 3.5 I/O口扩展电路 ····································································································· 9 3.6数码管动态扫描 ····································································································· 9 3.7 DS18B20 ··············································································································· 11 第4章实验板的软件设计 ························································································ 13 4.1键盘扫描 ·············································································································· 14 4.2液晶显示 ·············································································································· 16 4.3数码管动态扫描 ··································································································· 18 4.4串行通信 ·············································································································· 20 4.5 DS18B20多路测温 ································································································· 24 第5章实验板调试 ····································································································· 28 5.1仿真调试 ·············································································································· 28 5.2 Keil 软件的使用 ·································································································· 29 参考文献 ·············································································································32 致谢 ·····················································································································33
II
东北石油大学秦皇岛分校毕业论文 第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 -
东北石油大学秦皇岛分校毕业论文
1.4 实验板系统功能
该实验板将各种单元电路合理的拼凑在一块大印刷电路板上,构成一个有机的整体能够为相关的学生单片机实验提供支持。本实验板可以做键盘实验,流水灯实验,温度采集实验,液晶显示及串口调试等实验。
1.5 AT89C51在实验板中的应用
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4KB可反复擦写的只读程序存储器和128B的随机存取数据存储器。因为AT89C51在整个实验板系统中处于核心地位,所以硬件电路设计中几乎所有元器件的选取都要依据AT89C51的性能参数来决定。例如电源电路中 基于AT89C51的工作电压为+5V,所以稳压芯片选择7805系列。在软件设计中,AT89C51接收并处理键盘输入的信号,将其发给显示器件,实现液晶显示功能,或发给PC机实现串口通信功能。另一方面,它也接收上位机发送的数据处理后传送给显示器件。
- 2 -
东北石油大学秦皇岛分校毕业论文 第2章 实验板的硬件设计
外围电路是AT89C51工作的基础保障——电源电路提供稳定的+5V工作电压;时钟电路用于产生单片机工作所需要的时钟信号;复位电路是单片机实现初始化复位状态;键盘电路向系统输入运行参数,控制系统的运行状态。通过键盘扫描等程序设计把键盘输入的数据在液晶显示器上显示或者把数据发送到PC机实现串行通信。LCD电路用来显示键盘输入的数据。上位机发送到AT89C51的数据其功能也是靠硬件电路的设计和软件程序结合来实现的。串行通信电路也是为了单片机与上位机之间数据传递而设计的
单片机实验板是一个实际的应用系统,能够为一般的学生单片机实验提供支持。此实验板能够实现简单的测试实验。 各个部分组成如下:
1 单片机所需的平稳电压 2 时钟电路 3复位电路 4 4X4的矩阵键盘 5液晶显示 6 串行通信电路 7 I/O口扩展电路 8 DS18B20温度采集电路 9 数码管动态扫描
9 红外遥控接收及其解码
- 3 -
东北石油大学秦皇岛分校毕业论文 2.1 单片机外围电路
图2-2 单片机的外围电路 1)时钟电路
时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行过程中各信号之间的相互关系. 在AT89C51内部带有时钟电路,因此只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件(晶体振荡和电容),即可构成一个稳定的自激振荡器。用晶振和电容构成谐振电路。电容C1和C2容量在15~40PF之间,大小与晶振频率和工作电压有关。AT89C51的时钟电路如图所示:
2)复位电路
复位是单片机的初始化操作,其主要功能是使单片机从0000H单元开 始执行程序。在AT89C51内部有复位电路,RST引脚是复位
信号的输入端,复位方式有手动复位和自动复位两种。 图2-3 晶振
- 4 -
东北石油大学秦皇岛分校毕业论文 AT89C51复位电路如图所示
图
2-4 AT89C51复位电路
3)电源电路
电源是整个实验板正常工作的动力源泉。电源电压过大会大大缩短芯片的工作寿命,严重的会烧毁芯片或其他元件,过小将不能驱动整个实验板,因此设定合适的工作电压值非常重要。此实验板工作电压设定为+5V。接通电源后灯亮表示电源电路供电正常。
图2-5 电源电路
- 5 -
东北石油大学秦皇岛分校毕业论文 2.2 4X4矩阵键盘电路
键盘用于向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-6 4X4矩阵键盘电路
- 6 -
东北石油大学秦皇岛分校毕业论文 2.3 液晶显示
小型液晶显示器具有体积小,功耗低,显示内容丰富等特点。此实验板介绍LCD1602液晶显示模块。LCD1602属于16X2型,采用标准的14引脚或16引脚。RS为寄存器选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。R/W为读写线信号,高电平时进行读操作,低电平时进行写操作。 E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7为8位双向数据线。
图2-7 LCD1602指令表
- 7 -
东北石油大学秦皇岛分校毕业论文
第3章实验板的软件设计
软件总体设计
实验板的软件设计是在硬件电路板的基础上,通过程序来实现的,在仿真器上调试成功后,录入AT89C51中以便实验板调用。此设计过程主要完成键盘扫描,液晶显示,数码管动态扫描,与上位机串行通信,DS18B20温度采集,红外解码,I/O口驱动,定时器及外中断的使用。 程序设计一般按以下步骤进行: 1 分析问题
分析问题就是要熟悉和明确问题的要求,明确已知条件以及对运算与控制的要求,建立数学模型。 2 确定算法
根据实际问题的要求和指令系统的特点,选择解决问题的方法。算法是进行程序设计的依据。 3设计程序流程图
程序流程图是程序结构的一种图解表示法,它直观,清晰的体现了程序设计思想,是程序设计常用的一种工具。 4 编写程序
根据流程图和指令系统编写程序。编写程序时,力求简单明了,层次清晰。 5调试程序
程序编写好以后必须上机调试,然后用系统进行联调修改,直至预定要求。 以下是各模块的设计:
13
东北石油大学秦皇岛分校毕业论文
3.1键盘扫描
当键盘中数字键按下时,INT0引脚触发,CPU扫描P1口,接收并判断被按下是否为数字键。下面是一矩阵键盘驱动程序,采用P1口获取键值。
返回 14
计算键值 找到闭合键 扫描键盘 延时去键抖动 有建闭合 键盘扫描 N Y N Y 建立无 效标志 闭合键释放? N Y 建立有效标志
东北石油大学秦皇岛分校毕业论文
按键抖动问题
按下或者松开的瞬间,由于机械触点存在弹跳现象,即存在抖动现象。AT89C51 CPU处理的速度是微秒级,而机械抖动的时间至少是毫秒级,所以这种现象必须消除。此实验板采用软件延迟方式实现解决按键抖动问题。
*********驱动程序*******
Uchar scankey() { uchar temp1,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); }
}
15
东北石油大学秦皇岛分校毕业论文 矩阵键盘键号与键值对应表
键号 键值 键号 键值 0xeb 0xdb 0xbb 0x7b 0xe7 0xd7 0xb7 0x77 8 9 A B C D E F 0xee 0xde 0xbe 0x7e 0xed 0xdd 0xbd 0x7d 0 1 2 3 4 5 6 7
3.2液晶显示
当有键按下时,显示器能够显示程序中事先编辑的数字,汉字,图形。现在有很多现成的字模软件,利用其图片取模功能,调入要显示的BMP图片,选择好取模方式,即可生成需要的图片点阵数据。注意:图像尺寸必须是128X64,否则不能正确显示图片。
下面是LCD1602的C语言驱动程序。 /*****LCD1602初始化函数*****/ Void ini_LCD()
{ write_com(0x38); /8位数据接口,2行显示,5X 7点阵字符 write_com(0x01); / 清DDRAM和AC值
write_com(0x06); /数据读写操作画面不动,AC自动加1 write_com(0x0c); /开显示,关光标和闪烁 }
/*****LCD1602忙检测*****/ Void lcd_busy(void)
16
东北石油大学秦皇岛分校毕业论文 {
while(P0&0x80) /读取忙标志位 BF, BF=1则一直等待 {
RS=0; /指令 RW=1; /读操作 EN=1; /使能控制 EN=0; EN=1; } EN=0; }
/*****向LCD1602写指令*****/ Void write_com(uchar LCDzhiling) {
Lcd_busy(); /忙检测确保上一直令完成 RS=0;
RW=0; /写操作 P0=LCDzhiling; EN=1; delay(1); EN=0; }
/*****向LCD1602写数据*****/ Void write_dat(uchar LCDshuju) {
Lcd_busy(); /忙检测确保上一指令完成 RS=1; RW=0; P0=LCDshuju;
17
东北石油大学秦皇岛分校毕业论文 {
TMOD=0X20; /T1工作于方式2,自动重装载模式 TH1=0XFD; /波特率9600bit/s TL1=0XFD;
SCON=0X50; /串口工作于方式1,允许接收 PCON=0X00; /SMOD=0
TR1=1; /定时器1开始工作,用于产生串口波特率 }
serial_receieve() {
while(RI==0); /RI为0则一直等待 RI=0; P0=SBUF; } (main() {
(serial_ini(); While(1)
{ serial_receieve();} }
23
东北石油大学秦皇岛分校毕业论文 3.5 DS18B20多路测温
DS18B20可以在MCU的控制下将温度转换成数字量,DS18B20单总线通信功能是分时完成的,有严格的时序要求,因此读写时序非常重要。MCU要得到温度数据,必须按照单总线协议进行,协议的流程为:初始化DS18B20→发送ROM操作命令→发送RAM操作命令→处理数据。
图3-4 DS18B20多路测温
24
东北石油大学秦皇岛分校毕业论文 以下是驱动程序
********延时子程序******** void delay_ms(uchar t) { uchar i; while(t--) for(i=0;i<124;i++); }
********延时函数******* void delay(uchar i) {while(i--);}
*********初始DS18B20************* void init_DS18B20(void) {
uchar x=0; DQ=1; delay(8); DQ=0; delay(90); DQ=1; delay(5); x=DQ; delay(50); }
******向DS18B20写入一个字节******** void writebyte(uchar dat) {
uchar i;
25
东北石油大学秦皇岛分校毕业论文 for(i=8;i>0;i--) {
DQ=0; 拉低总线,开始写时隙 DQ=dat&0x01; 写入数据 delay(8); 延时等待到写时隙结束 dat>>=1;
DQ=1; 总线回到空闲状态 } }
*********读入一个字节********* uchar readbyte(void) {
uchar i,dat; for(i=0;i<8;i++) {
DQ=0; 下降沿自动读时隙 dat>>=1;
DQ=1; 将总线拉高以便接收数据 if(DQ) dat|=0x80;
delay(8); 读时序必须保持足够时间才能结束,最后自动回到高电平状态 }
return(dat); }
**********读取温度********* void readtemperature(void) { uchar i; init_DS18B20();
writebyte(0x55); 发送匹配ROM命令
26
东北石油大学秦皇岛分校毕业论文 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命令 for(i=0;i<8;i++)
{writebyte(DS18B20_2[i]);} 发送DS18B20序列号 writebyte(0x44); 启动温度转换 init_DS18B20();
writebyte(0x55); 发送匹配ROM命令 for(i=0;i<8;i++)
{writebyte(DS18B20_2[i]);} 发送18B20序列号 writebyte(0xbe); 发送读取暂存命令 templ1=readbyte(); 温度低字节 temph1=readbyte(); 温度高字节 t1=temph1; t1<<=8;
t1=t1|templ1; 得到16位温度值
27
东北石油大学秦皇岛分校毕业论文 }
第4章实验板调试
4.1仿真调试
Proteus软件的学习使用,该软件具有以下特点:
1. 具有模拟电路仿真,数字电路仿真,单片机及其外围电路组成的系统的仿真,
有各种虚拟仪器,如示波器,逻辑分析仪,信号发生器等。 2. 支持主流单片机系统的仿真。
3. 提供软件调试功能。具有全速,单步,设置断点等调试功能,同时可以观察
多个变量,寄存器等的当前状态;同时支持第三方的软件编译和调试环境。 具有强大的原理图绘制功能。使用该软件进行单片机电路仿真,主要包括绘制原理图加载目标程序,仿真调试。
图4-1仿真调试界面
28
东北石油大学秦皇岛分校毕业论文
4.2 Keil 软件的使用
Keil编写程序步骤如下:
1新建工程
2新建源程序文件,可以是C语言或者汇编语言 3把源程序添加到工程中 4编译并生成HEX文件
(一) 新建工程
打开Keil软件,在菜单栏上选择Project菜单下的 new Project 新建一个文件夹。
(二) 新建源程序文件
点击菜单File→New,屏幕中央出现一个新的源程序编辑窗口如图所示
图
4-2 Keil 软件的使用
29
东北石油大学秦皇岛分校毕业论文
(三) 把源程序添加到工程中
图
4-3 添加工程1
图
4-4新建工程
图
4-5 查找文件
30
东北石油大学秦皇岛分校毕业论文 (四)
生成HEX文件
在调试无误后,需要创建一个HEX文件以便写入芯片
图
4-6生成HEX文件
31
东北石油大学秦皇岛分校毕业论文
参考文献
(1) 郑学坚 微型计算机原理及应用【M】北京 清华大学出版社 (2)潘永祥 新编单片机原理与应用【M】西安 西安电子科技大学出版社 (3)戴佳 51单片机C语言应用程序设计实例【M】 电子工业出版社
(4 ) 陈粤初 单片机应用系统设计与实践 【M】 北京 北京航空航天大学出版社 (5)杨克远 单片机应用基础教程 【M】 石油工业出版社 (6)吴王平 基于80C51单片机的计算机系统的仿真
(7)周坚 单片机轻松入门。 北京:北京航空航天大学出版社
32
东北石油大学秦皇岛分校毕业论文
致谢
本次论文是在张利国老师的精心指导下完成的。在此,向他表示衷心的感谢。在我撰写论文的过程中,老师倾注了大量的心血和汗水,无论是在论文的选题、构想和资料的收集方面,我都的到了老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养和严谨的治学经神使我终身受益。
在此还要感谢大学三年来所有老师感谢陈雷老师、原大明老师、曹雪老师、韩春娟老师等对我的教育培养。在此,我要向诸位老师深深地鞠上一躬,是你们教导我电气方面的知识,让我能完成这个设计。感谢电气信息工程系给予我们的关心和帮助,感谢其他同学在设计中提供大量的支持和帮助。 即将毕业之际,再一次向三年中在学习和生活中所有关心、支持、帮助过我的良师益友致谢。
33
东北石油大学秦皇岛分校毕业论文
致谢
本次论文是在张利国老师的精心指导下完成的。在此,向他表示衷心的感谢。在我撰写论文的过程中,老师倾注了大量的心血和汗水,无论是在论文的选题、构想和资料的收集方面,我都的到了老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养和严谨的治学经神使我终身受益。
在此还要感谢大学三年来所有老师感谢陈雷老师、原大明老师、曹雪老师、韩春娟老师等对我的教育培养。在此,我要向诸位老师深深地鞠上一躬,是你们教导我电气方面的知识,让我能完成这个设计。感谢电气信息工程系给予我们的关心和帮助,感谢其他同学在设计中提供大量的支持和帮助。 即将毕业之际,再一次向三年中在学习和生活中所有关心、支持、帮助过我的良师益友致谢。
33
正在阅读:
单片机的应用毕业论文05-17
栀子花开作文800字06-16
浅谈北师大版小学数学教材培训心得体会03-17
挑战书霸气语言02-21
我与动物的情感作文450字06-19
我的爸爸是个活雷锋作文400字06-28
旋转型灌装机设计说明书08-21
达标迎检工作安排12-26
旅游文学课程大纲12-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 单片机
- 毕业论文
- 应用
- 东莞seo外包公司
- 学前儿童科学教育部分课后思考题答案要点
- 用matlab显示图像直方图
- 空气调节工程 思考题 习题答案
- 2016年尔雅选修课 《移动互联网时代的信息安全与防护》课后作业
- Windows 2008R2 Native MPIO 存储多路径软件详解与应用
- 仁爱版七年级英语下册Unit 6 Topic 3测试题(附答案)
- 2014年广东省3+证书高职高考语文试卷(真题)和答案
- 三副考试科目_航海英语
- 北京四中2018届高三第一次模拟考试(一模)仿真卷(B卷)理综试
- Windows - 2008 - WDS部署服务 - 图文
- 行动创造结果
- 八年级数学教案-有理数的加减混合运算
- 软件测试工程师--实习报告
- 2017最新授权协议书
- 帮助学困生提高数学成绩的几点做法
- 2013届高三英语一轮复习小专题测试10
- 刘俊彤:以酸碱平衡开创中国人健康革命
- 全国华润中心万象城项目
- 景观设计说明范文