80C196单片机.docx

上传人:b****5 文档编号:29206724 上传时间:2023-07-21 格式:DOCX 页数:122 大小:66.07KB
下载 相关 举报
80C196单片机.docx_第1页
第1页 / 共122页
80C196单片机.docx_第2页
第2页 / 共122页
80C196单片机.docx_第3页
第3页 / 共122页
80C196单片机.docx_第4页
第4页 / 共122页
80C196单片机.docx_第5页
第5页 / 共122页
点击查看更多>>
下载资源
资源描述

80C196单片机.docx

《80C196单片机.docx》由会员分享,可在线阅读,更多相关《80C196单片机.docx(122页珍藏版)》请在冰豆网上搜索。

80C196单片机.docx

80C196单片机

1.80C196单片机概述

单片微型计算机(Single-ChipMicrocomputer)简称为单片机。

它在一块芯片上集成了

微型计算机的各个组成部件:

微处理器(MPU)或中央处理器(CPU),存储器(包括随机存储

器RAM和只读存储器ROM)和各种I/O接口电路(例如并行I/O接口电路,串行I/O接口电路

,定时器/计数器电路,A/D和D/A转换器电路等)。

换句话说,一块芯片就是一台微型计

算机。

由于一块芯片上集成了微型计算机的各个功能部件,因此用单片机构成的控制系统结

构紧凑、体积小、价格便宜。

当用于工业环境时,单片机构成的系统更具有可靠性高、抗干

扰能力强的优点。

到目前为止,单片机已经被广泛地应用于智能化产品和工业自动化控制设

备上。

1.1MCS-96系列单片机

1.1.1Intel公司单片机

Intel公司1971年首先推出了微处理器(4004),之后Intel公司在研制通用微处理器(8

080/85、8086/88,80186、80286、80386、80486、P5)的同时,从1976年开始推出了

8048(MCS-48)、8051(MCS-51)、8096(MCS-96)和80960等4个单片机系列产品。

Intel公司

的单片机主要面向控制领域,因此也称为微控制器(MicroController)。

Intel公司的单片

机是目前国际和国内的主流单片机,应用最为广泛,被誉为“标准工业控制器”。

Intel公司的单片机系列中,MCS-48系列是最早推出的低挡8位机;1980年推出的MCS-

51系列单片机属于高档8位机。

与MCS-48系列单片机相比,MCS-51系列单片机硬件上增加了

串行接口,寻址范围从4KB增大到64KB;软件上增加了减法运算和乘除运算以及布尔运算指

令,并且指令的执行速度比MCS-48系列有较大的提高。

1984年,Intel公司研制出16位单片机,即MCS-96系列微控制器。

与前两类单片机相比

,MCS-96系列单片机无论是在硬件上还是在软件上都做了很大的改进。

Intel公司MCS-96系

列单片机的发展过程如下:

1984年:

16位基本型单片机8096-90系列;

1985年:

16位改进型单片机8096BH系列,与基本型相比8096BH型单片机的外部数据总线

宽度可以是8位和(或者)16位;

1987年:

CMOS型单片机80C196系列,其性能是8096-90和8096BH的两倍;

1988年:

外部数据总线宽度为8位的8098单片机;

1989年:

增强型CMOS单片机80C196KC系列,增加了外设事务服务器(PTS),大大改进了

I/O处理能力;

1991年:

适于电机控制的单片机80C196MC,用PTS处理几乎所有的I/O操作。

1.1.2MCS-96系列单片机分类

MCS-96系列单片机具有很多种类型。

按引脚数量可分为48个引脚封装和68个引脚封装两

类;按片内有无A/D转换器可分为片内有A/D转换器和片内无A/D转换器两类;按片内程序

存储器的类型又可分为片内有只读存储器ROM、片内有可擦除的只读存储器EPROM和片内无

程序存储器三类;若按制造工艺及型号分类,有基本(-90)型、改进(BH)型和CMOS型三类。

