一、实验目的
(1)掌握80C51扩展显示、外部中断的硬件设计和编程方法。
二、实验内容
按键每按下一次,数码管循环显示0-9字符。
三、实验接线图
图4-1 按键电路
图4-2 数码块显示电路
P17
数码块
P0
CPU
P16.Q4B
P2.0
P3.2
P12.x 按键
图4-3 实验接线图
四、实验程序
1、程序流程图
图2-4 主程序流程图 图2-5 中断服务程序流程图
2、源程序
#include #include #define uchar unsigned char #define uint unsigned int sbit P32=P3^2; uchar led_c[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }; void delay(uint N) //N=500,延时1s;N=5,延时10ms {uint i; while(N--) for(i=0;i<100;i++) _nop_();} void int0_s(void) interrupt 0 { uchar i; P2=0xfe; for(i=0;i<10;i++) {P0=led_c[i]; delay(500); P0=0xff;} } void main(void) { SP=0x40; P0=0xff; IT0=1; EA=1; EX0=1; while(1); } 五、实验步骤 1、P0口接数码显示模块的P17,P2.0接数码显示模块的P16的Q4B,键盘模块的P12引脚之一接P3.2; 2、用keil编辑、编译程序,生成hex文件; 3、用STC-ISP软件下载hex文件; 4、观察程序运行时数码块显示情况。 六、实验结果 七、思考题 1、调整接线,并修改程序,使接收到外部中断后数码管显示00-99数字。 2、利用外部中断,控制音乐的播放。下载本文