当前位置:首页 >> 信息与通信 >>

96系列单片机简介及


第三章 96系列单片机简介及 应用实例
主要内容
?§3.1 硬件结构 ?§3.2 MCS-96指令系统 ?§3.3 80C196KB单片机应用实例
?目的:通过一种单片机的设计实例,掌握智能仪器仪表中CPU设计的 一般方法。

§3.1 硬件结构
主要内容 ?3.1.7 高速输入单元 (√) ?3.1.1 内部定时

?3.1.8 高速输出单元 (√) ?3.1.2 存储空间 ?3.1.9 模拟接口 ?3.1.3 芯片配置寄存器CCR ?3.1.10 串行口 (√) ?3.1.4 状态和控制寄存器 ?3.1.11 监视定时器 ?3.1.5 中断结构 (√)——重点 ?3.1.12 复位和掉电保护 ?3.1.6 定时器

3.1.1内部定时

内部定时(续)
8098为3分频结构,即每3个时钟周期为1个 状态周期,在12M的晶振下:
? ?1个状态周期=3个时钟周期 =1/12000000*3s=1/4μs (8T)

80C196为2分频结构:
?1个状态周期=2个时钟周期 =1/12000000*2s=1/6μs

3.1.2存储空间

寄存器组合空间 专用寄存器空间 掉电保护空间 ROM空间的寻址

(√)

0F F H 0F 0H 0E F H 1A H 19H 18H 17H 16H 15H 14H 13H 12H 11H 10H 0F H 0E H 0D H 0C H 0B H 0A H 09H 08H 07H 06H 05H 04H 03H 02H 01H 00H

P R O T EC T P O W D ER D O W N R AM R AM

STAC KP IO S 1 IO S 0 R ES ER VED SP_STAT R ES ER VED PORT2 PORT0 T IM E R 2(H ) T IM E R 2(L ) T IM E R 1(H ) T IM E R 1(L ) IN T _ P E N IN T _ M A S K S B U F (R X ) H S I_ S T A H S I_ T IM (H ) H S I_ T IM (L ) A D _ R E S (H ) A D _ R E S (L ) R 0(H I) R 0(L O ) R EA D

S T AC KP PW M_CON IO C 1 IO C 0 R ES ER V ED SP_CON PORT2 R ES ER V ED BAUD_R A R ES ER V ED W AT C HDO G IN T _ P E N IN T _ M A S K S B U F (T X ) HSO _C MD H S O _ T IM (H ) H S O _ T IM (L ) H S I_ M O D AD_C MD R 0(H I) R 0(L O ) W R IT E R ES ER VED C O DE R ES ER VED JU M P S E L F R ES ER VED CCR R ES ER VED IN T E R U P T V E C T O R PO RT4 PO RT3 O U T E R M E M I/O IN E R O R O U T E R R O M R A M I/O etc .

FFFFH

存 储 空 间

2080H 2030H -207F H 2020H -202F H 201C H -201F H 201A H -201B H 2019H 2018H 2012H -2017H 2011H 2000H 1F F F H 1F F E H 1F F D H 0100H 00F F H

IN N E R R A M 0000H

图 3.3 存 储 空 间 图

3.1.3芯片配置寄存器CCR
CCR的内容由用户预先写入018H单元(芯片配置字 节),系统复位时,该芯片配置字节被自动送入 CCR寄存器。(8位总线时一般为0BDH)

3.1.4状态和控制寄存器

8098有两个I/O控制寄存器IOC0和IOC1
?IOC0控制定时器2和高速输入线。 ?IOC1控制某些引脚功能、中断源和两个HSO引 脚。

控制寄存器
0 1 2 3 4 5 6 7
HSI.0 输入/分断 定时器2 复位,写1 使之复位 HSI.1 输入/分断
定时器2 外部复位允许/禁止 HSI.2 输入/分断 定时器2 复位源HSI.0/T2RST HSI.3 输入/分断 定时器2 时钟源HSI.1/T2CLK 图3.5 I/0 控制寄存器0

0 1 2 3 4 5 6 7

