白木时羽

导航

滚动抽签系统

 

从电路图分析得知,这个系统需要用到数码管显示屏(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时数码管显示屏上的数字会停止变化,当松开时数字继续变化

posted on 2019-10-21 02:28  白木时羽  阅读(596)  评论(1编辑  收藏  举报