• 方案介紹
    • 1.? 簡介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計報告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的心形流水燈設(shè)計(二)

04/28 09:25
247
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

單片機仿真設(shè)計合集資料獲取.pdf

共1個文件

資料清單:C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻

仿真版本:Proteus8.6及以上版本

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計編號:【Y04】

1.? 簡介

本文提出了一種基于51單片機的流水燈設(shè)計。本系統(tǒng)由AT89C51單片機為控制核心,通過按鍵實現(xiàn)不同花樣的基本功能。

2.? 主要功能

a.支持單片機輸出32個引腳,通過按鍵實現(xiàn)不同的心型流水燈花樣效果。

3.? 源程序(Keil5)

本設(shè)計采用keil5 C51軟件(內(nèi)附安裝包)實現(xiàn)程序設(shè)計。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。

#include <REGX52.H>
#define	uint	unsigned int
#define	uchar	unsigned char
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個亮到8個都點亮(從低位往高位)
uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED從1個亮到8個都點亮(從高位往低位)
uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED從8個全亮到一個都不亮(從低位往高位)
uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED從8個全亮到一個都不亮(從高位往低位)
uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED從低位往高位移(最低位始終為0)
uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED從高位往低位移(最高位始終為0)
uchar i,j;		//定義循環(huán)變量
uint tt=70;		//定義時間指數(shù)
sbit K1 = P1^0;
sbit K2 = P1^1;
sbit K3 = P1^2;
sbit K4 = P1^3;
sbit K5 = P1^4;
sbit K6 = P1^5;
sbit K7 = P1^6;
sbit K8 = P1^7;
void delay(uint time)	//延時函數(shù)
{
	uint x,y;
	for(x=time;x>0;x--)
	for(y=110;y>0;y--);
}


void disp0()			//狀態(tài)0 所有LED閃爍3次
{
	for(i=0;i<3;i++)
	{
		P0=0x00; P2=0x00; P3=0x00; 
		delay(300);
		P0=0xff; P2=0xff; P3=0xff; 
		delay(300);
	}
}

void disp1()			//狀態(tài)1 LED順時針轉(zhuǎn)一圈
{
	for(i=0;i<8;i++)
	{
		P2=table1[i];
		delay(100);
	}
	P2=0xff;
	for(i=0;i<8;i++)
	{
		P3=table1[i];
		delay(100);
	}
	P3=0xff;
	for(i=0;i<8;i++)
	{
		P0=table0[i];
		delay(100);
	}
	P0=0xff;
}

void disp2()			//狀態(tài)2 LED逆時針轉(zhuǎn)一圈
{
	for(i=0;i<8;i++)
	{
		P0=table1[i];
		delay(100);
	}
	P0=0xff;
	for(i=0;i<8;i++)
	{
		P3=table0[i];
		delay(100);
	}
	P3=0xff;
	for(i=0;i<8;i++)
	{
		P2=table0[i];
		delay(100);
	}
	P2=0xff;
}

void disp3()			//狀態(tài)3 4個LED同時順時、逆時針移動1/4圈
{
	for(i=0;i<8;i++)
	{
		P0=table1[i];
		P2=table1[i];
		P3=table0[i];
		delay(100);
	}
	for(i=0;i<8;i++)
	{
		P0=table0[i];
		P2=table0[i];
		P3=table1[i];
		delay(100);
	}
	P3=0xff; P0=0xff; 
}

4.? 仿真proteus8.6

? 本設(shè)計采用proteus8.6軟件(內(nèi)附安裝包)實現(xiàn)仿真設(shè)計,如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

仿真界面:

5.? 設(shè)計報告

設(shè)計報告主要包括硬件電路、軟件設(shè)計、仿真調(diào)試等等,僅供參考。

6.? 資料清單

設(shè)計資料主要包括C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤下載鏈接:【Y04】百度網(wǎng)盤下載鏈接

更多單片機仿真設(shè)計合集:單片機仿真設(shè)計合集

  • 單片機仿真設(shè)計合集資料獲取.pdf
    下載

相關(guān)推薦