PWM/P2.5 选择 ACH7/EXTINT 选择 定时器1 溢出中断允许/禁止 定时器2 溢出中断允许/禁止 HSO.4 输出允许/禁止 TXD/P2.0 选择 HSO.5 输出允许/禁止

HIS 中断源选择FIFO 满/保持寄存
器已有数据 图3.6 I/0 控制寄存器1

状态寄存器
0 1 2 3 4 5 6 7
HSO.0 现行状态 HSO.1 现行状态 HSO.2 现行状态 HSO.3 现行状态 HSO.4 现行状态 HSO.5 现行状态 CAM 或保持寄存器满 HSO 保持寄存器满 图 3.7 I/0 状态寄存器 0

0 1 2 3 4 5 6 7

软件定时器 0 到时 软件定时器 1 到时 软件定时器 2 到时 软件定时器 3 到时 定时器 2 溢出 定时器 1 溢出 HSI FIFO 已满 HSI 保持寄存器数据可用 图 3.8 I/0 状态寄存器 1

3.1.5中断结构 (详细)
中断源 软件 外部中断 串行口 软件定时器 HS1.0 高速输出 HSI 数据 A/D 转换完成 定时器溢出 中断向量地址 2011H 2010H 200FH 200EH 200DH 200CH 200BH 200AH 2009H 2008H 2007H 2006H 2005H 2004H 2003H 2002H 2001H 2000H 优先级别 用户不可用 7(最高) 6 5 4 3 2 1 0(最低)

设置中断向量
;设置HSI,TIME,SPCON 的中断向量 ORG 2000H DCW TYCINT ;T1溢出中断 ORG 2004H DCW HSIINT ;HSIINT---高速输入中断 ORG 200AH DCW TIMEINT ;TIMEINT---软件定时中断

3.1.6定时器
系统中有两个16位定时器,定时器1和定时 器2。 定时器1作为实时时钟用来同步其 他事件。它自由运行,每8个状态周期加1。 (定时器+1时间为8T=?) 该计数器在任何时刻均可读出,但一般不 可改写,且除芯片复位之外也没有其他手 段使其停止计数并恢复为0。

定时器(续)
定时器1产生高速输入单元HSI和高速输出 单元HSO的基准时间。 定时器溢出时可用来产生中断,溢出间隔 时间(在12M晶振下):
?0FFFFH*8*T=65535*8*1/4≈131ms (三分频系列,如8098) ?0FFFFH*8*T=65535*8*1/6≈87ms (二分频系列,如80C196)

T1溢出中断服务子程序

TYCINT:PUSHF … POPF RET

3.1.7高速输入单元
HSI运行方式 HSI状态寄存器(HSI_STATUS) HSI的控制和操作 (√) (详细)

高速输入概述
高速输入单元HSI可用定时器1作实时时钟 来记录外部事件发生的时间。“高速”表 示事件的获取无需CPU的干预。 该单元有四条高速输入线(HSI.0-3),其中 HSI.2-3为双向引线,和HSO.4-5共用同一 引脚。由IOC0和IOC1确定。

HSI运行方式 运行方式HSI_MODE 一. HSI运行方式HSI_MODE
0 1 2 3 4 5 6 7
图3.9 HSI_MODE 寄存器 HSI.3 方式选择位 HSI.2 方式选择位 HSI.1 方式选择位 HSI.0 方式选择位

方式选择位 事件定义
00 8个正跳变为一个事件 01 每个正跳变为一个事件 10 每个负跳变为一个事件 11 每个跳变(正和负)均 为事件

二.HSI状态寄存器HSI_STATUS) HSI状态寄存器HSI_STATUS) 状态寄存器HSI_STATUS

各位的定义同图3.9
?其中低位表示本引脚上是否有事件发生; ?高位表示本引脚的现行状态。

三.HSI的控制和操作 HSI的控制和操作

有 关 控 制 见 HSI_MODE 、 IOC0 、 IOC1 、 INT_MASK、INT_PENDING以及中断向量。 中断发生后:先读HSI的状态,后读其中断 时间。(两者均得读,且顺序读)

