滚动抽签系统
从电路图分析得知,这个系统需要用到数码管显示屏(P0端口)和按键(P1端口)
可分析系统的要求
(1)使用数码管滚动1-9数字
(2)使用按键1进行控制
(3)当按键按下之后数码管数字停止滚动,数码管显示的数字就是抽签到的数字。
根据这些编写下图代码
1 #include <reg52.h> 2 #define LED_ALL P0 3 sbit KEY = P1^0; 4 void LED_XUNHUAN(unsigned char led_i) //自定义一个函数 进行数组循环 5 { 6 switch(led_i) 7 { 8 case 0:LED_ALL = 0x6f;break; //数字9 9 case 1:LED_ALL = 0x7f;break; //数字8 10 case 2:LED_ALL = 0x07;break; //数字7 11 case 3:LED_ALL = 0x7d;break; //数字6 12 case 4:LED_ALL = 0x6d;break; //数字5 13 case 5:LED_ALL = 0x66;break; //数字4 14 case 6:LED_ALL = 0x4f;break; //数字3 15 case 7:LED_ALL = 0x5b;break; //数字2 16 case 8:LED_ALL = 0x06;break; //数字1 17 } 18 } 19 20 void main(void) 21 { 22 unsigned char i; 23 while(1) 24 { 25 for(i=0;i<9;i++) 26 { 27 if(KEY == 0) //判断是否按键按下 如果是则循环停止 28 break; 29 else //否则继续循环 30 LED_XUNHUAN(i); 31 } 32 } 33 }
当按下按键1时数码管显示屏上的数字会停止变化,当松开时数字继续变化