|
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (10.42 KB, 下載次數(shù): 80)
下載附件
2020-11-19 14:28 上傳
單片機(jī)源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
//延時函數(shù)ms
void _delay_ms(uint i)
{
uchar j;
for(;i>0;i--)for(j=0;j<120;j++);
}
//模式變量數(shù)組
uchar mo1[]={0x00,0xff};
uchar mo2[]={0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x00};
uchar mo3[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar mo4[]={0x03,0x0c,0x30,0xc0};
uchar mo5[]={0x0f,0x00};
uchar mo6[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
uchar mo7[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
uchar mo8[]={0x81,0x42,0x24,0x18};
uchar mo9[]={0x18,0x24,0x42,0x81};
//按鍵停止
sbit key1=P3^0;
//按鍵開始
sbit key2=P3^1;
//按鍵切換
sbit key3=P3^2;
//運行變量
uchar run;
//變量
uchar bz=0;
//計時變量
uint jishu1=0;
//不同模式狀態(tài)
uchar bz1=0;
uchar bz2=0;
uchar bz3=0;
uchar bz4=0;
uchar bz5=0;
uchar bz6=0;
uchar bz7=0;
uchar bz8=0;
uchar bz9=0;
#define PP P0
//普通顯示
void xianshi0()
{
PP=~0XFF;
}
//整體閃爍
void xianshi1()
{
jishu1=jishu1+1;if(jishu1>400){jishu1=0;bz1=(bz1+1)%2;}
PP=~mo1[bz1];
}
//單字閃爍
void xianshi2()
{
jishu1=jishu1+1;if(jishu1>400){jishu1=0;bz2=(bz2+1)%2;}
PP=~mo2[bz2];
}
//單字單向移動
void xianshi3()
{
jishu1=jishu1+1;if(jishu1>400){jishu1=0;bz3=(bz3+1)%8;}
PP=~mo3[bz3];
}
//多字單向移動
void xianshi4()
{
jishu1=jishu1+1;if(jishu1>400){jishu1=0;bz4=(bz4+1)%4;}
PP=~mo4[bz4];
}
//多字閃爍
void xianshi5()
{
jishu1=jishu1+1;if(jishu1>400){jishu1=0;bz5=(bz5+1)%2;}
PP=~mo5[bz5];
}
//整體向前
void xianshi6()
{
jishu1=jishu1+1;if(jishu1>400){jishu1=0;bz6=(bz6+1)%8;}
PP=~mo6[bz6];
}
//整體向后
void xianshi7()
{
jishu1=jishu1+1;if(jishu1>400){jishu1=0;bz7=(bz7+1)%8;}
PP=~mo7[bz7];
}
//兩邊向中間移動、
void xianshi8()
{
jishu1=jishu1+1;if(jishu1>800){jishu1=0;bz8=(bz8+1)%4;}
PP=~mo8[bz8];
}
//中間向兩邊移動
void xianshi9()
{
jishu1=jishu1+1;if(jishu1>800){jishu1=0;bz9=(bz9+1)%4;}
PP=~mo9[bz9];
}
全部資料51hei下載地址:
流水燈8個模式.rar
(75.92 KB, 下載次數(shù): 53)
2020-11-19 11:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|