HSIINT 子程序(记录脉冲)
HSIINT: LDB JBS JBS JBS JBS SJMP HI0: PUSHF HSIBJ,HSISTA HSIBJ,0,HI0 HSIBJ,2,HI1 HSIBJ,4,HI2 HSIBJ,6,HI3 HSIFH ST HSITIM ,HI0T … POPF RET

;判断是否0口中断 ;判断是否1口中断 ; 2 ; 3 ;读时间到HI0T中

3.1.8高速输出单元

HSO输出控制
? LDB HSO_COMMAND, #WHAT_TO_DO ? ADD HSO_TIME,TIMER1, #WHEN_TO_DO_IT

高速输出单元(续)
0 1 2 3 4 5 6 7 通 道 : 0-5 HSO.0-5 相 应 各 位 6 HSO.0-1 两 位 同 时 7 HSO.2-3 两 位 同 时 8-B 软 件 定 时 器 0-3 E 定时器 2 复位 F 启 动 A/D 转 换 中 断 /无 中 断 置 位 /清 0 定 时 器 2/1 × 图 3.10 HSO 命 令 格 式

软件定时1ms中断服务子程序
TIMEINT:PUSHF DI LDB HSOCOM ,#38H ;重设TIMEINT ADD HSOTIM ,TIMER1 ,#TIJG ;12M=#750 6M=#375 EI INC ZDCS ;中断次数加1 POPF RET

3.1.9模拟接口
模拟输入 AD_COMMAND

AD_RESULT

脉冲宽度调制输出(PWM)
数/模转换可以通过脉冲宽度PWM输出来实 现,PWM输出波形是一个重复周期为256个 状态周期,而占空比可变,占空比的变化 通过向PWM寄存器写入新值来实现。对此波 形进行积分,那么,即可得到一个DC电平, 通过改变占空比,可使该电平分256个阶梯 变化。

AD变换子程序
ADBH: ADBH: ORB LDB NOP NOP NOP ADDD1 ADDD1: JBS LDB LDB SHR ADD ADDC INC RET LDB TDHAO,ACHTDH TDHAO,#00001000 00001000B TDHAO,#00001000B ADCOM,TDHAO

;TDHAO标记ACHTDH TDHAO标记ACHTDH 标记 ;立即启动AD变换 立即启动AD变换 AD

LDB BL,ADL BL,3,ADDD1 BL,3,ADDD1 BL,ADL BH,ADH BX,#6 BX,#6 ADLJD,BX ADLJG,#0 ADLJG,#0 ADBHCS

;等待AD变换的完成 等待AD变换的完成 AD

;累计A/D变换值 累计A/D变换值 A/D ;A/D变换次数+1 A/D变换次数

3.1.10串行口
方式0:同步方式,通常用在以移位寄存器 为基础的I/O扩展方面 方式1:标准异步通讯方式。

串行口(续)
方式2和方式3:用于多机通讯

串行口(续)
串行口的控制

串行口波特率设置
1. 98:方式0=
? ? ?
XTAL1 ;B ≠ 0 4( B + 1)
BAUD RATE 方式0 方式1、2、3 12M 9600 8137 H 8270 H 8013 H 8026 H 6M 8009H 8000H +19

XTAL1 方式1、2、3= 64( B + 1)

4800

因为波特率寄存器的最高位用于对内部时钟源的 选择 ,当用XTAL1时,固定为“1”

2. 96系列单片机的波特率设置
方式0= 方式1、2、3=
BAUDRATE 9600 4800
X TA L1 1 6 ( B + 1)
X T A L1 ;B ≠ 0 2 ( B + 1)

6M 38 77

8M 51 103

10M 64 129

12M 77 155

主机

基于串行口的多机通讯

1

2

n