MCS-96系列单片机的详细分类如表1-1所示。

表1-1MCS-96系列单片机分类

━━━━━━━━━┳━━━━━━━━┳━━━━┳━━━━━━

┃片内无程序存储器┃片内ROM┃片内EPROM

━┳━━━┳━━━╋━━━━━━━━╋━━━━╋━━━━━━

┃┃无A/D┃8094-90┃8394-90┃8794-90

基┃48引脚┣━━━╋━━━━━━━━╋━━━━╋━━━━━━

┃┃有A/D┃8095-90┃8395-90┃8795-90

本┣━━━╋━━━╋━━━━━━━━╋━━━━╋━━━━━━

┃┃无A/D┃8096-90┃8396-90┃8796-90

型┃68引脚┣━━━╋━━━━━━━━╋━━━━╋━━━━━━

┃┃有A/D┃8097-90┃8397-90┃8797-90

━╋━━━╋━━━╋━━━━━━━━╋━━━━╋━━━━━━

┃┃无A/D┃8094BH┃8394BH┃8794BH

改┃┣━━━╋━━━━━━━━╋━━━━╋━━━━━━

┃48引脚┃┃8095BH┃8395BH┃8795BH

┃┃有A/D┣━━━━━━━━╋━━━━╋━━━━━━

进┃┃┃8098┃8398┃8798

┣━━━╋━━━╋━━━━━━━━╋━━━━╋━━━━━━

┃┃无A/D┃8096BH┃8396BH┃8796BH

型┃68引脚┣━━━╋━━━━━━━━╋━━━━╋━━━━━━

┃┃有A/D┃8097BH┃8397BH┃8797BH

━┻━━━┻━━━╋━━━━━━━━╋━━━━╋━━━━━━

┃80C196┃83C196┃87C196

CHMOS型┣━━━━━━━━╋━━━━╋━━━━━━

┃80C196KB┃83C196KB┃87C196KB

(均有A/D转换器┣━━━━━━━━╋━━━━╋━━━━━━

┃80C196KC┃83C196KC┃87C196KC

均为68引脚)┣━━━━━━━━╋━━━━╋━━━━━━

┃80C196MC┃83C196MC┃87C196MC

━━━━━━━━━┻━━━━━━━━┻━━━━┻━━━━━━

表1-1中,8098、8398及8798的功能与8095BH、8395BH及8795BH的功能大致相当,比较

大的区别是8098的外部数据总线宽度只能是8位,如果非要将8098的数据总线宽度设置为16

位,则有些指令不能正常运行;而8095BH的外部数据总线宽度即可以是8位,也可以是16位

,在两种总线宽度下,8095BH都能正常工作。

1.1.3MCS-96系列单片机体系结构

MCS-96系列单片机包括很多的成员,为使叙述简单下面用8096表示表1-1中的基本型(-

90型)单片机,用8096BH表示增强型(BH型)单片机,用80C196KB表示80C196KB、83C196KB

和87C196KB,用80C196KC表示80C196KC、83C196KC和87C196KC;仅对某个成员有效的地方,

将特别指出。

尽管Intel公司MCS-96系列单片机成员众多,但所有的器件都有着相同的指令集和体系

结构。

增强型CMOS单片机80C196KC为片内含有16位CPU和488字节数据存储器RAM的高性能微

控制器。

80C196KC采用面向寄存器的算术逻辑单元(RALU),因此不需要专门的累加器,并且

大部分的指令都可直接快速地对寄存器中的数据进行运算和操作。

除此之外,通过寄存器还

能直接控制片内的许多I/O设备,例如全双工串行接口、带有采样/保持器(S/H)和模拟多

路开关(MUX)的8通道10位A/D转换器、3条脉冲宽度调制(PWM)输出引线(可当作D/A转

换器使用)、多至48条的输入输出引线和高速I/O子系统。

