欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)6按鍵控制16位心形流水燈Proteus仿真程序
[打印本頁(yè)]
作者:
zhdh
時(shí)間:
2023-5-8 22:20
標(biāo)題:
單片機(jī)6按鍵控制16位心形流水燈Proteus仿真程序
6個(gè)按鍵,每一個(gè)按鍵代表一個(gè)花型,附帶Proteus仿真
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png
(85.42 KB, 下載次數(shù): 38)
下載附件
2023-5-9 00:49 上傳
單片機(jī)源程序如下:
/*
名稱:LED流水燈實(shí)驗(yàn)
LED接口:LED0-7--------P2
LED8-16-------P3
KEY1--------P1.0
KEY2--------P1.1
KEY3--------P1.2
KEY4--------P1.3
KEY5--------P1.4
用按鍵掃描和查表法實(shí)現(xiàn)花式流水燈,一次只能閉合一個(gè)按鍵
*/
# include <reg52.h>
# define uchar unsigned char
# define uint unsigned int
uchar i,flag1,flag2,flag3,flag4,flag5,flag6;
/******************* 定義按鍵 *****************************/
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^7;
/************************ 流水燈花樣設(shè)計(jì) ********************/
/***********外圈依次亮********/
uchar table1_1[]={0xef,0xfe,0xfd,0xfb,0xf7,0x7f};
uchar table1_2[]={0xf7,0x7f,0xbf,0xdf,0xef,0xfe};
/*****內(nèi)圈依次點(diǎn)亮 */
uchar table2_1[]={0xdf,0xbf};
uchar table2_2[]={0xfb,0xfd};
/******* 間隔一個(gè)循環(huán)點(diǎn)亮 ********/
uchar table3_1[]={0xfe,0xfb,0xef,0xbf};
uchar table3_2[]={0xfd,0xf7,0xdf,0x7f};
/*********第一行到第四行閃爍*************/
uchar table4_1[]={0xf0,0xff,0xf0,0xff,0xf0,0xff};
uchar table4_2[]={0x0f,0xff,0x0f,0xff};
uchar table4_3[]={0xf0,0xff,0xf0,0xff,0xf0,0xff,0xf0,0xff};
uchar table4_4[]={0x0f,0xff};
/*********16位流水燈**********/
uchar table5_1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
/**********全亮全滅交替*******/
uchar table6_1[]={0x00};
uchar table6_2[]={0xff};
/********************* 延時(shí)程序 ****************************/
void delay(uint x)
{
uint i;
while(x--)
for(i=50;i>0;i--);
}
//delay(1000)為1s
/****************** 判斷按鍵 ***********************/
void keyscan()
{ if(k1==0) //K1按下
{delay(10);
if(k1==0)
{
flag6=0;
flag2=0;
flag3=0;
flag4=0;
flag1=1;
flag5=0;
}
}
if(k2==0){ //K2按下
delay(10);
if(k2==0){
flag3=0;
flag1=0;
flag4=0;
flag5=0;
flag6=0;
flag2=1;
}
}
if(k3==0){ //K3按下
delay(10);
if(k3==0){
flag1=0;
flag2=0;
flag4=0;
flag5=0;
flag6=0;
flag3=1;
}
}
if(k4==0){ //K4按下
delay(10);
if(k4==0){
flag5=0;
flag6=0;
flag1=0;
flag2=0;
flag3=0;
flag4=1;
}
}
if(k5==0){ //K5按下
delay(10);
if(k5==0){
flag1=0;
flag2=0;
flag3=0;
flag4=0;
flag6=0;
flag5=1;
}
}
if(k6==0){ //K6按下
delay(10);
if(k6==0){
flag1=0;
flag2=0;
flag3=0;
flag4=0;
flag5=0;
flag6=1;
}
}
}
/************** 主程序 ************************/
void main()
{
P3=0xff;
P2=0xff;
while(1)
{keyscan();
//按下按鍵1
if(flag1==1)
{
P3=0xff;
for(i=0;i<6;i++)
{
P2=table1_1[i];
delay(1000);
keyscan();
}
P2=0xff;
for(i=0;i<6;i++)
{
P3=table1_2[i];;
delay(1000);
keyscan();
}
P3=0xff;
}
//按下按鍵2
if(flag2==1)
{
P3=0xff;
for(i=0;i<2;i++)
{
P2=table2_1[i];
delay(2000);
keyscan();
}
P2=0xff;
for(i=0;i<2;i++)
{
P3=table2_2[i];
delay(2000);
keyscan();
}
}
//*****當(dāng)按下第三個(gè)按鍵****
if(flag3==1)
{ P3=0xff;
for(i=0;i<4;i++)
{
P2=table3_1[i];
delay(1000);
keyscan();
} P2=0xff;
for(i=0;i<4;i++)
{
P3=table3_1[i];
delay(1000);
keyscan();
}
P2=0xff;
P3=0xff;
for(i=0;i<4;i++)
{
P2=table3_2[i];
delay(1000);
keyscan();
}
P2=0xff;
for(i=0;i<4;i++)
{
P3=table3_2[i];
delay(1000);
keyscan();
}
}
//按下第四個(gè)按鍵
if(flag4==1)
{
P3=0xff;
P2=0xff;
for(i=0;i<6;i++)
{
P2=table4_1[i];
delay(1000);
keyscan();
}
for(i=0;i<4;i++)
{
P2=table4_2[i];
delay(1000);
keyscan();
}
for(i=0;i<10;i++)
{
P3=table4_3[i];
delay(1000);
keyscan();
}
P3=table4_4[0];
}
//按下第五個(gè)按鍵
if(flag5==1)
{
P3=0xff;
for(i=0;i<8;i++)
{
P2=table5_1[i];
delay(1000);
keyscan();
}
P2=0xff;
for(i=0;i<8;i++)
{
P3=table5_1[i];
delay(1000);
keyscan();
}
P3=0xff;
}
//按下第六個(gè)按鍵
if(flag6==1)
{
P2=0xff;
P3=0xff;
for(i=0;i<1;i++)
{
P2=table6_1[i];
P3=table6_1[i];
delay(1000);
keyscan();
}
for(i=0;i<1;i++)
{
P2=table6_2[i];
P3=table6_2[i];
delay(1000);
keyscan();
}
}
}
}
復(fù)制代碼
Keil代碼與Proteus仿真下載:
4按鍵控制16LED流水燈.zip
(127.5 KB, 下載次數(shù): 45)
2023-5-8 22:14 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1