系列单片机简介及应用实例.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 96系列单片机的波特率设置
方式0=
XTAL1 16( B 1)
方式1、2、3=
XTAL1 ;B 0
2( B 1)
BAUDRATE
6M
8M
10M
12M
9600
38
51
64
77
4800
77
103
129
155
主机
基于串行口的多机通讯 1 2n 用 非 均 从 确 在 位中 发 务 的 它 发 式 方为1的于会 机定入123456通串式2便程 来中断地,、、、、、、在方0。,中发目下讯行主 主 全 主 2主2。切序的。断址则式方号在前断送的下等举口机 机 部 机 机换不中数然。。3反式者方数继从。待;例和 以 从 发 和方到会检据而这相送2之式其续全第机送2据机在。:式方主号发下查 ;等,样它部接数9自第2时多。未主2机位从式生下,所 并者地 ,从从收据和己9被机, 地机数为机3机机中,串若位数收 回址各 即方的呼下和1系据再址它仍工断D发行所数据到 送帧从为式作转,叫运2B统帧首然作,送号口接据9帧的 主却机被3入主业行的中和先工=于2地是从中收位方号机不0字 机便呼将。作方多,发数,址,提机式判接断到为会节 数在叫在与式码个以2出据当供定2收进的,1号方2引据各的所是2待从接一帧主,被;;给;行中式第而命起后自从有否机收呼帧的机后多断数2。9方恢任的机从等;叫则此地不欲接者位机据式复中何机于,仍后收址同向之数通交3;到断中自从于留主以点某讯该据则换转方服在激机己机是
BAUD
1.
98:方式0=
XTAL1 ;B 0
RATE
4(B 1)
方式0
方式1、2、3
12M
6M
XTAL1
方式1、2、3=64(B 1)
9600 4800
8137 H
8270 H
8013 H
8026 H
8009H
8000H +19
因为波特率寄存器的最高位用于对内部时钟源的 选择 ,当用XTAL1时,固定为“1”
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确定。
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
寄存器组合空间 (√) 专用寄存器空间 掉电保护空间 ROM空间的寻址
存 储 空 间
0FFH
0F0H 0EFH
1AH
PROTECT POWDERD OWN RAM
RAM
19H STACKP 18H 17H 16H IOS1 15H IOS0 14H 13H RESERVED 12H 11H SP_STAT 10H RESERVED 0FH PORT2 0EH PORT0 0DH TIMER2(H) 0CH TIMER2(L) 0BH TIMER1(H) 0AH TIMER1(L) 09H INT_PEN 08H INT_MASK 07H SBUF(RX) 06H HSI_STA 05H HSI_TIM(H) 04H HSI_TIM(L) 03H AD_RES(H) 02H AD_RES(L) 01H R0(HI) 00H R0(LO)
HSO.0-1 两位同时
1
7
HSO.2-3 两位同时
8-B 软件定时器 0-3
2
E
定时器 2 复位
3
F
启动 A/D 转换
4
中断/无中断
5
置位/清 0
6
定时器 2/1
7
×
图 3.10 HSO 命令格式
软件定时1ms中断服务子程序
TIMEINT:PUSHF
DI
LDB HSOCOM ,#38H
;重设TIMEINT
READ
STACKP
PWM_CON IOC1 IOC0
RESERVED
SP_CON PORT2 RESERVED BAUD_RA
RESERVED
WATCHDOG INT_PEN INT_MASK SBUF(TX) HSO_CMD HSO_TIM(H) HSO_TIM(L) HSI_MOD AD_CMD R0(HI) R0(LO)
器已有数据
图 3.6 I/0 控制寄存器 1
状态寄存器
0
HSO.0 现行状态
1
HSO.1 现行状态
2
HSO.2 现行状态
3
HSO.3 现行状态
4
HSO.4 现行状态
5
HSO.5 现行状态
6
CAM 或保持寄存器满
7
HSO 保持寄存器满
图 3.7 I/0 状态寄存器 0
0
软件定时器 0 到时
1
软件定时器 1 到时
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存储空间
一. HSI运行方式HSI_MODE
0
HSI.0 方式选择位
1
2
HSI.1 方式选择位
3
4
HSI.2 方式选择位
5
6
HSI.3 方式选择位
7
图 3.9 HSI_MODE 寄存器
方式选择位
事
件定义
00 8个正跳变为一个事件 01 每个正跳变为一个事件 10 每个负跳变为一个事件 11 每个跳变(正和负)均 为事件
WRITE
INER OR OUTER ROM RAM I/O etc.
FFFFH
RESERVED CODE RESERVED JUMP SELF RESERVED CCR RESERVED
INTERUPT VECTOR
PORT4 PORT3
OUTER MEM I/O
INNER RAM
2080H 2030H-207FH 2020H-202FH 201CH-201FH 201AH-201BH 2019H 2018H 2012H-2017H 2011H
2
软件定时器 2 到时
3
软件定时器 3 到时
4
定时器 2 溢出
5
定时器 1 溢出
6
HSI FIFO 已满
7
HSI 保持寄存器数据可用
图 3.8 I/0 状态寄存器 1
3.1.5中断结构 (详细)
中断源 软件
外部中断 串行口 软件定时器
HS1.0 高速输出 HSI 数据
A/D 转换完成 定时器溢出
中断向量地址 2011H 2010H 200FH 200EH 200DH 200CH 200BH 200AH
ADFra Baidu bibliotek换子程序
ADBH: ORB LDB NOP NOP NOP
ADDD1: JBS LDB LDB SHR ADD ADDC INC RET
LDB TDHAO,ACHTDH TDHAO,#00001000B ADCOM,TDHAO
LDB BL,ADL BL,3,ADDD1 BL,ADL BH,ADH BX,#6 ADLJD,BX ADLJG,#0 ADBHCS
第三章 96系列单片机简介及 应用实例
主要内容
§3.1 硬件结构 §3.2 MCS-96指令系统 §3.3 80C196KB单片机应用实例
目的:通过一种单片机的设计实例,掌握智能仪器仪表中CPU设计 的一般方法。
§3.1 硬件结构
主要内容 3.1.7 高速输入单元 (√)
3.31..11.内8 部高定速时输出单元 (√) 3.31..21.存9 储模空拟间接口 33..311...341.芯 状10片 态串配和行置控寄制口存寄器存器CC(R√) 3.31..51.中11断监结视构 定(√时)器——重点 3.31..61.1定2时复器位和掉电保护
HI0:
ST HSITIM ,HI0T ;读时间到HI0T中
…
POPF
RET
3.1.8高速输出单元
HSO输出控制
LDB HSO_COMMAND, #WHAT_TO_DO
ADD #WHEN_TO_DO_IT
HSO_TIME,TIMER1,
高速输出单元(续)
0
通道:0-5 HSO.0-5 相应各位
6
时间。(两者均得读,且顺序读)
HSIINT 子程序(记录脉冲)
HSIINT: PUSHF
LDB HSIBJ,HSISTA
JBS HSIBJ,0,HI0
;判断是否0口中断
JBS HSIBJ,2,HI1
;判断是否1口中断
JBS HSIBJ,4,HI2
;2
JBS HSIBJ,6,HI3
;3
SJMP HSIFH
7
定时器 2 时钟源 HSI.1/T2CLK
图 3.5 I/0 控制寄存器 0
0
PWM/P2.5 选择
1
ACH7/EXTINT 选择
2
定时器 1 溢出中断允许/禁止
3
定时器 2 溢出中断允许/禁止
4
HSO.4 输出允许/禁止
5
TXD/P2.0 选择
6
HSO.5 输出允许/禁止
7
HIS 中断源选择 FIFO 满/保持寄存
二.HSI状态寄存器HSI_STATUS)
各位的定义同图3.9
其中低位表示本引脚上是否有事件发生; 高位表示本引脚的现行状态。
三.HSI的控制和操作
有 关 控 制 见 HSI_MODE 、 IOC0 、 IOC1 、 INT_MASK、INT_PENDING以及中断向量。
中断发生后:先读HSI的状态,后读其中断
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个阶梯变化。
定时器(续)
定时器1产生高速输入单元HSI和高速输出 单元HSO的基准时间。 定时器溢出时可用来产生中断,溢出间隔 时间(在12M晶振下):
0FFFFH*8*T=65535*8*1/4≈131ms (三分频系列,如8098) 0FFFFH*8*T=65535*8*1/6≈87ms (二分频系列,如80C196)
IOC0控制定时器2和高速输入线。 IOC1控制某些引脚功能、中断源和两个HSO 引脚。
控制寄存器
0
HSI.0 输入/分断
1
定时器 2 复位,写 1 使之复位
2
HSI.1 输入/分断
3
定时器 2 外部复位允许/禁止
4
HSI.2 输入/分断
5
定时器 2 复位源 HSI.0/T2RST
6
HSI.3 输入/分断
串口中断服务程序
SERINT: PUSHF RDAGA: LDB SPTEMP,SPSTAT
ORB TEMP,SPTEMP ANDB SPTEMP,#60H JNE RDAGA JBS TEMP,5,TRANS JBS TEMP,6,GET SJMP SEROUT …
DCW HSIINT ;HSIINT---高速输入中断
ORG 200AH
DCW TIMEINT ;TIMEINT---软件定时中断
3.1.6定时器
系统中有两个16位定时器,定时器1和定 时器2。定时器1作为实时时钟用来同步其 他事件。它自由运行,每8个状态周期加1。 (定时器+1时间为8T=?) 该计数器在任何时刻均可读出,但一般不 可改写,且除芯片复位之外也没有其他手 段使其停止计数并恢复为0。
2000H 1FFFH 1FFEH 1FFDH
0100H 00FFH
0000H
图 3.3 存储空间图
3.1.3芯片配置寄存器CCR
CCR的内容由用户预先写入018H单元(芯片配 置字节),系统复位时,该芯片配置字节被自动 送入CCR寄存器。(8位总线时一般为0BDH)
3.1.4状态和控制寄存器
8098有两个I/O控制寄存器IOC0和IOC1
;TDHAO标记ACHTDH ;立即启动AD变换
;等待AD变换的完成
;累计A/D变换值 ;A/D变换次数+1
3.1.10串行口
方式0:同步方式,通常用在以移位寄存器 为基础的I/O扩展方面 方式1:标准异步通讯方式。
串行口(续)
方式2和方式3:用于多机通讯
串行口(续)
串行口的控制
串行口波特率设置