高速I/O子系统又含有两个16位

定时器/计数器,有8级FIFO队列的4条高速输入(HSI)引线和有8个可编程单元的6条高

速输出(HSO)引线。

80C196KC单片机的结构框图如图1-1所示。

图1-180C196KC单片机结构框图

1.1.4MCS-96系列单片机的应用

MCS-96系列单片机的典型应用是闭环控制和中等速度范围内的数字信号处理。

MCS-96系

列产品已被广泛应用于以下几个领域:

1)工业方面:

直流、交流电动机控制,工业机器人,离散与连续过程控制,直接数字

控制,智能传感器,机电仪一体化控制等。

2)仪器仪表方面:

智能仪器,医疗器械,色谱仪,数字示波器等。

3)家用电器:

高级电子玩具,录像机,洗衣机,空调器的温度控制等。

4)通讯方面:

调制解调器,智能通讯设备等。

5)导航与控制方面:

导弹控制,鱼雷制导控制,智能武器装置,航天导航系统等。

6)数据处理方面:

智能图形终端,彩色和黑白复印机,硬磁盘控制器,磁带机,打印

机等。

7)汽车方面:

引擎控制,防滑刹车,排气控制等。

1.2CPU及时钟电路

1.2.1CPU结构

图1-1中虚线内部分为80C196KC的CPU,由控制器和运算器两大部分构成,包含有特殊

功能寄存器(SFR)、寄存器组(RegisterFile)、256字节附加片内数据存储器RAM、程序

计数器(PC)、算术逻辑单元(ALU)等功能部件。

80C196KC的控制器采用微程序代码形式。

与别的微处理器相比,MCS-96系列微控制器的

运算器摈弃了通常使用的累加器,取而代之以232字节片内数据存储器(地址范围0018H~

00FFH)构成的寄存器组。

这样就把算术逻辑单元(ALU)称为寄存器算术逻辑单元(RALU)。

80C196KB的CPU通过特殊功能寄存器(SFR地址范围0000H~0017H)或者通过存储器控

制器与外界交换数据。

由于RALU不采用专用的累加器,而是直接对由SFR和寄存器组构成的

256字节存储区间(地址范围0000H~00FFH)内某个单元的数据进行运算和处理,因此拥有

256个字节的“累加器”,首次解决了使用专用累加器造成的“瓶颈”障碍。

直接控制I/O

接口的SFR具有累加器的功能,这样对输入/输出端口进行操作就变得相当的容易,并大大

地加快了I/O处理速度。

80C196KCCPU由16位总线连接到中断控制器、外设事务服务器(PTS)和存储器控制器,

而由8位总线从存储器控制器中的指令预取队列传送指令代码到CPU。

16位总线也是CPU和

外设的数据交换通道。

1.2.2存储器控制器

除了寄存器组、特殊功能寄存器以及附加数据存储器(地址范围0100H~01FFH)外,RA

LU和别的存储器或者外部设备交换数据时必须通过存储器控制器。

存储器控制器由总线控制器、4字节指令预取队列和一个从程序计数器(SlavePC)组成

片内ROM/EPROM和片外存储器的地址信号、数据信号和控制信号均来自总线控制器。

送到

总线控制器的存储器读写请求有两个来源:

一个是RALU,另一个是指令预取队列,后者具有

较高的优先权。

通常RALU的读写请求是读写操作数;而指令预取队列总是到从程序计数器所

指存储单元读取指令代码。

指令代码的读取由从程序计数器控制,因而节省了处理器宝贵的时间,这是因为很少需

要将下一条指令的地址从CPU传送到存储器控制器。

如果由于跳转、中断、子程序调用、子

程序返回等原因改变了指令的执行顺序,这时才需要将程序计数器(PC)的内容传送到从程序

计数器,并刷新指令预取队列,继续执行后续程序。

指令预取队列的设置加快了程序的执行速度,因为该队列内通常含有下一条将要执行的

