標(biāo)題:
關(guān)于51單片機8位流水燈源程序+Proteus仿真圖
[打印本頁]
作者:
梅花君主
時間:
2021-2-13 15:00
標(biāo)題:
關(guān)于51單片機8位流水燈源程序+Proteus仿真圖
設(shè)計目標(biāo):
在開發(fā)板上實現(xiàn)一個鍵控8位流水燈,由兩個按鍵控制4種流水花樣,每種花樣有明確的區(qū)別(全滅和全亮不算)
本案例用到單片機中斷,位移等知識。
需要軟件:keil c51 (本機環(huán)境 Keil uVision5)
proteus (本機環(huán)境 proteus 8.11)
仿真電路圖如下:
pro.png
(65.49 KB, 下載次數(shù): 75)
下載附件
2021-2-13 14:59 上傳
需要原件: AT89C51
ERJ-6ENF1021V * 8
BUTTON * 2
LED-BLUE * 8
驅(qū)動程序如下:
#include <reg51.h>
#include <intrins.h>
//宏定義
#define uint unsigned int
#define uchar unsigned char
#define LED P2
sbit UP = P3^2;
sbit DOWN = P3^3;
uint keyValue = 0;
/*30毫秒延時函數(shù)*/
void Delay30ms() //@12.000MHz
{
unsigned char i, j;
i = 59;
j = 90;
do
{
while (--j);
} while (--i);
}
/*666毫秒延時函數(shù)*/
void Delay666ms() //@12.000MHz
{
unsigned char i, j, k;
_nop_();
i = 6;
j = 16;
k = 174;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
/*
初始化函數(shù) p2口置為高電平
*/
void init(void)
{
LED = 0xff;
UP = 1;
EA = 1; //中斷總允許為EA=1
//外部中斷0
EX0 = 1; //外部中斷請求0標(biāo)志位
IT0 = 0; //IT0=0低電平觸發(fā)
//外部中斷1
EX1 = 1; //外部中斷請求1標(biāo)志位
IT1 = 0; //IT1=0低電平觸發(fā)
}
/*
上選擇外部中斷
*/
void UpKey(void) interrupt 0
{
LED = 0xff;//led全滅
if(UP == 0)
{
Delay30ms();
if(UP == 0)
{
if(keyValue == 4){
keyValue = 0;
}else if(keyValue < 5){
keyValue = keyValue + 1;
}
}
}
}
/*
下選擇外部中斷
*/
void DownKey(void) interrupt 2
{
LED = 0xff;//led全滅
if(DOWN == 0)
{
Delay30ms();
if(DOWN == 0)
{
if(keyValue == 0){
keyValue = 4;
}else if(keyValue < 5){
keyValue = keyValue - 1;
}
}
}
}
void main(void)
{
//uint num = 0;
uchar data1= 0xfe;
init();
Delay30ms();
LED = 0x00;//led全亮
Delay666ms();
LED = 0xff;//led全滅
Delay666ms();
while(1)
{
switch(keyValue)
{
//左移1位
case 0 :
{
LED = data1;
data1 = data1<<1|0x01;
if(data1==0xff){
data1=0xfe;
}
Delay666ms();
break;
}
//右移1位
case 1 :
{
LED = data1;
data1 = data1>>1|0x00;
if(data1==0x00){
data1=0xfe;
}
Delay666ms();
break;
}
//前四后四
case 2 :
{
LED=0Xf0;
Delay666ms();
LED=0X0f;
Delay666ms();
break;
}
//插花
case 3 :
{
LED=0Xcc;
Delay666ms();
LED=0X33;
Delay666ms();
break;
}
//插花1
case 4 :
{
LED=0Xaa;
Delay666ms();
LED=0X55;
Delay666ms();
break;
}
}
}
}
復(fù)制代碼
全部資料51hei下載地址:
流水燈.zip
(97.54 KB, 下載次數(shù): 59)
2021-2-13 15:00 上傳
點擊文件名下載附件
工程文件
下載積分: 黑幣 -5
作者:
白小沐
時間:
2021-3-4 14:31
照著圖畫的,代碼也是復(fù)制的,跑起來一個也不亮是哪里出問題了?(難倒我這個萌新了
)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1