unsigned char sbit S38=P1^7; sbit BUZZ=P1^0; void delay() { uchar b; for(b=63;b>0;b--) { _nop_(); }} void main() { while(1) { uchar i; while(S38==1) { for(i=0;i<200;i++) { BUZZ=~BUZZ; delay(); } for(i=400;i>0;i--) // 延时 0.2s { delay(); }}}} 实验四外部中断实验一、实验目的 1 、学习外部中断技术的基本使用方法 2 、中断处理的编程方法。二、实验设备单片机实验箱一台; PC 机一台; USB 下载线一根。三、实验内容单片机外部中断 0( P3.2 )已与独立式键盘中 S27 连接,外部中断 1( P3.3 )已与 S28 连接, 要求在无外部中断时最右一位发光二极管( D26 )点亮。请编程实现:当 S27 按下,外部中断 0 请求中断, 控制发光二极管左移;当 S28 按下, 外部中断 1 请求中断, 控制发光二极管闪烁。( 要求外部中断 1优先级高于外部中断 0)。单片机与发光二极管的连续见实验一原理图, 独立式键盘原理图如图 4-1 所示。 4-1 独立式键盘原理图四、思考题 1. 51 单片机的中断系统由哪几个特殊功能寄存器组成? 2 .中断函数与函数调用有何不同? 3. MCS-51 单片机若要把外部中断源扩充为 6 个,另采用哪些方法?如何确定其优先级? 程序代码: #include<reg51.h> #include<intrins.h> sbit D26=P0^7; void delay() { int a,b; for(a=120;a>0;a--) { for(b=110;b>0;b--); }} void main()