代码
1. #include<at89x52.h>
2. #defineSLEDP1
3. #defineKEY_0P2^0
4. #defineKEY_1P2^1
5. #defineKEY_2P2^2
6. #defineKEY_3P2^3
7. #defineKEY_4P2^4
8. #defineKEY_5P2^5
9. #defineKEY_6P2^6
10. #defineKEY_7P2^7
11. #defineKEY_8P3^0
12. #defineKEY_9P3^1
13. #defineKEY_AP3^2
14. #defineKEY_BP3^3
15. #defineKEY_CP3^4
16. #defineKEY_DP3^5
17. #defineKEY_EP3^6
18. #defineKEY_FP3^7
19. CodeunsignedcharSeg7Code[16]=//用十六进数作为数组
下标,可直接取得对应的七段编码字节
20. //012345678
9AbCdEF
21. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x
7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
22. voidmain(void)
23. {
24. unsignedchari=0;//作为数组下标
25. P2=0xff;//P2 作为输入,初始化输出高
26. P3=0xff;//P3 作为输入,初始化输出高
27. While(1)
28. {
29. if(KEY_0==0)i=0;if(KEY_1==0)i=1;
30. if(KEY_2==0)i=2;if(KEY_3==0)i=3;
31. if(KEY_4==0)i=4;if(KEY_5==0)i=5;
32. if(KEY_6==0)i=6;if(KEY_7==0)i=7;
33. if(KEY_8==0)i=8;if(KEY_9==0)i=9;
34. if(KEY_A==0)i=0xA;if(KEY_B==0)i=0xB;
35. if(KEY_C==0)i=0xC;if(KEY_D==0)i=0xD;
36. if(KEY_E==0)i=0xE;if(KEY_F==0)i=0xF;
37. SLED=Seg7Code[i];//开始时显示 0,根据 i 取应七段编
码
38. }
39. }