资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
单片机课程设计 中断的应用中断的应用 单片机课程设计 中断的应用中断的应用? 包括中断的设置和中断程序的编写 ? (1)中断的设置 ? 中断的设置包括IE寄存器的设置 寄存器的设置等。 ? 单片机复位后,有关寄存器进入下列状态 IE:0XX00000B、IP:XXX00000B ? 例1:启用外部中断INT0。 ? 可使用语句: ? IE=0x81; /其中0x81二进制数是 EX0置位1 ? 例2:启用外部中断INT0和INT1 ? 可使用语句: ? IE=0x85; /其中0x85二进制数是 EX0置位1,EX1置位1。 中断的应用 包括中断的设置和中断程序的编写。 寄存器的设置,IP寄存器的设置,TCON 有关寄存器进入下列状态,TCON:00H、 IP:XXX00000B、TMOD:00H。 二进制数是10000001,即把EA置位1, INT1。 二进制数是10000101,即把EA置位1,例3:启用外部中断INT0和INT1,INT1 可使用语句: IE=0x85; IP=0x04;/ 0x04二进制数是00000100 他中断为低优先级。 例4:启用外部中断INT0和INT1,INT1 级高于INT0。 可使用语句: IE=0x85;/也可以使用EA=1; EX1=1; EX0=1; PX1=1;/ 中断INT1高优先级 IT1=1;/中断INT1边沿触发 INT1,INT1的优先级高于INT0。 00000100,即把PX1置位1。其 INT1,INT1采用边沿触发,且优先 EA=1; EX1=1; EX0=1;语句? (2)中断程序的编写 ? INT0、INT1中断程序的格式 ? void xint0_isr(void) interrupt IE0_VECTOR using n ? ? INT0的中断服务程序 ? ? void xint1_isr(void) interrupt IE1_VECTOR using n ? ? INT1的中断服务程序 ? ? 其中IE0_VECTOR、IE1_VECTOR 中的常量,数值是0和2。using 选中4个不同的工作寄存器组 中断程序的格式: void xint0_isr(void) interrupt IE0_VECTOR using n void xint1_isr(void) interrupt IE1_VECTOR using n IE1_VECTOR是定义在文件regx51.h using后面的n取值03,可分别 个不同的工作寄存器组。? 中断标志与中断控制 ? (1)中断标志 ? 定时器控制寄存器定时器控制寄存器TCON TCON TCON D7 D7 D6 D6 D5 D5 功能 功能 T1T1中断 中断 标志 标志 T0T0中断 中断 标志 标志 位名称 位名称 TF1 TF1 TF0 TF0 位地址 位地址 8FH 8FH 8DH8DH TCON D4 D4 D3 D3 D2 D2 D1 D1 D0 D0 中断标 中断标 志 志 INT1 INT1 触发方 触发方 式 式 INT1 INT1 中断标 中断标 志 志 INT0 INT0 触发方 触发方 式 式 INT0 INT0 IE1 IE1 IT1 IT1 IE0 IE0 IT0 IT0 8BH 8BH 8AH 8AH 89H 89H 88H88H串行口控制寄存器串行口控制寄存器SCON SCON SCON D7 D7 D6 D6 D5 D5 D4 D4 位名称 位名称 位地址 位地址 功能 功能 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0 TI TI RI RI 99H 99H 98H 98H 串行发 串行发 送送 中中 断断 标标 志 志 串行接 串行接 收收 中中 断断 标标 志志(2)中断控制 中断允许控制寄存器IE IE IE D7 D7 D6 D6 D5 D5 D4 D4 位名称 位名称 EA EA ES ES 位地址 位地址 AFH AFH ACH ACH D4 D4 D3 D3 D2 D2 D1 D1 D0 D0 ES ES ET1 ET1 EX1 EX1 ET0 ET0 EX0 EX0 ACH ACH ABH ABH AAH AAH A9H A9H A8HA8H中断优先级寄存器IP IP IP D7 D7 D6 D6 D5 D5 D4 D4 位名称 位名称 PS PS 位地址 位地址 BCH BCH D4 D4 D3 D3 D2 D2 D1 D1 D0 D0 PS PS PT1 PT1 PX1 PX1 PT0 PT0 PX0 PX0 BCH BCH BBH BBH BAH BAH B9H B9H B8HB8H中断源的内部查询次序 中断源 中断源 中断标志 中断标志 外部中断外部中断0 0 定时器定时器T0T0中断 中断 外部中断外部中断1 1 定时器定时器T1T1中断 中断 串行口中断 串行口中断 IE0 IE0 TF0 TF0 IE1 IE1 TF1 TF1 RI+TIRI+TI 中断源的内部查询次序 中断标志 中断标志 优先查询次序 优先查询次序 IE0 IE0 TF0 TF0 IE1 IE1 TF1 TF1 RI+TI RI+TI 高高 低低80C51中断入口地址表 中断源中断源 INT0 定时器定时器T0T0 INT1 定时器定时器T1 T1 串行口中断 串行口中断 中断程序入口地址中断程序入口地址 0003H 000BH 000BH 0013H 0013H 001BH 001BH 0023H0023H定时/计数器工作方式 ? 8051定时/计数器有48051定时/计数器有4种工作方式 种工作方式 M1M0的状态确定。M1M0的状态确定。下面以 下面以 ? 1 1工作方式0 工作方式0 ? 当当M1M0=00时,M1M0=00时,工作于方式 工作于方式 设置为一个13设置为一个13位的计数器 位的计数器 和和TL0中的低5位组成,TL0中的低5位组成,其中 其中 当当TL0低5TL0低5位计数满时不向 位计数满时不向 TH0TH0进位,13进位,13位计满溢出 位计满溢出 数数213 =8192。 213 =8192。 种工作方式种工作方式,由TMOD中的 ,由TMOD中的 下面以下面以T0为例进行分析。 T0为例进行分析。 工作于方式工作于方式0,0,定时器/计数器被 定时器/计数器被 位的计数器位的计数器,这13位由TH0的高8位 ,这13位由TH0的高8位 其中其中TL0中的高3位不用, TL0中的高3位不用, 位计数满时不向位计数满时不向TL0第6位进位,而是向 TL0第6位进位,而是向 位计满溢出位计满溢出,TF0置“1”,最大计,TF0置“1”,最大计? 2 2工作方式工作方式1 1 ? 当当M1M0=01M1M0=01时时,工作于方式 工作于方式 为一个为一个1616位加位加1 1的计数器的计数器, , 位位TL0TL0组成组成。 。 ? 3 3工作方式工作方式2 2 ? 当当M1M0=10M1M0=10时时,工作于方式 工作于方式 成一个能重置初值的成一个能重置初值的8 8位计数器 位计数器 ? 4 4工作方式工作方式3 3 ? 定时器定时器/ /计数器计数器T0T0和和T1T1在前三种工作方式下 在前三种工作方式下 是完全相同的是完全相同的,但在方式但在方式3 3 大大。当当T1T1设置为方式设置为方式3 3时时, , 停止计数停止计数,其状态相当于将运行控制位设置成 其状态相当于将运行控制位设置成 因而因而T1T1不能工作在方式不能工作在方式3 3下 下 T0T0的两个寄存器的两个寄存器TH0TH0和和TL0TL0被分成两个互相独立的 被分成两个互相独立的 计数器计数器。 。 工作于方式工作于方式1,1,定时器定时器/计数器被设置 /计数器被设置 ,该计数器由高该计数器由高8位8位TH0和低TH0和低8 8 工作于方式工作于方式2,2,定时器定时器/计数器被设置 /计数器被设置 位计数器位计数器。 。 在前三种工作方式下在前三种工作方式下,其功能 其功能 3 3下下,T0T0与与T1的功能相差很 T1的功能相差很 ,它将保持初始值不变它将保持初始值不变,并 并 其状态相当于将运行控制位设置成其状态相当于将运行控制位设置成TR1=0TR1=0, , 下下。当将当将T0T0设置为方式设置为方式3 3时, 时, 被分成两个互相独立的被分成两个互相独立的8 8位位定时/计数器的应用 ? 1. 1. 初始化 初始化 ? 初始化的内容如下初始化的内容如下: : ? (1) (1) 根据设计需要先确定定时 根据设计需要先确定定时 工作方式工作方式,然后将相应的控制字送入 然后将相应的控制字送入 ? (2) (2) 计算出计数初始值并写入 计算出计数初始值并写入 ? (3) (3) 通过对中断优先级寄存器 通过对中断优先级寄存器 的设置的设置,确定计数器的中断优先级和是否开放中断 确定计数器的中断优先级和是否开放中断 ? (4) 给定时(4) 给定时/ /计数器控制寄存器 计数器控制寄存器 定时定时/ /计数器的启动和停止 计数器的启动和停止 ? 2. 2. 初值的计算 初值的计算 ? 80C5180C51定时定时/ /计数初值计算公式 计数初值计算公式 机器周期机器周期。 。 根据设计需要先确定定时根据设计需要先确定定时/ /计数器的工作模式及 计数器的工作模式及 然后将相应的控制字送入然后将相应的控制字送入TMOD寄存器中TMOD寄存器中。 。 计算出计数初始值并写入计算出计数初始值并写入TH0TH0、TL0TL0、TH1、TH1、TL1TL1中中。 。 通过对中断优先级寄存器通过对中断优先级寄存器IPIP和中断允许寄存器和中断允许寄存器IE IE 确定计数器的中断优先级和是否开放中断确定计数器的中断优先级和是否开放中断。 。 计数器控制寄存器计数器控制寄存器TCONTCON送命令字送命令字,控制 控制 计数器的启动和停止计数器的启动和停止。 。 计数初值计算公式计数初值计算公式:T初值T初值=2N=2N- -定时时间定时时间/ /? 例例4.54.5- -1 1 单片机晶振单片机晶振fosc=6 MHz fosc=6 MHz 定时中断方法产生周期为定时中断方法产生周期为4 ms 4 ms 出出,求工作在方式求工作在方式1 1时的定时初值 时的定时初值 ? 解解:依题意只要使依题意只要使P1.0P1.0每隔 每隔 4 ms4 ms的方波信号的方波信号。所以定时时间为 所以定时时间为 ? 机器周期机器周期=12/ fosc =12/(6 =12/ fosc =12/(6 ? T1T1初值初值=2N=2N- -定时时间定时时间/ /机器周期 机器周期 ? 216216- -2000s/2s=655362000s/2s=65536- - ? TH1=FCHTH1=FCH;TL1=18H。 TL1=18H。 fosc=6 MHzfosc=6 MHz,利用定时器利用定时器T1 T1 4 ms4 ms的方波的方波,并由并由P1.0P1.0端输 端输 时的定时初值时的定时初值。 。 每隔每隔2 ms2 ms取反一次即得周期为 取反一次即得周期为 所以定时时间为所以定时时间为2ms2ms。 。 =12/ fosc =12/(6=12/ fosc =12/(6106)=2106)=21010-6s=2s -6s
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号