单片机编程.docx
- 文档编号:9674826
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:66
- 大小:297.75KB
单片机编程.docx
《单片机编程.docx》由会员分享,可在线阅读,更多相关《单片机编程.docx(66页珍藏版)》请在冰点文库上搜索。
单片机编程
目录
前言4
摘要
MCS-51单片机是Intel公司推出的世界上著名的高性能低功耗非易失性存储器和数字集成电路的一流半导体,它的EEPROM电可擦除技术、闪速存储器技术和质量、高可靠性的生产技术。
在CMOS器件生产领域中,Intel的先进设计水平、优秀的生产工艺及封装技术一直处于世界的领先地位,这些技术用于单片机生产使单片机也具有优秀的品质、在结构、性能和功能等方面都有明显的优势。
Intel公司的单片机是目前世界上一种独具特色而性能卓越的单片机。
它在计算机外部设备、通讯设备、自动化工业控制、宇航设备、仪器仪表和各消费类产品中都有着广泛的应用前景。
关键字:
Abstract
MCS-51themachineofsinglesliceisanATMELcompanytoreleaseintheworldnotabilityofproductiontechniqueforelectricityoftop-gradesemi-conductorforoflowpowerwasteofhighperformancenotandeasilylosingthememorizerwitharithmeticfigureintegratedcircuit,itsEEPROMcanwipingdividedbyingthetechnique,flashsoonstoragetechniquewithquantity,highanddependable.IntheCMOSpartsofanapparatusproductioncraftforadvanceddesignlevel,excellenceforproducingtherealminside,Intelofpieceandsealtopackthetechniquetoalwaysbeplacedinthebeintheleadingofworldtheposition,thesetechniquestousedforthequalityformachineproducingmakingthemachineofsingleslicetoohavingexcellenceofsingleslice,waitwithfunctiontoaspectallcontainobviousadvantageattheconstruction,function.TheIntelcompanymachineofsinglesliceiscurrentintheworldakindofcharacteristicandhasthespecialfeaturesbutfunctionmachineofoutstandingsingleslice.Itisinthecalculatorexteriorequipments,communicationequipments,automationindustrycontrol,spacenavigationequipments,instrumenttheappearancewitheverykindofconsumptionproductallhavegottheextensiveandappliedforeground.
前言
单片机SCM(SingleChipMicrocomputer),即MicroController,是把微型计算机主要部分都集成在一个芯片上的单芯片微型计算机。
主要包括了微处理器(CPU)、存储器(ROM、RAM)、输入/输出口(1/0口)和定时器/计数器、中断系统等功能部件【15]。
单片机自70年代出现以来,已经有了很大的发展,被广泛应用于机械、测量控制、工业自动化、智能接口和智能仪表等许多领域。
例如:
单片机与传统的机械产品相结合后简化产品结构,实现控制智能化,成为新一代的机、电一体化产品;利用单片机来构成各种工业控制系统、数据采集系统等;在大型工业测控系统中,单片机进行接口的控制与管理,与计算机主机并行工作,可以大大提高系统运行速度。
第一章实验箱介绍
本设计所用实验箱单片机采用高性能的静态89S51设计,增加了在线下载功能。
由先CMOS工艺制造并带有4K字节片内RAM,工作电压4.0V到5.5V电压,全静态时钟0Hz到33MHz,三级程序加密,32个可编程I/O口,2/3个16位定时/计数器,6/8个中断源,全双工UART,低功耗支持Idle和Power-down模式,Power-down模式支持中断唤醒,看门狗定时器,双数据指针,上电复位标志,易失性Flash程序存储器全部支持12时钟和6时钟操作。
6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路。
此外由于器件采用了静态设计可提供很宽的操作频率范围频率可降至0可实现两个由软件选择的节电模式空闲模式和掉电模式空闲模式冻结CPU但RAM定时器串口和中断系统仍然工作掉电模式保存RAM的内容但是冻结振荡器导致所有其它的片内功能停止工作由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复。
特性
89S51核心处理单元
4k字节FLASH89S51X2
8k字节FLASH89S52X2
16k字节FLASH89S54X2
32k字节FLASH89S58X2
128字节RAM89S51X2
256字节RAM89S52X2/54X2/58X2
布尔处理器
全静态操作
12时钟操作可选6个时钟通过软件或并行编程器
存储器寻址范围
64K字节ROM和64K字节RAM
电源控制模式
―时钟可停止和恢复
―空闲模式
―掉电模式
两个工作频率范围
6时钟模式时为0到20MHz
12时钟模式时为0到33MHz
LQFP,PLCC或DIP封装
扩展温度范围
双数据指针
3个加密位
4个中断优先级
6个中断源
4个8位I/O口
全双工增强型UART
―帧数据错误检测
―自动地址识别
3个16位定时/计数器T0T1标准89S51和增加的T2捕获和比较
可编程时钟输出
异步端口复位
低EMI(禁止ALE以及6时钟模式)
掉电模式可通过外部中断唤醒
本仿真实验板除了可做LED和液晶显示、查表实验、键盘实验、中断实验、钟设计实验、频率测量实验、串行通讯实验、A/D和D/A实验外,还增加了温度采集测量、红外发射接受实验、继电器控制/点阵显示和看门狗实验。
第二章单片机概述及KeilSoftware的使用介绍
第一节单片机基本结构与工作原理
2.1.1单片机的基本结构
典型系列单片机是由CPU系统、外围功能单元和归一化I/O端口三部分组成,如图2-1
P0P1P2P3
I/O
RSTALEEAPSEN
RAM
ROM
SFR
串行接口
UART
中断
系统
定时器/
计数器
XTAL2XTAL1
图2-180S51系列单片机的基本概念
1.CPU系统
CPU系统包括CPU、时钟系统和总线控制逻三部分,其功能如下:
(1)CPU:
包含运算器和控制器,专门为面向控制对象、嵌入式特点而设计,有突出控制功能的指令系统。
(2)时钟系统:
包含振荡器、外接谐振元件,可关闭振荡器或CPU时钟,其结构如图3.2所示。
(3)总线控制逻辑:
主要用于管理外部并行总线时序及系统的复位控制,外部引脚有RST、ALE、EA、PSEN。
RET:
系统复位用。
ALE:
数据(地址)复用控制。
EA:
外部/内部程序存储器选择。
PSEN:
外部程序存储器的取指控制。
2.CPU外围电路
CPU外围电路包括ROM、RAM、I/O口和SFR四部分。
(1)ROM:
程序存储器。
地址范围为0000H-FFFF(64KB)。
89S51为flashROM
(2)RAM:
数据存储器。
地址范围00H-FFH(256B),是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、地址等空间。
(3)I/O端口:
80S51系列单片机集邮个8位I/O端口,分别为P0、P1、P2、P3。
P0为数据总线端口,P2、P0组成6位地址总线,P1为用户端口,P3用于基本输入/输出以及并行扩展总线的读/写控制。
P0、P2可作用户I/O端口,P3不作基本功能单元的输入/输出端口时,可作用户I/O端口。
(4)SFR:
特殊功能寄存器。
是单片机中的重要控制单元,CPU对所有片内功能单元的操作都是通过访问SFR实现的。
3.基本功能单元
89S51系列单片机具有定时/计数器、中断系统和串行接口三个基本功能单元。
(1)定时/计数器:
89S51有2个16位定时/计数器,定时时靠内部的分频时钟频率计数实现;作计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。
(2)中断系统:
89S51共有5个中断源,即2个外部中断源INT0、INT1、2个定时器溢出中断(T0、T1)和1个串行中断。
(3)串行接口UART:
一个带有移位寄存器工作方式的通用异步收发器,不仅可以作串行通信,还可用于移位寄存器方式的串行外围扩展。
RXD(P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。
4.单片机内部资源可按需要进行扩展与删减,单片机中许多型号系列是在基核的基础上扩展部分资源形成的。
这些可扩展的资源有:
(1)时钟系统的速度扩展,从12MHz-40MHz。
(2)ROM的容量扩展,从8KB、16KB到64KB。
(3)RAM的容量扩展,从256B、512B到1024B。
(4)I/O口的数量扩展,从4个I/O口到7个I/O口。
(5)SFR的功能扩展,如ADC、PWM、WDT、模拟比较器等。
(6)中断系统的中断源扩展。
(7)定时器/计数器的数量扩展、功能扩展。
(8)串行口的增强扩展。
(9)电源供给系统的宽电压适应性扩展(从2.7V-6V)。
为了满足小型廉价的要求,可将单片机的某些资料删减,某些功能加强,以达到不同场合使用要求。
这些删减增加资源的内容有:
(1)总线删减。
(2)功能删减。
(3)某些功能加强。
如增加模拟比较器、计数器捕捉能力等。
2.1.2单片机的种类
单片机可按应用领域、通用性、总线结构分类。
]
(1)按应用领域可分为:
家用类、工控类、通信类、个人信息终端等。
(2)按通用性可分为:
通用型和专用型(如计费率电表、电子记事本)。
(3)按总线结构可分为:
总线型和非总线型。
单片机的供应状态
按提供的存储器类型可分为以下五种状态。
(1)MASKROM类:
程序在芯片封装过程中掩膜工艺制作到ROM区中,如80C51,适合大批生产。
(2)EPROM类:
紫外线可擦写存储器如87C51,价格较贵。
(3)ROMless类:
无ROM存储器,如80C31,电路扩展复杂,较少用。
(4)OTPROM类:
可一次性写入程序。
(5)FlashROM(MTPROM)类:
可多次编程写入的存储器,如89C51、89C52,其成本低开发调试方便,在恶劣环境下可靠性不及OTPROM。
2.1.3单片机的应用模式
单片机的应用模式分类如图2.2所示。
各应用模式的结构如图2-3、图2-4、图2-5和图2-6所示。
时钟
N
I/O口
非总线
单片机
串行扩展
I/O
复位
图2-4非总线型的应用模式
8DB
通用
单片机
(总线型)
nCB
16AB
I/O口
时钟
串行扩展
I/O
复位
图2-5总线型的非总线模式
2.1.4单片机的应用开发过程
单片机的应用开发分为以下五个过程。
(1)硬件系统设计调试。
如电路设计、PCB印制版绘制等。
(2)应用程序设计。
可使用如KEIL等汇编工具软件进行源程序编写、编译调试等。
(3)应用程序的仿真调试。
指用仿真器对硬件进行在线调试或软件仿真调试,在调试中不断修改、完善硬件及软件。
(4)单片机应用程序的烧写。
用专用的单片机烧写器可将编译过的二进制源程序文件写入单片机芯片中。
(5)系统脱机运行检查。
进行全面检查,针对出现的问题修正硬件、软件或总体设计方案。
2.1.589S51各引脚说明
I/O端口:
P0.0~P0.7,P1.0~1.7,P2.0~P2.7,P3.0~P3.7。
89S51共有4个I/O端口,为P0、P1、P2、P3,4个I/O口都是双向的,且每个口都具有锁存器。
每个口有8条线,共计32条I/O线。
各端口的功能叙述如下:
1.P0有三个功能:
(1)外部扩充存储器时,当作数据总线(D0~D7)。
(2)外部扩充存储器时,当作地址总线(A0~A7)。
(3)不扩充时,可做一般I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
2.P1只做I/O口使用,其内部有上拉电阻。
3.P2有两个功能:
(1)扩充外部存储器时,当作地址总线(A8~A15)使用。
(2)做I/O使用,其内部有上拉电阻。
4.P3有两种功能。
除了作为I/O使用外(内部有上拉电阻),还有一些特殊功能,如表所示由特殊寄存器来设置。
5.主电源引脚
Vss——(20脚):
电路低电平
Vcc——(40脚):
正常运行和编程校验(80151/8052)时为+5V电源
6.RST/VPD——(9脚):
RST即Reset(复位)信号输入端。
振荡器工作时,由该引脚输入脉宽2个以上机器周期的高电平时复位单片微机。
当外部在RST与Vcc之间接一个电容(约10µF)和在RST与Vcc之间接一个电阻(约8.2kΩ)时,就可实现加电复位功能。
VPD为备用电源输入端,即当VCC掉电时,由此引脚提供备用电源,以保持内部RAM的信息。
7.ALE/PGOG——(30脚):
ALE,允许地址锁存信号输出。
当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。
在非访问外部存储器间,ALE仍以1/16振荡频率固定不变的速率输出,因此它能作外部时钟或定时信号用。
当访问外部数据存储器时,将以1/12振荡频率输出。
PROG为编程脉冲输入端,即当选用8751单片微机时,对片内程序存储器进行编程时,由此引脚输入编程脉冲。
8.PSEN——(29脚):
程序储存使能端。
(1)内部程序存储器读取;不动作。
(2)外部程序存储器读取(ROM):
在每个机器周期会动作两次。
(3)外部程序存储器读取(RAM):
两个/PSEN脉冲被跳国不会输出。
(4)外接ROM时,与ROM的/OE脚连接。
9.EA/VPP——(31脚)
(1)接高电平时:
●CPU读取内部程序存储器(ROM),如8051/8/052。
●扩充外部ROM:
当读取内部程序存储器超过0FFF(8051)时,自动读取外部ROM。
(2)接低电平时:
CPU读取外部程序存储器(ROM),如8031/8032。
(3)8751烧写内部EPROM时,利用此脚输入21V的烧写电压。
10.XTAL1——(19脚)XTAL2——(18脚):
接石英晶体振荡器。
机器周期=石英晶体/12,如12MHz石英晶体/12=1微秒。
二、89S51系列单片机引脚功能分类
基本引脚:
电源VCC、VSS,时钟XTAL2、XTAL1和复位RST。
并行扩展总线:
数据总线P0口,地址总线P0口(低8位)、P2口(高8位)和控制总线ALE、PSEN、EA。
串行通信总线:
发送口TXD和接受口RXD。
I/O端口:
P1口为普通I/O口,P3口可复用作普通I/O口,P0、P2口不作并行口时也可作普通I/O口。
三、单片机的引脚应用特性
1.并行总线的构成
89S51并行总线的构成如图2.7所示。
并行总线特点:
(1)P0口为地址/数据复用口。
(2)两个独立的并行扩展空间。
程序存储器使用PSEN取指控制信号,数据采用WR、RD存取控制信号。
(3)外围扩展统一编址。
在64KB的空间上,可扩展外数据存储器或其他外围器件。
2.引脚复用特性
P3口、P0口、P2口均可用作普通I/O口。
3.I/O的驱动特性
由于采用CMOS电路,输入电流极微,通常不考虑I/O端口的扇出能力,当负载为LED、继电器等功率驱动元件时才考虑驱动能力。
89S51单片机的内部结构主要由8个部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器、I/0口(PO口、pl口、PZ口、P3口)、串行
口、定时器/计数器、中断系统和特殊寄存器(SFR)。
其中,微处理器由运算器
和控制逻辑组成,主要包括累加器(ACC)、B寄存器、临时存储器(TMPITMPZ)、算术运算单元ALU等。
特殊功能寄存器SFR(SpecialFunctionRegister)是用来对片内各功能单元进行管理、控制、监视的控制寄存器和状态寄存器,是位于片内数据存储器上的一个特殊功能的RAM区,其地址范围为80H一FFH。
SFR主要包括PO口锁存器、PI口锁存器、PZ口锁存器、P3口实现复位之后PC的值是O00OH,因此,程序的入口地址为0000H,CPU从O000H开始执行操作。
模式控制寄存器TMOD为OOH,表示定时器/计数器都处于方式O工作状态,而THO、TLO、THI、TLI均为OOH则表示定时器/计数器复位后都清零。
PO、Pl、PZ和P3端口复位后锁存器都处于“1”状态。
工作状态下,每当ALE是高电平的第一个时钟(S1P2、S4P2),P2口被拉低而PO口为高阻态。
实际进行芯片解剖时,可以根据寄存器复位状态下的特殊值来判断功能电路块。
工作时如果芯片的外部选通信号亚被拉为高电平,则首先访问内部数据存贮器。
如果虱总是保持低电平,则只访问外部程序存贮器,也就是说,无论是否有内部程序存贮器,所有的程序取指都是直接指向外部ROM的。
当执行外部程序存贮器内的程序时,每个机器周期内都是PSEN两次有效,ALE两次输出高电平,用于锁存地址的低位字节。
我们在开始进行反向解剖时,没有设计使用芯片内部的FLASH,因此只选用访问外部程序存贮器方式。
在这种状态下,得到的PSEN、ALE的频率是振荡器频率的1/6,PSEN信号波形占空比为1/1,而ALE信号波形占空比为1/2。
每个机器周期中ALE信号的高电平为S1P2
S2PI、S4P2、S5P1,PSEN信号的高电平为S1P2、S2P1、S2P2、S4P2、
SSP1、S5P5。
总之,CPU在PSEN、ALE和外部数据存储器写选通信号WR
读选通信号而的共同作用实现功能。
第二节KeilSoftware简介及简单KeilSoftware的使用介绍
利用KeilSoftware可以开发所有89S51系列单片机的嵌入应用。
KeilSoftware的89S51开发工具提供以下程序,可以用它们来编译C源码,汇编源程序,连接和重定位目标文件和库文件,创建HEX文件,调试目标程序。
●Windows应用程序uVision2是一个集成开发环境,它把项目管理,源代码编辑,程序调试等集成到一个功能强大的环境中。
●C51美国标准优化C交叉编译器源代码产生可重定位的目标文件。
●A51宏编译器从89S51汇编源代码产生可重定位的目标文件。
●BL51连接/重定位器组合由C51和A51产生可重定位的目标文件,生成绝对目标文件。
●LIB51库管理器组合目标文件,生成可以被连接器使用的库文件。
●OH51目标文件到HEX格式的转换器从绝对目标文件创建IntelHEX格式的文件。
●RTX-51实时操作系统简化了复杂和对时间要求敏感的软件项目。
Keil8051开发工具提供数个十分有用的特性,可以帮助快速地成功开发嵌入式应用。
一、uVision2IDE是一个基于Window的开发平台,包含一个高效的编辑器,一个项目管理器和;一个MAKE工具。
uVision2支持所有的KEIL89S51工具,包括C编译器,6过程:
●全功能的源代码编译器。
●器件库用来配置开发工具设置。
●项目管理器用来创建和维护项目。
●集成的MAKE工具可以汇编,编译和连接嵌入式应用。
●所有开发工具的设置都是对话框形式的。
●真正的源代码级的对CPU和外围器件的调试器。
●高级GDI(AGDI)接口用来在目标硬件上进行软件调试,以及和Monitor-51J进行通信。
●与开发工具手册和器件数据手册和用户指南有直接的链接。
二、关于开发环境
uVision2界面提供一个菜单,一个工具条以便快速选择命令按钮,另外还有源代码的显示窗口,对话框和信息显示。
uVision2允许同时打开浏览多个源文件。
三、创建应用
如何建立一个新的工程?
按如下步骤来建立一个新的工程
1)点击菜单project,选择newproject:
2)然后选择要保存的路径,输入工程文件的名字,比如保存到keil目录里,工程文件的名字为test。
然后点击保存。
3)这时会弹出一个对话框,要求选择单片机的型号,可以根据使用的单片机来选择,keilc51几乎支持所有的51单片机。
如果设计的是Atmel公司的AT89S51,可以选择ATMEL→AT89S51,然后点击确定。
4)下一步新建一个源程序文件,建立一个汇编或c文件,如果已经有源程序文件,可以忽略这一步,点击菜单File→New;
5)输入一个简单的程序:
6)选择菜单File→SAVE:
7)选择要保存的路径,在文件名里输入文件名,注意一定要输入扩展名,如果是c程序文件,扩展名为.c,如果是汇编文件,扩展名为.a51(或.asm),如果是ini文件,扩展名为.ini,其他文件类型,比如注解说明文件,可以保存为.tet的扩展名,要存储一个ASM源程序文件,所以输入.ASM扩展名,保存为text.ASM的名字,点击保存。
8)点击Target1前面的+号,展开里面的内容sourceGroup1;
9)用右键点击SoureceGroup1(注意用鼠标的右键,而不是左键),将弹出一个菜单,选择AddFilestoGoup’SourceGroup1’.
10)选择刚才的文件text.asm,
文件类型选择AsmSourcefile(*.c).因为是asm程序文件,所以选择该类型,如果是c文件,就选择csourcefile.如果是目标文件,选择Objectfile,如果是库文件,选择Libraryfile.最后点击Add。
点击add之后,窗口不会消失,(如果是添加多个文件,可以不断添加),添加完毕此时再点击close关闭该窗口。
11)这时在sourcegroup1里就有test.asm文件;
12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 编程
![提示](https://static.bingdoc.com/images/bang_tan.gif)