- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 单片机内部电路综述
第4章 单片机内部电路;TCON 定时/计数器 控制Reg
SCON 串行口 控制Reg.
IE 中断 允许Reg.
IP 中断 优先级Reg.;TF1,TF0—— C/ T 中断请求标志(“1”)
当T0、T1加1计数导致溢出时,由硬件自动
使TFi 置“1”,向CPU申请中断。
当CPU响应中断后,被硬件自动清0。也可
由软件清0。;其余:TR1,TR0——定时器运行控制位(见定时/计数器); 当串口发送(或接收)一帧串行数据后,由内部硬件置中断标志 TI (或 RI )为“1”。
CPU响应串行口的中断时,并不清零TI、RI,必须由软件清0。;1:高优先级,0:低优先级;(ⅰ)89C51复位时,IP的低5位全部清零,将所有中断源设置为低优先级中断。;① 开中断(CPU,源)
② 优先级排队
③ 执行完当前指令才响应(若是RETI或访问IE、IP的指令时,需执行完其后的一条指令才响应);例: ORG 0000H
AJMP MA ;转主程序
ORG 000BH ;转T0中断服务子程序
AJMP L0
:
MA: ……
:
L0: ……; 2. 外中断多于2个时——可用中断+查询方式 ( 例);0003H AJMP INT0
:
0013H AJMP INT1
:
INT0: PUSH PSW
PUSH A
JB P1.0,IR0
JB P1.1,IR1
JB P1.2,IR2
JB P1.3,IR3
:
EXIT: POP A
POP PSW
RETI;五、中断程序举例; ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INSER
ORG 0030H
MAIN: SETB EX0
SETB IT0
SETB EA
HERE: SJMP HERE
ORG 0200H
INSER: MOV A, #0F0H
MOV P1,A
MOV A, P1
SWAP A
MOV P1,A
RETI
END;中断源;;;定时:对片内振荡器的f0/12(机器周期)进行计数。
定时时间=(2n-初值)×机器
周期;定时/计数器工作方式由控制字TMOD、TCON来决定;2. TCON(88H)——控制和标志寄存器;定时/计数器0 可以工作在模式 0~3
定时/计数器1 可以工作在模式 0~2; ③ GATE
一般不用,但是当GATE=0时,禁止INTi。;START:MOV TMOD,#06H ;设置T0为模式2,外部计数方式
MOV TH0,#0FFH ;T0计数器初值255
MOV TL0,#0FFH
SETB TR0 ;启动T0计数
LOOP1:JBC TF0,PTF01 ;查询T0溢出标志,TF0=1转移,且TF0=0.
SJMP LOOP1
PTF01: CLR TR0 ;停止计数
MOV TMOD,#02H ;设置T0为模式2,定时方式
MOV TH0,#06H ;T0定时500us
MOV TL0,#06H
CLR P1.0 ;p1.0清0
SETB TR0 ;启动定时500us
LOOP2:JBC TF0,PTF02 ;查询溢出标志,定时到TF0=1转移,且TF0=0.
SJMP LOOP2
PTF02: SETB P1.0 ;P1.0置1
CLR TR0 ;停止计数
SJMP START;模式3:仅对定时/计数器0有效 T0?TH0+TL0
对定时/计数器1,停止计数。; 但
文档评论(0)