本程序主要是按键练习,在实验板的LED数码管显示对应的按键的编号。 #include <REGX52.H> typedef unsigned int uuint; typedef unsigned char uchar; #define KEY1 P2_0 //定义 KEY1 #define KEY2 P2_1 //定义 KEY1 #define KEY3 P2_2 //定义 KEY1 #define KEY4 P2_3 //定义 KEY1 #define KEY5 P2_4 //定义 KEY1 #define KEY6 P2_5 //定义 KEY1 #define KEY7 P2_6 //定义 KEY1 #define KEY8 P2_7 //定义 KEY1 const uchar LEDSEG[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //段数组定义 const uchar LEDBIT[]={0x7f, 0xbf, 0xdf, 0xef, 0xf7,0xfb,0xfd,0xfe} ; //位数组定义 void mDelay(uchar Dat) //延时子程序 { uchar j; while (--Dat) for (j=110;j>0;--j); } main() //主程式 { uchar dat,i; P1_5=0; while(1) { P1_4=0; //允许键盘部分 if(!KEY1) dat="1"; if(!KEY2) dat="2"; if(!KEY3) dat="3"; if(!KEY4) dat="4"; if(!KEY5) dat="5"; if(!KEY6) dat="6"; if(!KEY7) dat="7"; if(!KEY8) dat="8"; P1_4=1; //禁止键盘部分 P0=LEDSEG[dat] ; //取得数组 sstbl 第 i+1 个数据并输出至PO (将数值显示于 LED 上) P2=LEDBIT[i++] ; //扫瞄第 i 个数码管 if(i >=8) //若 i 大于等于 8 则 i="0" ; //令 i = 0 mDelay(5) ; //延时 } } |
wang1jin 2007-1-9 01:14
我晕...
电路图...去我博客找吧...
用户70812 2007-1-8 11:26
电路图你找wang1jin吧
用户1175252 2007-1-6 11:27
用户1053025 2007-1-5 15:34
我这个算是跟风啦:D
wang1jin 2007-1-3 12:25
帮老指顶一顶.HE HE.