用兩個(gè)按鍵控制八燈的亮滅,一次加一或減一
led.jpg (97.57 KB, 下載次數(shù): 39)
下載附件
仿真圖
2019-7-8 11:58 上傳
以下為原程序:
- #include <REGX52.H>
- #define LED P0 // LED 接 P0口
- typedef unsigned int u16;
- typedef unsigned char u8;
- u16 num = 0;
- sbit key_jia = P2^0; //按鍵加
- sbit key_jian = P2^1; //按鍵減
- /***** 0000 0001 0000 0011 0000 0111 0000 1111 0001 1111 0011 1111 0111 1111 1111 1111 *****/
- u8 code table[] = {0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
- /*******************************延時(shí)********************************/
- void delay(u16 i)
- {
- while(i--);
- }
- /******************************按鍵**********************************/
- void key(void)
- {
- if(key_jia == 0) // 按鍵加
- {
- delay(1000); // 消抖
- if(key_jia == 0)
- {
- num++; // 加一
- if(num == 9)
- {
- num = 8; // 最多到7
- }
- }
- while( !key_jia ); // 檢測(cè)按鍵加是否松開
- }
- if(key_jian == 0) //按鍵減
- {
- delay(1000);
- if(key_jian == 0)
- {
- if(num != 0) // 判斷是否到0
- {
- num--; // 減一
- }
- else
- {
- num = 0; // 到0停
- }
- }
- while( !key_jian ); // 檢測(cè)按鍵減是否松開
- }
- }
- /******************************main************************/
- void main(void)
- {
- LED = table[0]; // 8燈為滅
- while(1)
- {
- key(); // 按鍵
- LED = table[num]; // led
- }
復(fù)制代碼
全部資料51hei下載地址:
按鍵led及仿真.zip
(56.21 KB, 下載次數(shù): 36)
2019-7-8 12:01 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|