串行口方式2和方式3是提供给多机通讯 在方式2下,数据帧不会引起任何从机 通讯举例:主机和2号从机进行数据交换 用的。在方式2下若所接收到的第9位数据 中断。然而,地址帧却将在所有从机中激 1、主机和全部从机工作于方式2; 非1,则不会发生串行口中断,而方式3则 发中断。这样,各从机便在各自的中断服 2、主机以第9位为1发送地址码2; 均会中断。在多机系统中,当主机欲向某 务程序中检查所收到的字节是否等于自己 3、全部从机接收中断,2号判定被呼叫转 入 方 从机发送数据时,它首先发出一帧地址以 式 的地址。相等者即为被呼叫的从机,于是 3;其它从机仍然工作与方式2; 确定目的从机。地址帧和数据帧的不同点 它便切换到方式3下运行,以接收此后主机 4、主机发送数据,DB9=0,2号中断接收; 在于,前者之第9位数据位为1,后者之该 发来的数据;并回送主机数据后恢复到方 5、2号反送主机数据,主机接收; 位为0。 式2下等待。未被呼叫的多个从机则仍留在 方式2下继续自己的作业。
6、主机和2号从机再转入方式2待命。

串口中断服务程序
SERINT: SERINT: PUSHF RDAGA: RDAGA: LDB SPTEMP,SPSTAT ORB TEMP,SPTEMP SPTEMP,#60 60H ANDB SPTEMP,#60H JNE RDAGA TEMP,5 JBS TEMP,5,TRANS TEMP,6 JBS TEMP,6,GET SJMP SEROUT …

3.1.11监视定时器
在12M晶振下:
? 98:WATCHDOG溢出时间为:16ms ? 96:WATCHDOG溢出时间为:10.67ms

监视定时器的驱动:(连续写入)
? DI ? LDB ? LDB ? EI WATCHD,#1EH WATCHD,#0E1H

3.1.12复位和掉电保护
在电源处于正常范围且振荡器稳定后, 上电复位可用电容、单稳或其他方法 RESET引脚上至少保持两个状态周期的低电 实现,条件是它们能够提供一个宽度要 平就可使系统复位。 比Vcc和振荡器稳定下来所需的时间至少 RESET引脚电压升高后,系统将执行10 长两个状态周期的负脉冲。对于96系列 个状态周期的内部复位序列。在此期间, 单片机,复位电平是低电平有效。 芯片配置字节CCR被从2018H单元读出并进 而写入芯片CCR寄存器。

§3.2 MCS-96指令系统
主要内容 3.2.1操作数类型 (√) 3.2.2操作数的寻址 (√) 3.2.3程序状态字PSW 3.2.4指令系统

3.2.1操作数类型
字节型(BYTE) 字型(WORD) 短整数型(SHORT_INTEGER) 整数型(INTEGER) 位型(BIT) 双字型(DOUBLE_WORD) 长整数型(LONG_INTEGER)

