欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
藍(lán)橋杯ct107d板子 單片機(jī)按鍵控制LED位移程序
[打印本頁]
作者:
haowei_liu
時間:
2020-9-24 22:48
標(biāo)題:
藍(lán)橋杯ct107d板子 單片機(jī)按鍵控制LED位移程序
/***************************************************************
*實(shí)驗(yàn)名稱:按鍵控制LED位移
*實(shí)驗(yàn)?zāi)康模?、掌握單片機(jī)IO口操作的基本方法
2掌握按鍵掃描即軟件延時消抖的基本原理
***************************************************************/
#include "reg52.h"
unsigned char read_key(void);
void key_proc(unsigned char key);
void delay(void);
//
void cls_buzz()
{
P2 = (P2&0x1F|0xA0);
P0 = 0x00;
P2 &= 0x1F;
}
void cls_led()
{
P2 = (P2&0x1F|0x80);
P0 = 0xFF;
P2 &= 0x1F;
}
//主函數(shù)
void main(void)
{
unsigned char temp;
cls_buzz();
cls_led();
while(1)
{
temp = read_key();
if(temp != 0xff)
{
delay(); //按鍵消抖
temp = read_key();
if(temp != 0xff)
{
//進(jìn)入按鍵處理函數(shù)
key_proc(temp);
while(P3 != 0xff); //等待按鍵釋放
}
}
}
}
//按鍵掃描函數(shù)
unsigned char read_key(void)
{
unsigned char temp;
unsigned char key_value = 0xff;
temp = P3&0x0f;
switch(temp)
{
case 0x0e:
key_value = 1; //S7
break;
case 0x0d:
key_value = 2; //S6
break;
case 0x0b:
key_value = 3; //S5
break;
case 0x07:
key_value = 4; //S4
break;
}
return key_value;
}
//按鍵處理函數(shù)
void key_proc(unsigned char key)
{
switch(key)
{
case 1:
P2 = (P2&0x1f|0x80);
P0++;
P2 &= 0x1f;
break;
case 2:
P2 = (P2&0x1f|0x80);
P0--;
P2 &= 0x1f;
case 3:
P2 = (P2&0x1f|0x80);
P0 += 2;
P2 &= 0x1f;
break;
case 4:
P2 = (P2&0x1f|0x80);
P0 -= 2;
P2 &= 0x1f;
break;
}
}
//延時函數(shù)
void delay(void)
{
unsigned char i, j;
i = 108;
j = 145;
do
{
while (--j);
} while (--i);
}
復(fù)制代碼
//本實(shí)驗(yàn)過程簡單,適合初學(xué)者學(xué)習(xí)。代碼皆為自己原創(chuàng),如有錯誤,望指正。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1