单片机的应用毕业论文
大庆石油学院应用技
术学院
应用电子技术专业毕业论文
题 目 单片机的应用 专 业: 应用电子技术 班 级: 一班 学 号 1001330116 姓 名: 彭伟民 指导教师: 张利国 设计日期: 2013年4月16号
摘要
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit), 单片机芯片
常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
在全国高等学校电子信息类专业中,已普遍开设单片机及其相关课程。单片机课程是全国大中专院校电子类专业实践性,应用性和专业性很强的专业基础课程,仅在课堂上
讲基本原理是不够的,必须加强实践环节让学生有足够的实践机会。其中单片机实验板就是一个很好的学习单片机的工具。目前市场上单片机实验板种类较多。此次设计的实验板是将各个单元电路合理的拼凑在一块大印刷电路板上,构成一个有机的整体。根据学生知识水平,教学内容可深可浅更加符合多层次学习单片机的需求,有利于培养学生的创新精神。
关键词 :单片机;实验板;接口电路;C语言
目 录 目录
摘要
·····················································
··········································· - 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
第1章绪论
东北石油大学秦皇岛分校毕业论文 第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系列为主。
东北石油大学秦皇岛分校毕业论文
该实验板将各种单元电路合理的拼凑在一块大印刷电路板上,构成一个有机的整体能够为相关的学生单片机实验提供支持。本实验板可以做键盘实验,流水灯实验,温
度采集实验,液晶显示及串口调试等实验。 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4KB可反复擦写的只读程序存储器和128B的随机存取数据存储器。因为AT89C51在整个实验板系统中处于核心地位,所以硬件电路设计中几乎所有元器件的选取都要依据AT89C51的性能参数来决定。例如电源电路中 基于AT89C51的工作电压为+5V,所以稳压芯片选择7805系列。在软件设计中,AT89C51接收并处理键盘输入的信号,将其发给显示器件,实现液晶显示功能,或发给PC机实现串口通信功能。另一方面,它也接收上位机发送的数据处理后传送给显示器件。
1.5 AT89C51在实验板中的应用
1.4 实验板系统功能
东北石油大学秦皇岛分校毕业论文 第2章 实验板的硬件设计
外围电路是AT89C51工作的基础保障——电源电路提供稳定的+5V工作电压;时钟电路用于产生单片机工作所需要的时钟信号;复位电路是单片机实现初始化复位状态;键盘电路向系统输入运行参数,控制系统的运行状态。通过键盘扫描等程序设计把键盘输入的数据在液晶显示器上显示或者把数据发送到PC机实现串行通信。LCD电路用来显示键盘输入的数据。上位机发送到AT89C51的数据其功能也是靠硬件电路的设计和软件程序结合来实现的。串行通信电路也是为了单片机与上位机之间数据传递而设计的 单片机实验板是一个实际的应用系统,能够为一般的学生单片机实验提供支持。此实验板能够实现简单的测试实验。 各个部分组成如下:
东北石油大学秦皇岛分校毕业论文 1 单片机所需的平稳电压 2 时钟电路 3复位电路 4 4X4的矩阵键盘 5液晶显示 6 串行通信电路 7 I/O口扩展电路 8 DS18B20温度采集电路 9 数码管动态扫描
9
红外遥控接收及其解码
东北石油大学秦皇岛分校毕业论文 2.1 单片机外围电路
图2-2 单片机的外围电路 1)时钟电路
时钟电路用于产生单片机工作所需的时钟信号,时序是指令执行过程中各信号之间的相互关系. 在AT89C51内部带有时钟电路,因此只需要在片外通过XTAL1和XTAL2引脚接入定时控制元件(晶体振荡和电容),即可
东北石油大学秦皇岛分校毕业论文 构成一个稳定的自激振荡器。用晶振和电容构成谐振电路。电容C1和C2容量在15~40PF之间,大小与晶振频率和工作电压有关。AT89C51的时钟电路如图所示:
2)复位电路
复位是单片机的初始化操作,其主要功能是使单片机从0000H单元开 始执行程序。在AT89C51内部有复位电路,RST引脚是复位信号的输入端,复位方式有手动复位和自动复位两种。图
2-3 晶振
AT89C51复
东北石油大学秦皇岛分校毕业论文 位电路如图所示
图2-4 AT89C51复位电路
3)电源电路
电源是整个实验板正常工作的动力源泉。电源电压过大会大大缩短芯片的工作寿命,严重的会烧毁芯片或其他元件,过小将不能驱动整个实验板,因此设定合适的工作电压值非常重要。此实验板工作电压设定为+5V。接通电源后灯亮表示电源电路供电正常。
东北石油大学秦皇岛分校毕业论文
图2-5 电源电路
2.2 4X4矩阵键盘电路
东北石油大学秦皇岛分校毕业论文 图2-6 4X4矩阵键盘电路
2.3 液晶显示
小型液晶显示器具有体积小,功耗低,显示内容丰富等特点。此实验板介绍LCD1602液晶显示模块。LCD1602属于16X2型,采用
东北石油大学秦皇岛分校毕业论文 标准的14引脚或16引脚。RS为寄存器选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。R/W为读写线信号,高电平时进行读操作,低电平时进行写操作。 E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7为8位双向数据
线。
图2-7 LCD1602指令表
东北石油大学秦皇岛分校毕业论文 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.5 I/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.7 DS18B20
DS18B20主要包括: 寄生电源电路,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口获取键值。
键盘扫描 有建闭合 N Y
找到闭合键 延时去键抖动 扫描键盘 N Y 计算键值
建立N 闭合键释放?
东北石油大学秦皇岛分校毕业论文
东北石油大学秦皇岛分校毕业论文
按键抖动问题
按下或者松开的瞬间,由于机械触点存在弹跳现象,即存在抖动现象。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); }
}
矩阵键盘键号与键值对应表
键0 号 1 2 3 4 5 6 7 键0x0x0x0x0x0x0x0x
东北石油大学秦皇岛分校毕业论文 值 ee de be 7e ed dd bd 7d 键8 号 键0x0x0x0x0x0x0x0x值 eb db bb 7b e7 d7 b7 77
9 A B C D E F 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) {
东北石油大学秦皇岛分校毕业论文 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;
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”
#define uchar unsigned char Uchar
code
table[10]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /共阴数码段码表
Uchar code LED_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 }
display()
I=1 接受数据 串行寄存器 Y
{ N
东北石油大学秦皇岛分校毕业论文 Uchar I; P2=I; /位选通 P0=table[i]; /送段码 If(++i>=8) i=0;
延时函数 发送数据 }
RI=1 Y
/*****主程序*****/ Void N
{
T0_ini(); /初始化T0 While(1);
}
/*****T0中断服务程序*****/ Void timer0() interrupt 1
{ TH0=0XF4;TL0=0X48;display();} /重装初值,定时3ms显示
结束 main()
东北石油大学秦皇岛分校毕业论文 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”
#define uchar unsigned char #define uint unsigned int
Uchar code table[6]={6,5,2,7,10,15}; /定义要发送的数据
Serial_ini() /串行口初始化子函数 {
TMOD=0x20; /TI,工作方式2 TH1=0XF4; /波特率2400bit/s TL1=0XF4;
SCON=0X00; /串行口工作方式1,禁止接收 PCON=0x00; /SMOD为0
TR1=1; /启动定时器1,用于产生串口波特率
东北石油大学秦皇岛分校毕业论文 }
void serial_send() /发送数据子函数 { Uchar I;
For (i=0;i<6;i++) { SBUF=table[i]; /将要发送的数据发送缓冲区
While(TI==0); 等待一帧数据发送完毕
东北石油大学秦皇岛分校毕业论文 TI=0; 将发送中断标志位清零 } }
main() /主函数
信工作原理 { serial_ini(); serial_send(); while(1); }
串口接收一个字节,送#include”reg52.h”
图3-3串行通
P0口的LED显示
东北石油大学秦皇岛分校毕业论文 serial_ini() {
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();} }
东北石油大学秦皇岛分校毕业论文
3.5 DS18B20多路测温
DS18B20可以在MCU的控制下将温度转换成数字量,DS18B20单总线通信功能是分时完
东北石油大学秦皇岛分校毕业论文 成的,有严格的时序要求,因此读写时序非常重要。MCU要得到温度数据,必须按照单总线协议进行,协议的流程为:初始化DS18B20→发送ROM操作命令→发送RAM操作命令→处理数据。
图3-4 DS18B20多路测温
以下是驱动程序
********延时子程序******** 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; 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命令
东北石油大学秦皇岛分校毕业论文 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位温度值 }
第4章实验板调试
4.1仿真调试
Proteus软件的学习使用,该软件具有以下特点:
1. 具有模拟电路仿真,数字电路仿真,单片机及其外围电路组成的系统的仿真,有各种虚拟仪器,如示波器,逻辑分析仪,信号发生器等。
东北石油大学秦皇岛分校毕业论文 2. 支持主流单片机系统的仿真。
3. 提供软件调试功能。具有全速,单步,设置断点等调试功能,同时可以观察多个变量,寄存器等的当前状态;同时支持第三方的软件编译和调试环境。 具有强大的原理图绘制功能。使用该软件
进行单片机电路仿真,主要包括绘制原理图加载目标程序,仿真调试。
图4-1仿真调
东北石油大学秦皇岛分校毕业论文 试界面
4.2 Keil 软件的使用
Keil编写程序步骤如下:
1新建工程
2新建源程序文件,可以是C语言或者汇编语言 3把源程序添加到工程中 4编译并生成HEX文件
(一) 新建工程
打开Keil软件,在菜单栏上选择Project菜单下的 new Project 新建一个文件夹。
(二) 新建源程序文件
点击菜单File→New,屏幕中央出现一个新的源程序编辑窗口如图所示
东北石油大学秦皇岛分校毕业论文
图4-2 Keil 软件的使用
(三) 把源程序添加到工程中
东北石油大学秦皇岛分校毕业论文
图4-3 添加工程1
图4-4新建工程
图4-5 查找文件
东北石油大学秦皇岛分校毕业论文
(四) 生成HEX文件
在调试无误后,
需要创建一个HEX文件以便写入芯片
东北石油大学秦皇岛分校毕业论文 第二章
图4-6生成HEX文件
参考文献
(1) 郑学坚 微型计算机原理及应用【M】北京 清华大学出版社
东北石油大学秦皇岛分校毕业论文 (2)潘永祥 新编单片机原理与应用【M】西安 西安电子科技大学出版社
(3)戴佳 51单片机C语言应用程序设计实例【M】 电子工业出版社
(4 ) 陈粤初 单片机应用系统设计与实践 【M】 北京 北京航空航天大学出版社 (5)杨克远 单片机应用基础教程 【M】 石油工业出版社
(6)吴王平 基于80C51单片机的计算机系统的仿真
(7)周坚 单片机轻松入门。 北京:北京航空航天大学出版社
东北石油大学秦皇岛分校毕业论文
致谢
本次论文是在张利国老师的精心指导下完成的。在此,向他表示衷心的感谢。在我撰写论文的过程中,老师倾注了大量的心血和汗水,无论是在论文的选题、构想和资料的收集方面,我都的到了老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养和严谨的治学经神使我终身受益。
在此还要感谢大学三年来所有老师感谢陈雷老师、原大明老师、曹雪老师、韩春娟老师等对我的教育培养。在此,我要向诸位老师深深地鞠上一躬,是你们教导我电气方面的知识,让我能完成这个设计。感谢电气信息工程系给予我们的关心和帮助,感谢其他同学在设计中提供大量的支持和帮助。
即将毕业之际,再一次向三年中在学习和生活中所有关心、支持、帮助过我的良师益友致谢。
因篇幅问题不能全部显示,请点此查看更多更全内容