3.2.2 操作数的寻址 (详细)
寄存器直接寻址 间接寻址 自动增量间接寻址 立即寻址 短变址寻址 长变址寻址 栈指针寄存器寻址 (LD (LD (LD (LD (LD (LD (LD AX,BX) AX,[BX]) AX,[BX]+) AX,#1234) AX,123[BX]) AX,1234[BX]) AX,2[SP])

3.2.3程序状态字PSW

位 标志

15 Z

14 N

13 V

12 VT

11 C

10 -

9 I

8 ST

7 6 5 4 3 2 1 0 中断屏蔽寄存器 INT_MASK

1. Z:0 标志,若为1,则表示刚刚进行的操作所得结果为0;

3.2.4指令系统
8098单片机共有100条指令。 80C196单片机共用112条指令,其中的100条与 8098完全相同。专用指令如:CMPL/MOVB/JNZW等 都是98所没有的。 (详细)

1.

数据传送指令

LD LDB ST STB LDBZE(字节→字)

LDBSE ( 短 整 数 → 整 数 )

?LD AX,BX; LDB AL,BL ?ST AX,BX; STB AL,BL ?LDBSE LDBZE不常用

2.

算术运算指令
ADD ADDB ADDC ADDCB SUBCB CMP CMPB MULU DIVU DIVUB DIV DIVB 80C196) SUB SUBB SUBC MULUB MUL MULB CMPL ( 双 字 比 较

?注意有无符号和操作数类型 ?MULU(16*16=32) MULUB(8*8=16) 无符号 ?DIVU(32/16=16 低16=商 高16=余数) ?DIVUB(16/8=8 低8=商 高8=余数) ?课堂练习:将1234分解为BCD码

BCD变换子程序 BCSD为入口,AX BX为转换的压缩BCD码
BCDBH:CLR CLR DIVU OR SHL LD CLR DIVU OR SHL LD CLR AX BCSG BCSD,#1000 AX,BCSD AX,#4 BCSD,BCSG BCSG BCSD,#100 AX,BCSD AX,#4 BCSD,BCSG BCSG DIVU OR SHL OR STB STB SHRB ANDB STB SHRB ANDB PMXYH:RET BCSD,#10 AX,BCSD AX,#4 AX,BCSG AL,BL AL,BHH BL,#4 BHH,#00001111B AH,AL AL,#4 AH,#00001111B

3.

逻辑操作指令
AND ANDB OR ORB
?ANDB AL,#11101111B ?ORB AL,#00010000B ?XORB AL,#00010000B

XOR XORB
;指定位清0 ;指定位置1 ;指定位取反

4.

栈操作指令
PUSH PUSHF POP 栈80C196专用)
?PUSHF ?PUSH ?PUSH ?… ?POP ?POP ?POPF AX BX BX AX

POPF

PUSHA

POPA(双字进

;96的堆栈向下生成SP=SP-2 ;若SP原为0F0H,BX压栈后SP=0EEH ;先入后出

5.

转移操作指令
LJMP SJMP BR LCALL SCALL (软件中断陷井,用户不用) RET TRAP

6.

条件转移指令

JC JNC JNH JE JH JNE JV JNV JLT JVT JNVT JGT JLE JST JNST
?CMPB ?JNH AL,BL ADDRESS0 ;当AL<=BL时跳转

JGE

7.

位为0或位为1的转移指令

JBS(位为1跳转) JBC(位为0跳转)
?JBS AL,0,ADDRESS1 ?JBC AL,0,ADDRESS2 ;当AL的第0位=1时跳转 ;当AL的第0位=0时跳转

8.

循环控制指令

DJNZ DJNZW(一个字的递减,80C196所有)
? ?LOOP1: ?LOOP0: ? ? LDB LDB NOP DJNZ DJNZ AL,#8 BL,#0F0H BL,LOOP0 AL,LOOP1

9.

单寄存器指令
EXT

DEC DECB NEG NEGB INC INCB EXTB(符号扩展) NOT NOTB CLR CLRB

?NEG 求补=求反+1 例如:-1=11111111B ?1=00000001,1求反=11111110B,求反+1=11111111B ?再例如DS1820输出的温度值为补码,若收到00000001B 则为+1,若收到11111111B则为-1。

10.

移位指令

SHL SHLB SHRAB SHRAL

SHLL

SHR

SHRB

SHRL

SHRA

?注:SHRA 为带符号右移,移位后左边补1 ?SHRAL AL(AL=#11000011B);AL结果=#11100001B

11.

专用指令

SETC CLRC NORML

CLRVT

RST

DI

EI

NOP

SKIP

?RST 机器码为0FFH ,软件复位 ?数据总线D0~D7接上拉排阻,若程序跑飞到无效地址, 取回指令为0FFH使系统复位。

12.

块移动(80C196所有)
BMOV BMOVI
?BMOV LREG,WREG ?其中LREG为源地址(低16位)指针和目的地址(高16 位)指针的组合,WREG为移动的字数
?BMOV LREG(高16位=5000H 低16位=4000H),WREG(16位=100)

?上面语句的作用为将以4000H为首地址的100个字的数 块移到以5000H为首地址的存储器中中

13.

伪指令

REG:定义寄存器地址 ORG:定义程序代码段地址 DSB DSW:定义寄存器地址的代码 DCB DCW:在指定的存储空间定义常数,即直接 将常数存放于指定地址存储空间 EQU:定义常数代码 END:程序结束标记

§3.3 80C196KB单片机测控系统应用实例

主要内容 (机车随车质量状态检测诊断报警装置) 3.3.1 装置研制背景 3.3.2 系统总体结构、检测参数及功能 (√) 3.3.3 系统软硬件设计 (√) 3.3.4 试验及结论

3.3.1 装置研制背景
目前,根据铁道部规定,机车实行定期大修、 段修,在段修中经常存在某些部件尚可运行,而 某些部件应早该更换的问题,这样势必存在浪费 和事故。因此有必要设计一种随车的仪器,随车 检测重要参数,并随车诊断报警、记录机车随车 实时的动态信息,数据转储后,通过地面数据分 析处理诊断出是否存在故障隐患,以保运输安全。

3.3.2 系统总体结构、检测参数及功能

系统总体结构、检测参数及功能(续)

装置检测诊断的内容 语音报警和应急故障处理提示的部分内容 系统总体功能 (详细)

3.3.3 系统软硬件设计
装置关键硬件的设计 单总线数字式DS18B20传感器编码与自动寻码定位 系统软件设计 系统软硬件详细功能描述 系统主机硬件的研制 系统传感器的选取 系统主机软件的研制 PC机软件的研制

装置硬件原理图
CPU板 信号采集和调理板

3.3.4 试验及结论
装置综合应用计算机软硬件技术、数据采集、记 录、显示及存储技术,实现对机车主要的电参数、 电气线路状态、油耗率、热工参数、轴温及火情 等质量参数的实时采集、记录、显示,并进行实 时的机车故障诊断、语音定点定性报警提示,通 过数据转储地面分析处理,参数性能变化趋势和 机车故障先兆信息,及时发现机车故障隐患,从 而提高机车质量,确保运输安全。

本章小结
本章重点介绍了96系列单片机的硬件结构、软件 操作以及一个基于80C196KB的随车智能仪表的设 计实例。 通过96系列单片机的实例,大家掌握智能仪表CPU 的一般设计方法。

本章作业

本章内容很多,有许多细节希望大家课下仔细阅 读相关章节。


相关文章:
单片机简介
软件特征是指指令系统特性开发支持 环境,指令特性即我们熟悉的单片机的寻址方式, ... 目录: 第一章 绪论 5 1.1 单片机简介 5 1.2 单片机的应用领域 6 1...
单片机种类介绍
单片机种类简介 单片机种类简介 ATMEL 公司的 AVR 单片机 单片机,是增强型 RISC ...MicroChip 单片机: MicroChip 单片机的主要产品是 PIC 16C 系列和 17C 系列 8 ...
单片机简介
单片机简介_电子/电路_工程科技_专业资料。MCS-51 单片机简介 2.1 NCS-51 单片机...MCS-51 系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下: ·8...
16位单片机简介
16位单片机简介_高等教育_教育专区。第8章 16 位单片机简介 主要内容: MCS-51 单片机基础上以 8096 为例简单介绍了 16 位单片机 MCS-96 的基本 在 组成、结构...
单片机简介及使用
单片机简介及使用_信息与通信_工程科技_专业资料。单片机组成及概述。...条指令只能完成有限的的功能, 为使计算机完成一定的或复杂的功能就需要一系列...
单片机的发展史简介
单片机的发展史简介_信息与通信_工程科技_专业资料。今日推荐 78份文档 不...单片机 英文翻译 9页 2下载券 当前单片机的类型及应用... 3页 1下载券 DAC...
STC89C52系列单片机简介
1.6 STC89C52 系列单片机简介 STC89C52 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。STC89C52 使用经典的...
STM32F103xx系列单片机介绍
STM32F103xx系列单片机介绍_电子/电路_工程科技_专业资料。单片机 非MCS51 集成ADC 较大存储器容量《智能仪表》网络作业 STM32F103xx 系列单片机介绍 STM32F103xx ...
单片机厂商及产品列举
单片机厂商及产品列举_电子/电路_工程科技_专业资料。单片机厂商及产品列举时间:2013...Intel 8051系列历史悠久,兼容产品众多,使用广泛 8xC251 16-bit MCS96系列 MXS...
第10章MCS-96单片机
通过 MCS-96 系列单片机的了解,让同学认识单片机的发展和培养学生学习除 MCS-51 单片机以外的单片机的能力。 教学内容: 1.MCS-96 系列单片机的主要性能与特点 2...
更多相关标签:
mcs96系列单片机 | 96单片机 | at89c51单片机简介 | 单片机简介 | k60单片机简介 | stc89c52单片机简介 | at89c52单片机简介 | at89s52单片机简介 |