苏州市职业大学 基于51单片机的GPS定位系统的设计Word文件下载.docx
《苏州市职业大学 基于51单片机的GPS定位系统的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《苏州市职业大学 基于51单片机的GPS定位系统的设计Word文件下载.docx(38页珍藏版)》请在冰点文库上搜索。
四、实习(实训)具体安排
1、指导教师概述系统功能、结构以及工作原理,说明安全注意事项、实训报告书写规范。
--2课时
2、了解EL-MUT-III型单片机实验箱、8051CPU模块以及GPS扩展模块的结构和主要功能。
3、根据设计要求,连接各个系统模块。
4、利用keil3编写软件程序。
--6课时
5、系统调试并记录测量数据。
--4课时
6、完成实训报告。
7、指导教师逐个检查实验并收实训报告。
五、实习(实训)报告内容
1、系统概述
2、系统结构(硬件电路、软件设计)
3、测试结果及分析
4、实验总结
5、参考文献
第一章51单片机概述
1.1单片机概述
单片机一词最初源于“singleChipMicrocomputer”,简称SCM。
在单片机诞生时,因为它的组成与原理都基于计算机,所以SCM是一个准确的、流行的称谓。
随着SCM在技术上、体系结构上的不断进步,使其控制功能不断扩展,它的主要作用已不是计算,而是控制。
国际上也逐渐采用“MCU”(MicroControllerUnit),即微控制器来代替SCM,形成了单片机界公认的、最终统一的名词。
单片机是微型机的一个主要分支,它在结构上的最大特点是把CPU、存储器、定时器和多种输入/输出接口电路集成在一块超大规模集成电路芯片上。
就其组成和基本工作原理而言,一块单片机芯片就是一台计算机。
其内部总线包括地址总线(AB)、数据总线(DB)、控制总线(CB)。
Intel公司在MCS-48基础上推出了完善的、典型的MCS-51单片机系列。
80C51系列单片机是在MCS-51系列单片机的基础上发展起来的。
1998年以后,80C51系列单片机又出现一个新的分支,称为AT89系列单片机。
AT89系列单片机的引脚和80C51是样的,所提,用AT89系列单片机取代80C51时,可以直接进行代换,新增加型号的功能是向下兼容的,并且有些型号可以不更换仿真机。
在89系列中,AT89C51(AT89S51)、P89C51、STC89C51、W78E51都是与MCS-51系列的80C51兼容的型号。
1.251单片机系统结构组成及功能
AT89S51单片机与Intel公司的MCS-51单片机系列的80C51型号单片机在芯片结构与功能上基本相同,外部引脚完全相同。
主要不同点是89系列产品中程序存储器全部采用快擦写存储器,简称闪存。
AT89S51单片机与AT89C51单片机主要不同点是增加了ISP串行接口(可实现串行下载功能)和看门狗定时器。
AT89S51仅是一块芯片,但它包括了构成计算机的基本部件,因此可以说它是一台简单的计算机,但是它的主要作用是控制,所以又成为微控制处理器。
1.2.151单片机组成结构
AT89S51单片机集成了一台微型计算机的各个主要部分。
其中主要有CPU、存储器、可编程I/O口、定时/计数器、串行口等,各部分通过内部总线相连。
下图为AT89S51单片机的基本组成功能图:
图1-2-1AT89S51单片机的基本组成功能图
图中的P0、P1、P2、P3为4个可编程I/O口,TED、RXD为串行口的输入、输出端,以上各部分通过总线相连。
AT89C51/AT89C51与AT89S51/AT89S51在结构上的主要不同点是没有看门狗、双DPTR和ISP端口。
在AT89S51单片机内部除了有CPU、RAM、ROM和定时器、串行口等主要功能部件外,还有驱动器、指令寄存器、锁存器、地址寄存器等辅助电路部分。
1.2.2AT89S51各引脚功能介绍
图1-2-2AT89S51引脚图
1.VCC:
AT89S51电源正端输入,接+5V。
2.VSS:
电源地端。
3.XTAL1:
单芯片系统时钟的反相放大器输入端。
4.XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
5.RESET:
AT89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
6.EA/VPP:
"
EA"
为英文"
ExternalAccess"
的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
7.ALE/PROG:
ALE是英文"
AddressLatchEnable"
的缩写,表示地址锁存器启用信号。
AT89S51可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S51是以多工的方式送出地址及数据。
平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入
8.PSEN:
此为"
ProgramStoreEnable"
的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。
9.P0~P3在1.3.3节有详细介绍。
1.2.351单片机主要部件及其功能
1.中央处理器(CPU)
中央处理器是单片机最核心的部分,主要完成运算和控制功能,这一点与通用的微处理器基本相同,只是它的控制功能更强。
80C51系列的CPU是一个字长为8位的中央处理单元,它对数据的处理是按字节为单位进行的。
在执行程序中起关键作用的是。
CPU的主要由运算器与控制器这两大部分组成。
.控制器
控制器是用来统一指挥和控制计算机工作的部件,它的功能是接收来自存储器中的逐条指令,进行指令译码,并通过定时和控制电路,在规定的时刻发出各种操作所需的全部内部控制信息及CPU外部所需控制信号,使各部分协调工作,完成指令所规定的各种操作。
它由指令部件、时序部件、操作控制部件等三部分组成。
指令部件由16位程序计数器PC、8位指令寄存器、8位指令译码器等组成。
.运算器
运算器是用于对数据进行算术运算和逻辑操作的执行部件,包括算术/逻辑部件ALU、累加器ACC、暂存寄存器、程序状态字PSW、通用寄存器、BCD码运算调整电路等。
2.数据存储器(内部RAM)
数据存储器用于存放变化的数据。
在80C51单片机中通常把控制与管理寄存器(简称专用寄存器)在逻辑上划分在内部RAM中,因为其地址与RAM是连续的。
AT89S51单片机中数据存储器的地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面的128个,后128个被专用寄存器占用。
片内数据存储器为8位地址,寻址空间为00H~FFH。
AT89S51片内供用户使用的RAM为片内低128字节,地址范围为00~7FH,对其访问可采用直接寻址和间接寻址的方式。
其中80H~FFH为特殊功能寄存器SFR所占用的空间。
.低128字节RAM
低128字节RAM分为三个部分。
其中00~1FH地址空间为通用工作寄存器区,20H~2FH地址空间为位寻址区,30H~7FH地址空间为用户RAM区。
.特殊功能寄存器SFR
特殊功能寄存器SFR主要用于管理片内和片外的功能部件(指定时器、中断系统以及外部扩展的存储器、外围芯片等)。
SFR主要包括:
累加器ACC、寄存器B、程序状态字PSW、堆栈指针SP、数据指针寄存器DPTR、端口P0~P3、中断优先级IP、中断允许IE、定时器/计数器方式TMOD、定时器/计数器控制TCON、定时器/计数器0/1、串行控制SCON、串行数据缓存器SBUF、电源控制PCON等。
3.程序存储器(内部ROM)
程序存储器用于存放程序和固定的常数。
通常采用只读存储器,只读存储器有多种类型,89系列单片机中全部采用了闪存,51单片机内部配置了4KB闪存。
通过片外16位地址线可扩展到64KB,两者是统一编址。
在AT89S51中,程序存储器有6个入口地址:
0000H:
51系列单片机上电复位后,PC=0000H,程序将自动从0000H开始执行指令。
0003H:
外部中断0入口。
000BH:
定时器0溢出中断入口。
0013H:
外部中断1入口。
001BH:
定时器1溢出中断入口。
0023H:
串行口中断1入口。
4.定时/计数器
定时/计数器用于实现定时和技术功能。
51单片机中有2个16位的定时/计数器。
并以其定时或计数结果对计算机进行控制。
定时时靠内部分频时钟频率计数实现,做计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。
5.并行I/O口
并行I/O口主要用于实现与外部设备中数据的并行输入/输出,有些I/O口还具有其他多种功能。
51单片机共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。
P0~P3是AT89S51单片机与外界联系的4个8位双向并行I/O端口。
.P0口是一个真正的双向口,它的每一位都具有输出锁存、输入缓冲和悬浮状态,这3种工作状态。
P0口既可做I/O端口使用,也可做地址/数据总线使用。
.P1口除作为一般的I/O端口外,某些位还具有第二功能:
T2、T2EX、MOSI、MISO、SCK。
.P2口除作为一般的I/O端口外,在具有片外并行扩展存储器的系统中,P2口通常作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
.P3口除作为一般的I/O端口外,其各位增加了第二功能:
RXD、TXD、
、
、T0、T1、
。
6.串行口
AT89S51有一个UART全双工异步串行口,用以实现单片机和其它设备之间的串行数据传送。
该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。
RXD(P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。
AT89S51还有一个ISP全双工同步串行口,用于实现串行在线下载程序。
7.时钟电路
时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。
AT89S51单片机CPU执行指令的一系列动作都是在统一的时钟脉冲控制下进行的。
为了便于CPU时序进行分析,人们按指令的执行过程规定了时钟周期、机器周期、指令周期。
.振荡周期定义为时钟脉冲频率的倒数,又称为时钟周期。
.机器周期是指完成一个基本操作所需要的时间称为机器周期。
80C51系列单片机的一个机器周期等于六个状态周期,即12个时钟周期。
.指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。
8.中断系统
中断系统的主要作用是对外部或内部的中断请求进行管理和处理。
AT89S51的中断系统主要由几个与中断有关的特殊功能寄存器、中断允许、顺序查询逻辑电路等组成。
AT89S51单片机共有5个中断源,其中2个外部中断源
和
、,3个内部中断源,即2个定时/计数中断和1个串行口中断。
1.38255可编程接口芯片
目前已生产了多种可编程接口芯片,如,可编程芯片8155、8255、计数/定时器8253、可编程串行接口8250、可编程中断控制器8259等。
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
1.3.18255A可编程接口的结构
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分
根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:
(1)数据总线DB:
编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:
编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:
片选信号、复位信号RST、写信号、读信号。
当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
2)与外设接口部分
根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
各通道的引脚编号如下:
(1)A口:
编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
(2)B口:
编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
(3)C口:
编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
3)控制器
8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。
如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:
(1)A组控制器:
控制A口与上C口的输入与输出。
(2)B组控制器:
控制B口与下C口的输入与输出。
1.3.28255A的引脚介绍
8255A共有40个引脚,采用双列直插式封装,引脚分布图如下:
图1-3-28255A引脚分布图
各引脚功能介绍:
.数据总线:
D0~D7、PA0~PA7、PB0~PB7、PC0~PC7,此32条数据线均为三态双向数据线。
D0~D7与单片机数据总线连接,用来传送CPU与8255A之间的命令与数据信息,PA0~PA7、PB0~PB7、PC0~PC7分别与A、B、C三个口相对应,以实现8255A与外设之间的数据传送。
.控制线:
、RESET
:
读信号,低电平有效。
当这个引脚输入为低电平,CPU对8255A进行读操作。
写信号,低电平有效。
当这个引脚输入为低电平,CPU对8255A进行写操作。
RESET:
复位信号,高电平有效。
当这个引脚输入为高电平,所有8255A内部寄存器都清零。
.寻址线:
、A0、A1
:
芯片选择线,低电平有效。
当这个引脚输入为低电平,表示芯片被选中。
A1、A0:
地址线,用来选择8255内部端口。
1.3.38255A的工作方式
8255A具有3个相互独立的输入/输出通道端口,用+5V单电源供电,有三种工作方式,即:
方式0(基本输入输出方式):
这种工作方式不需要任何选通信号。
A口、B口以及C口的高4位和低4位都可以被设定为输入或输出。
方式1(选通输入/出方式):
在这种工作方式子下,A、B、C三个口被分为两组。
A组包括A口和C口的高4位,A组包括B口和C口的低4位。
方式2(双向选通输入/输出方式):
在这种工作方式子下,A口为8位双向数据口,C口的PC3~PC7用来作为输入或输出的控制同步信号。
1.3.48255A的控制寄存器
位操作制字的方式实现的。
8255A有2个控制字,分别为方式选择控制字和C口置/复位控制字。
.方式选择控制字
方式选择控制字的作用是选择8255A的工作模式,选择3个端口各位的工作状态是输入还是输出。
它的格式如下图1-4-4-1。
例如,当将83H(10000011B)写入控制寄存器后,8255A被编程为A口为方式0输出,B口为方式0输人,PC7~PC4为输出,PC3~PC0为输人。
图1-3-4-18255A方式选择控制字格式
.C口置/复位控制字
C口置/复位控制字格式如下图1-4-4-2。
C口具有位操作功能,把一个置/复位控制字送入8255A的控制寄存器,就能把C口的某一位置1或清零而不影响其他位的状态。
例如,将07写入控制寄存器后,8255A的PC3置1;
写入0EH时,PC7复位0。
图1-3-4-28255AC口置/复位控制字格式
假设应用中要求8255A按工作方式0工作,A口各位作为输入,B口各位作为输出,C口高4位作为输出,低4位作为输入。
将A口数据存入R1,则编程如下:
MOVDPTR,#0FF7FH;
指向控制寄存器地址
MOVA,#10010001B;
按要求设置控制字
MOV@DPTR,A;
控制字送入控制寄存器
MOVDPTR,#0FF7CH;
指向A口地址
MOVA,@DPTR;
取A口数据
MOVR1,A
1.3.58255A可编程芯片程序编写应用实训
1.源程序
;
8255A的PA0~PA7接发光二极管L1~L8;
PB0~PB7接开关K1~K8;
片选信号8255CS接CS0
NAMET7;
8255A实验一
CSEGAT0000H
LJMPSTART
CSEGAT4100H
PAEQU0CFA0H
PBEQU0CFA1H
PCTLEQU0CFA3H
START:
MOVDPTR,#PCTL;
置8255A控制字,A、B、C口均工作
方式0,A、C口为输出,B口为输入
MOVA,#82H
MOVX@DPTR,A
LOOP:
MOVDPTR,#PB;
从B口读入开关状态值
MOVXA,@DPTR
MOVDPTR,#PA;
从A口将状态值输出显示
MOVR7,#10H;
延时
DEL0:
MOVR6,#0FFH
DEL1:
DJNZR6,DEL1
DJNZR7,DEL0
JMPLOOP
END
2.硬件连接
.将8255A的PA0~PA7接发光二极管L1~L8;
.PB0~PB7接开关K1~K8;
.片选信号8255CS接CS。
硬件连接图如下:
图1-3-5-18255A实训硬件连接图
3.程序分析
此程序是通过B口输入,A口输出,当把开关K1~K7按上去,则LED1~LED8灯全亮,如果按下开关K1,则LED1灯熄灭,以此类推,8个开关K1~K7一一对应控制LED1~LED8灯。
如果改成从A口输入,B口输出,当把开关K1~K7按上去,则LED1~LED8灯全亮,但是与上面不同的是,如果按下开关K1,则LED8灯熄灭,按下开关K2,则LED7灯熄灭,以此类推,8个开关K1~K7一一对应控制LED8~LED1灯。
则只需将下面一段程序“MOVA,#82H
LOOP:
从A口将状态值输出显示”改写成
“MOVA,#90H
从A口读入开关状态值
从B口将状态值输出显示”
对应的连接:
.将8255A的PB0~PB7接发光二极管L1~L8;
.PA0~PA7接开关K1~K8;
图1-3-5-28255A实训硬件连接图
1.48250可编程接口芯片
8250可编程接口芯片内部结构图:
1.4.18250的初始化
.设置波特率
MOVAL,80H通信控制寄存器的D7=1,为了寻址
MOVDX,3FBH分频锁存器(除数寄存器)DLH、DLL
OUTDX,AL
MOVAL,60H设波特率为1200b/s,分频次数=843200/16×
1200
MOVDX,3F8H=0096=0060H
OUTDX,AL先写低分频值到DLL(3F8H)
MOVAL,0
MOVDX,3F9H
OUTDX,AL再写高分频值到DLH(3F9H)
.设置通信数据格式(对通信控制寄存器写入命令字)
假定7个数据位,1个停止位,偶校验。
MOVDX,3FBH
MOVAL,1AH
OUTDX,AL
1.5液晶显示器
在单片机中,常用的显示器是LCD液晶显示器。
LCD显示器功耗低,显示清晰度高。
液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件装配在一起的组件.英文名称叫“LCDModule”,简称“LCM”,中文一般称为“液晶显示模块”。
液晶显示器件是一种高新技术的基础元器件,虽然其应用巳很广泛,但对很多人来说,使用、装配时仍感到困难。
特别是点阵型液晶显示器件,使用者更是会感到无从下手.特殊的连接方式和所需的专用设备也非人人了解和具备,故此液晶显示器件的用户希望有人代劳,将液晶显示器件与控制、驱动集成电路装在一起,形成一个功能部件,用户只需用传统工艺即可将其装配成一个整机系统。
1.5.1液晶显示器的功能
用户通过用户命令调用OCMJ系列液晶显示器的各种功能。
命令分为操作码及操作数两部分,操作数为十六进制。
共分为3类10条。
分别是:
(以下所示取值范围分别为:
2X8、4X8、5X10的取值范围)
.显示国标汉字
命令格式:
F0XXYYQQWW
该命令为5字节命令(最大执行时间为1.2毫秒,Ts2=1.2mS),其中
XX:
为以汉字为单位的屏幕行坐标值,取值范围00到07、02到09、00到09
YY:
为以汉字为单位的屏幕列坐标值,取值范围00到01、00到03、00到04
QQWW:
坐标位置上要显示的GB2312汉字区位码