指令之代码。

本书附录2中列出的指令执行时间是指正常情况下,没有等待,选择16位宽的

数据总线时的情况。

重装从程序计数器和读取新指令流的第一个字节需要4个状态周期。

一情况可以从指令发生和不发生跳转的时间差别之中看出。

指令预取队列的存在使我们不能确定一条指令到底什么时候执行,因为指令预取队列对

指令的读取总是先于指令的具体执行。

1.2.3CPU控制

微代码控制器控制80C196KC的CPU,允许其对地址范围0000H~00FFH之内的存储空间

中的任意的字节、字、双字进行运算和操作。

利用2.3所讨论的垂直窗口技术,片内256字

节的附加数据存储器RAM也可当作“累加器”来使用。

传送到CPU的指令来自指令预取队列

,并暂存在指令寄存器内。

微代码控制器对指令进行译码,并产生相应的动作序列,使RALU

能实现希望的运算和功能。

图1-2所示是存储器控制器、RALU、指令寄存器和控制器单元的

结构框图。

图1-2RALU和存储器控制器结构框图

1.2.4寄存器算术逻辑单元(RALU)

80C196KC所进行的大部分运算都是在RALU中完成的。

RALU,如图1-2所示,由一个17位

算术逻辑单元(ALU)、程序状态字(PSW)、程序计数器(PC)、循环计数器和三个暂存寄存器

组成。

所有的寄存器或者是16位,或者是17位(16个数据位加一个符号扩展位),某些寄存

器在不要CPU干预的情况下能进行一些简单的运算。

读取指令代码时,程序计数器PC使用单独的增量器,然而由跳转、子程序调用、子程序

返回和中断引起的PC变化,则必须通过算术逻辑单元来完成。

三个暂存寄存器中有两个具备移位逻辑电路。

这些寄存器用于那些要求逻辑移位的运算

包括浮点数规格化、乘法运算、除法运算等。

低字寄存器和高字寄存器一起使用时,完成

32位数据的运算和给大部分指令作暂存器用。

重复移位的次数由6位的循环计数器承担。

第三个暂存寄存器存放参与运算的两个操作数中的第二个,具体就是:

乘法运算的乘数

、除法运算的除数等。

为了进行减法运算,这个寄存器的输出可以在送到算术逻辑单元的B

输入端之前先施行求补运算。

为加快某些特定运算的速度,寄存器算术逻辑单元内存放有0、1、2等常数。

这些特

定的运算包括:

求某数2的补码、增量运算、减量运算等。

此外,还有由8个字节的位屏蔽

字组成的常数数组,用于位测试等指令。

该常数数组由一个3位二进制的位选择寄存器来寻

址。

1.2.5振荡器和内部定时

80C196KC单片机片内集成了由一个单级反向器组成的振荡电路,如图1-3所示。

图中,

XTAL1为反向器的输入端,XTAL2为反向器的输出端,当芯片进入掉电工作方式时,由内部

PD信号禁止振荡器工作。

只要在XTAL1和XTAL2之间外接一个晶体振荡器,就能够产生芯片

工作所需的时钟信号。

外接晶体振荡器的电路如图1-4所示。

图1-3片内振荡电路图1-4晶体振荡器连接图

图1-4所示电路中,晶体振荡器的参数和电容的数值对振荡电路的工作影响不大,一般

情况下电容取值为20pF.

若不使用片内振荡器,则从XTAL1引脚输入时钟,而让XTAL2引脚浮空。

外接时钟的电

路如图1-5所示。

要注意,输送到XTAL1的时钟信号不应是TTL电平,因此图1-5中接有一

5KΩ的上拉电阻。

图1-5外部时钟输入电路图1-6内部时钟波形

80C196KC的内部操作以晶体振荡器或外部振荡器时钟的两分频信号为基准。

每两个振荡

周期定义为一个状态周期,状态周期是80C196KC工作时的最小时间单位。

