欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
51單片機按鍵控制流水燈花樣代碼與Proteus仿真
[打印本頁]
作者:
黑電子ABCf
時間:
2023-4-14 18:25
標(biāo)題:
51單片機按鍵控制流水燈花樣代碼與Proteus仿真
大家好,新手小白。分享先前嘗試用51做的按鍵控制流水燈花樣,有六個按鍵,分別實現(xiàn)單個燈的亮滅、從上往下流動、從下往上流動、全閃、全滅、暫停六種功能。已經(jīng)成功仿真,有時候不太靈敏需要多按幾下,附源碼源程序。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
仿真.PNG
(51.29 KB, 下載次數(shù): 32)
下載附件
仿真原理圖
2023-4-14 18:12 上傳
單片機源程序如下:
#include<reg51.h>
sbit LED1=P2^0;
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;
sbit K6=P1^5;
unsigned char keyval,num=0;
int i,j,n;
void delay_ms(int n)
{
for(i=0;i<n;i++)
for(j=0;j<120;j++);}
void forward() //從上往下流動
{
P2=0xfd;
delay_ms(150);
P2=0xfb;
delay_ms(150);
P2=0xf7;
delay_ms(150);}
void backward() //從下往上流動
{
P2=0xf7;
delay_ms(150);
P2=0xfb;
delay_ms(150);
P2=0xfd;
delay_ms(150);}
void blink() //全閃
{
P2=0xff;
delay_ms(100);
P2=0x00;
delay_ms(100); }
void key_scan()
{
P1=0xff;
if((P1&0x3f)!=0x3f)
{
delay_ms(100);
if(K1==0)
{keyval=1;num=(num+1)%2;}
if(K2==0)
keyval=2;
if(K3==0)
keyval=3;
if(K4==0)
keyval=4;
if(K5==0)
keyval=5;
if(K6==0)
keyval=6;}
while((P1&0x3f)!=0x3f);}
void main()
{
keyval=0;
while(1)
{
key_scan();
switch(keyval)
{
case 1 :LED1=!num;break; //按一下亮按一下滅
case 2 :forward();break;
case 3 :backward();break;
case 4 :blink();break;
case 5 :P2=0xff;break; //全滅
case 6 :while(keyval!=6);break;}}} //暫停
復(fù)制代碼
Keil代碼與Proteus仿真下載:
按鍵控制流水燈花樣.zip
(70.76 KB, 下載次數(shù): 48)
2023-4-14 18:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1