华工MCU与DSP专题一.docx
《华工MCU与DSP专题一.docx》由会员分享,可在线阅读,更多相关《华工MCU与DSP专题一.docx(25页珍藏版)》请在冰点文库上搜索。
华工MCU与DSP专题一
研究生课:
微机系统与实验
MCU与DSP技术
一.课程对象:
对单片微机(MCS51)基本系统进行学习和实验,以应用和开发研究为主。
二.课程目的和要求:
1.熟悉单片微机(MCS51)硬件结构和功能。
2.掌握单片微机(MCS51)的软件设计技术。
3.学习单片微机基本系统的扩展方法。
4.运用IBM微机及工具软件进行汇编和调试。
5.训练单片微机应用系统的硬软件设计和开发技能。
6.学习和了解数字信号处理器(DSP)的基本原理、硬件结构和指令系统。
三.课程内容(专题):
1.系统硬件结构和功能。
2.指令系统和软件方法。
3.系统扩展方法。
4.串行通信。
5.应用系统设计。
6.数字信号处理器。
四.实验安排:
(约10项)
1.第1~9项环绕课程内容进行,包含有深一步的实验指标,以适应程度较高的训练要求。
2.第10项实验为综合应用系统设计,提高指标要求,各自完成,期末提交结果。
3.单片机编程器或开发系统发给各自使用和保管,元器件按实验内容提供。
4.单项实验:
DSP应用设计入门。
五.参考书刊:
(MCS51系列类均可)
1.单片机技术及工程实践
—林土胜 编著
机械工业出版社,2010年
2.MCS-51系列单片机实用接口技术
—李华编
北京航空航天大学出版社,1993年
3.MCS-51系列单片机应用系统设计
—何立民编著
北京航空航天大学出版社,1991年
4.MCS-51系列单片机接口电路与应用程
序实例。
—沈德金,陈粤初等编著
北京航空航天大学出版社,1991年
5.TheTTLDataBookforDesign
Engneerings
-TexasInstrunentsIncorporated,
U.S.A.1981
6.MOTOROLACMOSIntegratedCircuits
-MotorolaINC.U.S.A.1978
7.ATMELNonvolatileMemory
-ATMELCorporation,1995
8.TMS320C2XX用户指南
—张芳兰等
电子工业出版社,1999年
9.DSP芯片的原理与开发应用。
—张雄伟等
电子工业出版社,2000年
10.DSP控制器原理及应用。
—宁改娣等
科学出版社,2002年
11.DSP控制器及其应用。
—章云等
机械工业出版社,2001年
附Fig.1-1:
实验板布局参考
附
Fig.1-1a:
NSP编程器外形
注:
活动IC座应带电拨插
附Fig.1-1b:
DSP编程器外形
附Fig.1-1c:
DSP实验芯片外形
专题一.系统硬件结构和功能
一.MCS-51系列单片机主要芯片及选用
1.8031(80C31)
无内部ROM,需外配EPROM,最小系统要用P0和P2口线扩展,P2口不能作I/O口用。
价廉,用于测试或一般应用系统的场合。
2.8051(80C51,80C52)
内置掩膜ROM(4KB,8KB),适宜芯片厂家大批量生产的应用场合。
3.8751(87C51,87C52)
内配有EPROM(4KB,8KB),P0~P3口线可全部供作I/O口线用,简单可靠,有加密位,可紫外光擦除;价贵,用于高性能比和紧凑的场合。
4.89C51(89C52)
内配有EEPROM(4KB,8KB),有加密位,可电擦写(1000次),数据保留10年,有待机功能,直接驱动LED,广泛应用。
*89C2051,(89C1051,89C4051)
20脚窄型,配有闪速存储器(2KB,1KB,4KB)15条I/O口线,其余同上。
5.97C51(97C52)
配置同(4),为OTP型(一次性可编程),数据保留100年,用于批量生产的应用。
6.97L2051
OTP型,低电压(2.7V~3.6V),适于干电池便携式应用场合。
7.89S51/89S52/89S2051
具有再线编程能力,其余功能同4。
*上述代表性类型,生产厂家如ATMEL、INTEL、PHILIP、韩国三星等,指令系统相同。
二.MCS-51单片机的功能引脚(40脚)
1.I/O口线
分为P0、P1、P2、P3共4个8位口(每位可写成P0.2,P1.3等形式)。
2.控制口线(最要紧4条)
PSEN片外取址允许
(ProgramStoreEnable)
ALE/PROG地址锁存允许
(AddressLatchEnable)
EPROM编程脉冲输入
(ProgramPulseInput)
EA/VPP片外存储器选择
(ExternalAccessEnable)
EPROM编程电压
(ProgrammingSupplyVoltage)
RST复位控制
(ResetInput)
3.电源及时钟
VCC+5v电源
VSS接地
XTAL1片内振荡器输入端
XTAL2片内振荡反相器输出端
三.MCS-51单片机内部基本功能部件
一个8位CPU。
一个片内振荡器及时钟电路。
128字节数据存储器(RAM)。
两个16位定时器/计数器。
可位寻址64KB片外RAM和64KB片外ROM控制电路。
32条可编程的4个8位并行I/O端口。
一个可编程全双工串行口。
5个中断源,两个优先嵌套中断结构。
四.MCS-51单片机CPU时序
1.
有关周期的概念
1-1
振荡周期:
CPU定时用的振荡源周期。
时钟周期:
又称状态周期,S周期
(含2个振荡周期,分成P1、P2两个节拍)
机器周期:
6个S周期,或6个S状态
(写成分成S1P1,S1P2,┅,S6P1,S6P2)
指令周期:
含1~4个机器周期。
2.指令字节与机器周期
MCS-51的指令长度为1~3字节。
关系:
单字节和双字节→单周期或双周期。
三字节→双周期。
乘法除法→四周期。
以6MHZ晶振为例:
振荡周期:
1/6μs
时钟周期:
1/3μs
机器周期:
2μs
指令周期:
2~8μs
3.CPU取指和执行时序
由时序关系图可知:
(1)ALE信号在访问ROM的机器周期内,两次有效。
在访问外RAM的机器周期内,一次有效。
(2)无论单字节或双字节指令,均在第一个机器周期内读完操作数。
(3)外部ROM,RAM地址空间重迭,但不混淆,因为MOVX执行时,在第一机器周期S5开始送外RAM地址,在第二机器周期读/写数据,但无ALE输出,不产生取指操作。
1-
2
五.MCS-51单片机的I/O端口
1.端口功能和用途
(1)P0口:
三态双向口。
可作输出输入
口(如数据出入口扩展,此时为准双向口),常作低8位地址/数据总线口分时使用。
(2)P1口:
准双向口(作输入线用时,口锁存器必须先写入1);作通用I/O口。
(3)P2口:
准双向口。
在8031或外设扩展用时作地址总线口。
(4)P3口:
准双向口;双功能口。
第一功能作通用I/O口,第二功能作特殊用。
2.
端口操作原理(以一位P0口为例)
1-3
(1)作地址数据总线使用
条件:
控制信号为1,MUX使反相器3与下拉FET(T2)连接,且与门4开通,控制上拉FET(T1),呈对外存储器存/取状态(应接上拉电阻)。
1)从地址/数据线送出地址或数据。
如:
总线为1时,T1导通,T2因3反相而截止,P0.X脚输出1;总线为0时,T1截止,T2导通,输出0。
2)外部数据需从缓冲器2入内部总线。
3)P0口不能再作I/O口使用。
(2)作通用I/O口用
条件:
控制信号为0,MUX使锁存器/Q端与下拉FET(T2)接通,且与门4关闭,上拉FET(T1)截止,下拉T2呈开路状态(应接上拉电阻)。
1)输出操作:
总线数据→锁存器/Q端→经T2反相→结果P0.X脚与总线的数据相同。
2)输入操作:
(分为两种方式)
*“取入先置1”原则,先给锁存器写入“1”,/Q端为“0”,使两个FET截止,呈高阻状态。
1-4
读引脚:
由“读”指令把三态缓冲器2打通,P0.X脚数据直接送入内部总线。
读锁存器:
“读-修改-写”指令把三态缓冲器1打通,读/Q端数据入总线,免从引脚误读。
举例:
如果P0.X脚接晶体管基极,经锁存器向口线写“1”,晶体管导通,把引脚电平拉低,“读引脚”结果为0,而读锁存器Q端,得正确的原状态为1。
指令识别:
读引脚:
MOVA,P0;I/O口作原操作数
目源
读-修改-写:
ANLP0,A;I/O口作目的操作数
目源
含义:
先读P0口数据入CPU,与累加器A数据逐位“逻辑与”,再写回到P0口。
(3)P1,P2,P3准双向口结构(略)
(4)复位后,P0~P3各口线均置为1。
六.
单片机(MCS51)存储器结构
1-5
1.存储器分五类
(1)程序存储器(8031全为外ROM)
(2)外部数据存储(外RAM﹑I/O口统一编址)
(3)内部数据存储器(128字节,含可寻址位)
(4)特殊功能寄存器(128字节仅26单元有定义)
(5)位地址空间(96位,分布在(3)和(4)类内)
2.程序存储器中6个特殊单元
(1)0001H(复位后PC值,程序起始地址)
(2)0003H(外部中断0入口地址)
(3)000BH(定时器0溢出中断入口地址)
(4)0013H(外部中断1入口地址)
(5)001BH(定时器1溢出中断入口地址)
(6)0023H(串行口中断入口地址)
3.
内部数据存储器的配置
1-6
注意:
(1)当前的工作寄存器区由PSW的D4,D3位修改,作快速保护现场用。
(2)可寻址位每位有位地址,从00H~7FH,作设置程序状态标志,位控制变量等。
(3)用不到的工作寄存器区,位寻址区,均
可做数据缓冲器用。
(4)专用SFR的可寻址位有两种表示法:
1-7
4.程序状态字PSW(8位)
包含有程序状态信息:
1-8
5.堆栈指针SP(8位)–特征:
(1)响应中断或调用子程序时,16位PC值
(物理上独立)能自动入栈,但PSW须
用PUSH指令压入堆栈保护。
(2)系统初始化时自动设定为07H处,程
序一开始最好设到高端,如60H处。
6.数据指针DPTR(16位)–特征:
(1)用来保持16位地址。
(2)也可分成两个8位用—DPH,DPL。
七.单片机(MCS51)定时器/计数器
1.定时器/计数器结构及特征:
用作内部定时或对外部事件计数
速率:
fosc/12(定时),fosc/24(计数)
1-9
(1)T0和T1:
两个16位,分别可编程。
(2)两种方式:
定时器,计数器。
(3)四种模式:
0~3
(4)由两个SFR控制:
TMOD,TCON。
2.
定时器的方式寄存器TMOD
1-10
(1)模式选择位模式功能
M1M0
00013位定时/计数器
01116位定时/计数器
1028位自动重装
113T0分两个8位,
T1停止工作。
定时器方式(计数输入
号来自内部时钟源,每
个机器周期计数1)
(2)方式选择位
(fosc/12)
计数器方式(外部输入
负跳变加1,用两个机
器周期识别1→0跳变)
(fosc/24)
(3)运行控制位
(允许开始计数与TCON有关)
GATE=0only:
TR0/TR1=1
(不受外部控制)
INT0/INT1=1
 ̄ ̄
 ̄ ̄
