《单片机技术习题课5、6、7章》由会员分享,可在线阅读,更多相关《单片机技术习题课5、6、7章(21页珍藏版)》请在金锄头文库上搜索。
1、单片机技术习题课单片机技术习题课(第五、六、七章)(第五、六、七章)2021/6/161第五章第五章 单片机中断系统单片机中断系统2021/6/1625. 利用外部中断源利用外部中断源INT0、INT1,实现中断及中断嵌,实现中断及中断嵌套,设套,设INT1为高优先级。如图为高优先级。如图5-1所示,用两个按键所示,用两个按键S1和和S2,分别接到,分别接到P3.2和和P3.3引脚,按动两个中断引脚,按动两个中断按键,产生两个不同的中断。先按动低优先级中断按键,产生两个不同的中断。先按动低优先级中断源源S1键,紧接着按动高优先级按键键,紧接着按动高优先级按键S2键,将产生中键,将产生中断嵌套。
2、设中断为边沿触发方式,试编写程序,实断嵌套。设中断为边沿触发方式,试编写程序,实现上述功能,无中断请求时,两个二极管全灭,低现上述功能,无中断请求时,两个二极管全灭,低优先级中断请求时,优先级中断请求时,LED1亮亮5秒,高优先级中断时,秒,高优先级中断时,LED2亮亮5秒。秒。2021/6/1632021/6/164中断相关寄存器中断相关寄存器PT2PSPT1PX1PT0PX0 IP(B8H) BFH BEH BDH BCH BBH BAH B9H B8HEAET2ESET1EX1ET0EX0 IE(A8H)AFH AEH ADH ACH ABH AAH A9H A8HTF1TF0IE1IT
3、1IE0IT0 TCON(88H)8FH 8EH 8DH 8CH 8BH 8AH 89H 88H05H85H04H2021/6/165C语言源程序语言源程序#include sbit P1_0=P10;sbit P1_1=P11;sbit P3_2=P32;sbit P3_3=P33;void delay(void)/5秒钟延时函数秒钟延时函数unsigned int m,n;for(m=620;m0;m-)for(n=1000;n0;n-);2021/6/166void main(void) TCON=0X05;/外部中断为边沿触发方式外部中断为边沿触发方式IE=0X85; /开外部中断开外
4、部中断1,2IP=0X04; /int1为高优先级中断,为高优先级中断,int0为低优先级为低优先级中断,中断, P1_0=1;/两个两个LED灯熄灭灯熄灭P1_1=1; while(1);/等待中断等待中断C语言源程序语言源程序2021/6/167void int0_int(void) interrupt 0P1_0=0;delay( );P1_0=1;void int1_int(void) interrupt 2P1_1=0;delay( );P1_1=1;C语言源程序语言源程序ProteusProteus仿真仿真2021/6/168第六章第六章 MCS-51单片机的单片机的定时器定时器/
5、计数器计数器2021/6/16910. 用方式用方式1设计两个不同频率的方波,设计两个不同频率的方波,P3.6输出频输出频率为率为200Hz,P3.7输出频率为输出频率为 100Hz,晶振频率,晶振频率12MHz。分析:分析:定时时间:频率定时时间:频率200Hz,周期,周期=5ms,则定时,则定时2.5ms;工作方式:方式工作方式:方式1,TMOD =初值:初值:x= 216-2500 = 65536-2500 =63036D =0F63CH所以:所以:TH1=0F6H;TL1=3CH也可以写成:也可以写成:TH1=63036/256,TL1=63036%25610H2021/6/1610#
6、include sbit P3_6=P36;sbit P3_7=P37;void main()TMOD=0x10; TL1=0x3c; TH1=0xf6; TR1=1; ET1=1; EA =1; F0=0; while(1);void serve() interrupt 3 TL1=0x3c; TH1=0xf6; P3_6=P3_6; if(F0=0)F0=1; else F0=0;P3_7=P3_7; ProteusProteus仿真仿真2021/6/161115设设fosc=12MHz。试编写一段程序,对定时器。试编写一段程序,对定时器T1初始化,使之工作在模式初始化,使之工作在模式2,
7、产生,产生200s定时,并用查定时,并用查询询T1溢出标志的方法,控制溢出标志的方法,控制P1.1输出周期为输出周期为2ms的方的方波。波。分析:分析:工作方式:工作方式:T1模式模式2,TMOD =20H。初值:初值:x= 28-200 = 256-200 =56方波周期方波周期2ms,则每定时,则每定时5次次P1.1电平翻转一次。电平翻转一次。2021/6/1612 TF1=0; i+; if(i=5) P1_1=P1_1; i=0; #include sbit P1_1=P11;void main() unsigned char i,j; TMOD=0x20; TL1=56; TH1=5
8、6; TR1=1; while(1) while(TF1=1) ProteusProteus仿真仿真2021/6/1613第七章第七章 MCS-51单片机的串行口单片机的串行口 2021/6/16143简述串行口接收和发送数据的过程。简述串行口接收和发送数据的过程。答:答: 发送时,执行一条将数据写入发送缓冲器发送时,执行一条将数据写入发送缓冲器SBUF的指令,启动数据发送,发送完毕硬件将的指令,启动数据发送,发送完毕硬件将中断标志中断标志TI置置1; 接收时,用软件置接收时,用软件置REN=1、RI=0,即启动接,即启动接收功能,当从收功能,当从RXD引脚接收到一帧数据后由硬件引脚接收到一帧
9、数据后由硬件使中断标志使中断标志RI置置1。2021/6/16157设设fsoc=11.059 2MHz,试编写一段程序,其功能,试编写一段程序,其功能为对串行口初始化,使之工作于方式为对串行口初始化,使之工作于方式1,波特率为,波特率为1 200b/s;并用查询串行口状态的方法,读出接收缓冲;并用查询串行口状态的方法,读出接收缓冲区的数据并回送到发送缓冲区。区的数据并回送到发送缓冲区。分析:分析: 串口工作方式串口工作方式1,允许接收,则,允许接收,则SCON = 波特率波特率1200b/s,设,设T1工作于模式工作于模式2,则:,则: TMOD= 初值初值x=50H20HE8H2021/6
10、/1616 while(RI=0); RI=0; ACC=SBUF; SBUF=ACC;#include void main() SCON=0x50; TMOD=0x20; TH1=0xE8; TL1=0xE8; TR1=1;ProteusProteus仿真仿真2021/6/161712当当89C52串行口按工作方式串行口按工作方式1进行串行数据通信进行串行数据通信时,假定波特率为时,假定波特率为4800b/s,以中断方式传送数据,以中断方式传送数据,请编写全双工通信程序。请编写全双工通信程序。分析:分析: 串口工作方式串口工作方式1,允许接收,则,允许接收,则SCON =50H。 波特率波特
11、率4800b/s,设,设T1工作于模式工作于模式2,则:,则: TMOD=20H, 初值初值x=FAH2021/6/1618#include unsigned char data txbuf;unsigned char data rebuf;void main()SCON=0x50; TMOD=0x20; TH1=0xFA; TL1=0xFA; TR1=1; ES=1; EA=1; SBUF=txbuf; 2021/6/1619void serial_server() interrupt 4if(TI)TI=0;elseRI=0;rebuf=SBUF ;2021/6/1620 结束语结束语若有不当之处,请指正,谢谢!若有不当之处,请指正,谢谢!