標(biāo)題:
給大家分享下單片機(jī)獨(dú)立按鍵控制花樣流水燈程序Proteus仿真
[打印本頁]
作者:
jijkf
時(shí)間:
2020-5-22 09:10
標(biāo)題:
給大家分享下單片機(jī)獨(dú)立按鍵控制花樣流水燈程序Proteus仿真
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
捕獲.PNG
(36.2 KB, 下載次數(shù): 102)
下載附件
2020-5-22 09:10 上傳
單片機(jī)源程序如下:
#include <REG52.H>
#define uint unsigned int
#define uchar unsigned char
sbit k1=P1^0;
uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED從低位往高位移
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED從高位往低位移
uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED從1個(gè)亮到8個(gè)都點(diǎn)亮(從低位往高位)
uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED從1個(gè)亮到8個(gè)都點(diǎn)亮(從高位往低位)
uchar i,tm;
uchar num=0;
void disp1();
void disp2();
void disp3();
void disp4();
void delay_ms(unsigned int tim); //延時(shí)函數(shù)
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tm++;
if(tm>=10)
{
tm=0;
switch(num)
{
case 1: disp1();delay_ms(100);break;
case 2: disp2();delay_ms(100);break;
case 3: disp3();delay_ms(100);break;
case 4: disp4();delay_ms(100);num=0;break;
default:break;
}
}
}
void delay(uchar time)
{
uchar j,k;
for(j=time;j>0;j--)
for(k=125;k>0;k--);
}
void delay_ms(unsigned int tim) //延時(shí)函數(shù)
{
unsigned int i,j;
for(i=0;i<tim;i++);
for(j=0;j<120;j++);
}
void disp1() //狀態(tài)1 LED順時(shí)針轉(zhuǎn)一圈
{
for(i=0;i<8;i++)
{
P2=table0[i];
delay(1000);
}
P2=0xff;
for(i=0;i<8;i++)
{
P0=table0[i];
delay(1000);
}
P0=0xff;
}
void disp2() //狀態(tài)2 LED逆時(shí)針轉(zhuǎn)一圈
{
for(i=0;i<8;i++)
{
P0=table1[i];
delay(1000);
}
P0=0xff;
for(i=0;i<8;i++)
{
P2=table1[i];
delay(1000);
}
P2=0xff;
}
void disp3() //狀態(tài)3 LED自上而下逐漸點(diǎn)亮(一半點(diǎn)亮一半不亮)
{
delay(1000);
if(k1==1)
{
for(i=0;i<8;i++)
{
P0=table2[i];
P2=table2[i];
delay(1000);
}
}
}
void disp4() //狀態(tài)4 LED自下而上逐漸點(diǎn)亮(直到全部點(diǎn)亮)
{
for(i=0;i<8;i++)
{
P0=table3[i];
P2=table3[i];
delay(1000);
}
P0=0xff; P2=0xff;
}
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(k1==0)
{
delay_ms(500); //消抖
// while(!k1); //等待按鍵松開
if(k1==0)
{ num++;
while(!k1);
}
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
流水燈.rar
(68.44 KB, 下載次數(shù): 57)
2020-5-22 09:10 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
京津冀123
時(shí)間:
2020-7-7 18:34
請(qǐng)問哪個(gè)是protues文件呀
作者:
京津冀123
時(shí)間:
2020-7-7 18:34
請(qǐng)問哪個(gè)protues文件
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1