当使用16MHz频率

的晶体振荡器时,一个状态周期是125ns。

由于80C196KC可以在许多不同的频率下工作,因

此后面的叙述将以状态周期为基本时间单位。

片内时钟发生器产生两相不重叠的时钟信号:

PH1和PH2,如图1-6所示。

CLKOUT由两

相时钟的上升沿产生。

80C196KC与8096BH不同的是8096BH使用三相时钟。

在振荡器频率相同

的条件下,两相时钟较三相时钟在运行速度上有很大的改进(提高50%)。

1.3存储器空间

80C196KC可以寻址的存储器空间为64K加512个字节,重复的512个字节存储空间的地

址位于0000H~01FFH之中。

当从0000H~01FFH地址范围内读取指令代码时,80C196KC从

片外存储器中获取所需指令;而对0000H~01FFH地址范围进行数据读写操作时,操作对象

是片内的SFR、寄存器组、或者256之间的附加数据存储器RAM。

另外,地址范围1FFEH至

2080H的存储空间具有特殊的用途。

其它的地址单元即可用来存储程序,也可用来存放数据

,还可当作存储器映象的外部设备端口。

图1-7是存储器空间的分布图。

编制程序时,应将

标为"保留"的存储单元的数据填充为0FFH。

0FFFFH┏━━━━━━━━━━━━━━┓

┃片外存储器或者I/O设备端口┃

6000H┣━━━━━━━━━━━━━━┫

┃片内ROM/EPROM或者片外存储器┃

2080H┣━━━━━━━━━━━━━━┫

┃保留┃

205EH┣━━━━━━━━━━━━━━┫

┃外设事物服务器PTS矢量┃

2040H┣━━━━━━━━━━━━━━┫

┃高端中断矢量┃

2030H┣━━━━━━━━━━━━━━┫

┃片内ROM、EPROM之密码┃

2020H┣━━━━━━━━━━━━━━┫

┃保留┃

2019H┣━━━━━━━━━━━━━━┫

┃芯片配置字节┃

2018H┣━━━━━━━━━━━━━━┫

┃保留┃

2014H┣━━━━━━━━━━━━━━┫

┃低端中断矢量┃

2000H┣━━━━━━━━━━━━━━┫

┃P3口和P4口┃

1FFEH┣━━━━━━━━━━━━━━┫

┃片外存储器┃

200H┣━━━━━━━━━━━━━━┫

┃片内附加RAM区┃

100H┣━━━━━━━━━━━━━━┫

┃寄存器组、片外程序存储器┃

0H┗━━━━━━━━━━━━━━┛

图1-7存储器空间的分布图

1.3.1寄存器组

从18H至FFH的地址单元为寄存器组。

寄存器组由可以作为字节(8位)、字(16位)、

双字(32位)操作的232个字节的数据存储器RAM组成。

由于每一个单元均可被RALU使用,

因此这232个字节的存储单元相当于普通微处理器中的“累加器”和通用寄存器。

从0100H

至01FFH的256个字节的附加RAM,通过垂直窗口也可作为能被RALU使用的“累加器”或者

通用寄存器。

地址单元18H和19H是80C196KC的堆栈指针。

这两个单元并不是特殊功能寄存器,如果

没有使用堆栈操作,它们可以当作普通的RAM来使用。

既然堆栈指针位于寄存器组这一区域

,RALU便可以很容易地对其进行操作和运算。

堆栈指针必需由程序员进行初始化,指向64K

存储空间的某一地方。

80C196KC的堆栈是向下(从高地址到低地址)生成的,所以堆栈指针

应初始化为最高堆栈区地址再加2。

另外需要注意的是堆栈区域必需从偶地址单元开始。

1.3.2特殊功能寄存器(SFR)

从00H至17H的地址单元是I/O控制寄存器或叫做特殊功能寄存器(SFR)。

80C196KC的