GATE=1both:
TR0/TR1=1&
(受外部中断输入脚控制)
(4)TMOD不可位寻址,需整体8位设置。
如:
MOVTMOD,#00010010B
3.
定时器控制寄存器TCON
1-11
(1)T0的运行控制位
TR0=1启动计数(软件置1和清零)
TR0=0停止计数(软件置1和清零)
(2)T0溢出中断标志位
TF0溢出--由硬件置1,申请中断,
中服后自动由硬件清零;
也可程序查询,清零。
(3)T1的运行控制位
TR1=1启动计数(软件置1和清零)
TR1=0停止计数(软件置1和清零)
(4)T1溢出中断标志位
TF1溢出--由硬件置1,申请中断,
中服后自动由硬件清零;
也可程序查询,清零。
4.定时器的工作模式
(1)
模式0:
M1M0置00
1-12
特征:
TL0高三位未用,组成13位
计数器,具有32预分频能力。
(2)模式1:
M1M0置01
差别:
组成16位计数器。
预置初值X:
(216-X)*2μS=1ms
X=216-500=65036→FEOCH
得:
TL0←OCH
TH0←FEH
(3)模式2:
M1M0置10
1-13
特征:
TL0置成自动重装初值计数器;
TH0作初值常数缓冲器,
TL0溢出时使TF0置1,重装TL0。
(4)模式3:
M1M0置11
特征:
只适于T0,分成TL0和TH0两个
独立8位计数器;
T1的TL1和TH1仍然可置为模式
0~2,但其TR1和TF1被TH0借用。
1-14
用途:
T1作串行口波特率发生器(模式2)
时,T0才定义为模式3,以增加一
个8位计数器(T1不能用溢出中断)
定时器模式3的应用:
1.定时器1设为模式2,作串行口波特率发生器用。
2.定时器0设为模式3,其中分成8位用。
1)TL0计数/定时方式:
用TR0启动,TF0
溢出中断。
2)TH0定时方式:
借用TR1启动,借TF1溢出中断。
3)串行口同时被启动,T1作自动重装。
举例:
TL0八位定时,溢出中断
TH0八位定时,产生方波,周期100μs,从P1.0输出。
T1作串行口波特率发生器
MOVTL0,#0FFH;定时常数
MOVTH0,#156;100μs
MOVTL1,#0F4H;波特率
MOVTH1,#0F4H;
MOVTMOD,#27H;定时器模式3,
TL0计数方式
MOVTCON,#55H;外部中断0和1,
(边沿触发),
定时0和1启动
MOVIE,#9FH;开放全部中断
┇
┇
(定时中断服务子程序)
TH0INT:
MOVTH0,#156;重装定时常数
CPLP1.0;方波输出
RETI;中断返回
八.单片机(MCS51)的中断系统
1.有关术语
中断:
属一种处理过程,要求CPU暂停当前工作,转去处理紧急事件,完后重返原处,继续原工作。
中断源:
向CPU请示中断的请求源(有五种)
中断优先级:
CPU优先响应最紧急的中断请求。
中断嵌套:
高级中断源可以中断低级中断源的处理过程。
(有两级嵌套能力)
2.中断请求源
两个外部源:
/INT0,/INT1
(P3.2)(P3.3)
(用于I/O设备或掉电故障等信号请求)
两个片内源:
TF0,TF1(溢出中断)
(T0)(T1)
片内一串行口:
TI或RI(中断请求)
(发)(收)
3.定时/计数器中断锁存寄存器TCON
1-15
用来锁存内、外中断源的有关位:
(1)TF1为T1溢出中断标志
TF0为T0溢出中断标志
(硬件置位,中断返回由RETI清零,
或查询由软件清零)
(2)IE1为外中断1中断标志
IE0为外中断0中断标志
(边缘触发者,中断响应后硬件清零,
但电平触发者,中断响应后不清标
志,靠RETI清除)
(3)外中断源触发控制位
IT1=0外中断1电平触发
IT1=1外中断1边缘触发
(软件置位、清除)
(4)IT0=0外中断0电平触发
IT0=1外中断0边缘触发
(软件置位、清除)
4.串行口中断控制寄存器SCON
(另述)
5.中断允许寄存器IE
1-16
(1)中断开放标志位
(对CPU而言)
EA=1中断总开放
EA=0中断总屏蔽
(2)ES=1允许串行口中断
ES=0禁止串行口中断
(3)ET1=1允许定时/计数器1中断
ET1=0禁止定时/计数器1中断
ET0=1允许定时/计数器0中断
ET0=0禁止定时/计数器0中断
(4)EX1=1允许外中断1中断
EX1=0禁止外中断1中断
EX0=1允许外中断0中断
EX0=0禁止外中断0中断
用法:
某一中断源允许中断,同时须CPU总开放中断,可由位寻址方式,用软件置1或清零。
如:
SETBEA;中断总开放
SETBEX0;外中断0开放
6.
中断优先级寄存器IP
1-17
(1)PS=1串行口为高优先级中断
PS=0串行口为低优先级中断
(2)PT1=1定时/计数器1为高优先级
PT1=0定时/计数器1为低优先级
PT0=1定时/计数器0为高优先级
PT0=0定时/计数器0为低优先级
(3)PX1=1外中断1为高优先级中断
PX1=0外中断1为低优先级中断
PX0=1外中断0为高优先级中断
PX0=0外中断0为低优先级中断
原则:
1)低级中断源可被高级源中断,
反之不能。
2)中断得到响应,同级中断源不能再
产生中断。
3)同时收到同级中断源,由内部查询顺序排队从高到低为:
/INT0→T0→/INT1→T1→串行口。
4)可由软件位寻址方式置1或清0
7.
中断响应过程
1-18
(1)在每个机器周期的S5P2采样并锁存各中断标志,新置入的标志状态到下一个机器周期被顺序查询到(中断查询在每个机器周期中重复进行)。
1)CPU响应某中断请求,首先置位“优先级激活触发器”,阻断同级和低级中断。
2)由硬件控制生成长调指令,转相应中断入口(矢量单元)
3)调用中服子程序时,把断点地址(PC内容)压入堆栈保护,同时把矢量单元地址装入PC
4)“中服”最末为中断返回指令RETI,弹出2字节PC值,执行原程序。
5)从产生中断请求到执行中服第一指令,其间最少要3个机器周期。
(2)中断受阻条件为:
1)正在服务同级或高级中断(未完)
2)执行的指令不是最后一个字节(执行完最长等待3个字节)
3)遇上正在执行RETI或对IE,IP寄存器读写指令(花1个字节执行完,再花最多4个字节执行后续1条指令,共5字节)
上述条件完成后,才执行中断响应。
(3)受阻条件撤消后:
若中断标志不再存在,未能置位(如电平触发不维持到中断得到响应为止),则延迟的中断不再响应。
8.外部中断触发方式选择
(1)
电平触发:
1-19
引脚电平至少应保持12振荡周期,以便电平信号(因每个机器周期内采样一次)能被采到而置位IEX,并应一直保持到中断得到响应为止。
适于外部以低电平输入,而中服程序返回前能清除(使变高电平)的场合,以免再次响应中断。
(2)
边沿触发:
1-20
要求输入的高低电平值至少各保持12个振荡周期,以确保引脚高低电平跳变被监测到而置位IEX。
适合于以负脉冲形式输入的场合。
(3)一个中断源的情况下,中断响应为3—8个机器周期之间。
设置如:
SETBITO;下降缘
SETBEX0;外中断0允许
SETBEA;总中断允许
九.单片机的复位状态
1.复位条件:
RST引脚2机器周期以上高电平,通常设计复位电路,10ms以上高电平。
2.循环复位:
只要RST保持高电平不降低。
3.复位结束:
RST电平从高变低后,即从0000H执行程序。
4.复位后初态:
(1)P0-P3口为高电平,处于输入状态。
(2)堆栈指针SP指向07H单元。
(3)PC和其余SFR清为0。
(4)不影响内部RAM状态。