外围器件中,除口3和口4以外,均由特殊功能寄存器控制。

如图1-8所示,80C196KC配备

有3个水平窗口以增加特殊功能寄存器的数量,同时还能保持和MCS-96系列早期产品的兼容

性。

水平窗口之间可以通过程序来切换,但是任何时刻只能有一个窗口是打开的;CPU不能

存取那些没有打开(处于关闭状态)的窗口之内的寄存器的内容。

━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━

19H┃SP(HI)┃SP(HI)┃SP(HI)┃SP(HI)

18H┃SP(LO)┃SP(LO)┃SP(LO)┃SP(LO)

17H┃IOS2┃PWM0_CONTROL┃PWM2_CONTROL┃

16H┃IOS1┃IOC1┃PWM1_CONTROL┃

15H┃IOS0┃IOC0┃RESERVED┃

14H┃WSR┃WSR┃WSR┃WSR

13H┃INT_MASK_1┃INT_MASK_1┃INT_MASK_1┃INT_MASK_1

12H┃INT_PEND_1┃INT_PEND_1┃INT_PEND_1┃INT_PEND_1

11H┃SP_STAT┃SP_CON┃RESERVED┃

10H┃PORT2┃PORT2┃RESERVED┃RESERVED

0FH┃PORT1┃PORT1┃RESERVED┃RESERVED

0EH┃PORT0┃BAUD_RATE┃RESERVED┃RESERVED

0DH┃TIMER2(HI)┃TIMER2(HI)┃RESERVED┃T2CAP(HI)

0CH┃TIMER2(LO)┃TIMER2(LO)┃T2_CONTROL┃T2CAP(LO)

0BH┃TIMER1(HI)┃IOC2┃RESERVED┃

0AH┃TIMER1(LO)┃WATCHDOG┃RESERVED┃

09H┃INT_PEND┃INT_PEND┃INT_PEND┃INT_PEND

08H┃INT_MASK┃INT_MASK┃INT_MASK┃INT_MASK

07H┃SBUF(RX)┃SBUF(TX)┃PTSSRV(HI)┃

06H┃HSI_STATUS┃HSO_COMMAND┃PTSSRV(LO)┃

05H┃HSI_TIME(HI)┃HSO_TIME(HI)┃PTSSEL(HI)┃

04H┃HSI_TIME(LO)┃HSO_TIME(LO)┃PTSSEL(LO)┃

03H┃AD_RESULT(HI)┃HSI_MODE┃AD_TIME┃

02H┃AD_RESULT(LO)┃AD_COMMAND┃RESERVED┃

01H┃ZERO_REG(HI)┃ZREO_REG(HI)┃ZERO_REG(HI)┃ZREO_REG(HI)

00H┃ZERO_REG(LO)┃ZERO_REG(LO)┃ZERO_REG(LO)┃ZERO_REG(LO)

━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━

读水平窗口0写水平窗口0读写水平窗口1读写水平窗口15

图1-8各个寄存器窗口

水平窗口0是在8096BH特殊功能寄存器基础上增加而成的,与80C196KB的特殊功能寄存

器相同。

如图1-8所示,特殊功能寄存器由24个寄存器构成。

这些寄存器中,有些在读和写

时所操作的对象具有完全不同的功能。

水平窗口1包含有支持80C196KC新添加的部件或者功能所附加的特殊功能寄存器。

这些

特殊功能寄存器支持外设事务服务器(PeripheralTransactionServer简称为PTS)、两个新

的脉冲宽度调制器(PWM)、以及定时器T2和A/D转换器新增加的功能等。

这些寄存器和80C1

96KB不兼容。

所有的特殊功能寄存器在这个窗口下都是可读写的。

水平窗口15与水平窗口0功能互补。

那些水平窗口0中的只读寄存器在水平窗口15中变

成只写寄存器;相反那些水平窗口0中的只写寄存器在水平窗口15中变成只

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1