国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

51單片機(jī)——LED點(diǎn)陣屏(顯示滾動畫面)

這篇具有很好參考價(jià)值的文章主要介紹了51單片機(jī)——LED點(diǎn)陣屏(顯示滾動畫面)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

?文章來源地址http://www.zghlxwxcb.cn/news/detail-416579.html

一、關(guān)于數(shù)碼管、LED點(diǎn)陣屏顯示的注意點(diǎn)

二、功能介紹

三、主要模塊的介紹

3.1 74HC595模塊和點(diǎn)陣屏顯示函數(shù)

3.1.1 74HC595介紹

3.1.2 點(diǎn)陣屏顯示函數(shù)MatrixLED()

3.2定時(shí)器中斷模塊

四、程序?qū)崿F(xiàn)

五、效果展示


?

一、關(guān)于數(shù)碼管、LED點(diǎn)陣屏顯示的注意點(diǎn)

  • 一定要消影,不然顯示的畫面有重影。不管是數(shù)碼管還是LED點(diǎn)陣屏,都是"段選--位選--段選--位選"或者"位選--段選--位選--段選"循環(huán)來顯示的,在每一個(gè)"段選--位選"或者"位選--段選"單元后面都要加一個(gè)延時(shí)函數(shù),延時(shí)1ms等待顯示穩(wěn)定后,再進(jìn)行"位選"或者"段選"的清零,即"段選—位選—延時(shí)1ms—清零位選—段選—位選"或者"位選—段選—延時(shí)1us—清零段選—位選—段選"。注意是清零段選還是清零位選。
  • 判斷按鍵按下操作。有時(shí)按下按鍵,數(shù)碼管就顯示一下,又滅了,這可能就是沒有對按鍵按下進(jìn)行判斷。在使用按鍵時(shí),只有當(dāng)我們按下按鍵時(shí)才會把鍵值返回,在沒按的期間,返回的值是初始化的值。也就是說,返回的鍵值沒有保存下來,只會在你按下的時(shí)候顯示一次鍵值,沒按的時(shí)候顯示的是初始的值。

二、功能介紹

? ? ? ? 用LED點(diǎn)陣屏顯示滾動的畫面。

三、主要模塊的介紹

3.1 74HC595模塊和點(diǎn)陣屏顯示函數(shù)

3.1.1 74HC595介紹

? ? ? ? 74HC595是串行輸入,并行輸出的移位寄存器,可用3根線輸入串行數(shù)據(jù),8根線輸出并行數(shù)據(jù)。這里主要用來拓展I/O口。

51單片機(jī)——LED點(diǎn)陣屏(顯示滾動畫面)

? ? ? ?74HC595的8個(gè)輸出端DPh~DPa分別接點(diǎn)陣屏列的輸入端D7~D0。從而控制列的顯示。

51單片機(jī)——LED點(diǎn)陣屏(顯示滾動畫面)

? ? ? 通過SER口輸入串行的數(shù)據(jù),當(dāng)SRCLK有上升沿信號時(shí),數(shù)據(jù)就往下移一位,當(dāng)數(shù)據(jù)滿了8位時(shí),給RCLK上升沿信號時(shí),8位數(shù)據(jù)就鎖存到QA~QH,QH'連接到下一片74HC595,繼續(xù)拓展16位、32位....,這里只是3線拓展到8線,QH'就不用接了。這樣單片機(jī)通過3個(gè)I/O口連接74HC595,輸出8位數(shù)據(jù)。

51單片機(jī)——LED點(diǎn)陣屏(顯示滾動畫面)

3.1.2 74HC595初始化函數(shù)和輸入函數(shù)

sbit SER=P3^4;
sbit SCL=P3^6;
sbit RCL=P3^5;
/*
	*函數(shù)名:  _74HC595Write(unsigned char byte)
	*函數(shù)功能:向74HC595串行輸入一個(gè)字節(jié)的數(shù)據(jù)
	*輸入:    byte	:一個(gè)字節(jié)數(shù)據(jù)
	*輸出:    無
*/
void _74HC595Write(unsigned char byte)
{
	int i=0;
	for(i=0;i<8;i++)
	{
		SER=byte&(0x80>>i);
		SCL=1;
		SCL=0;
	}
	RCL=1;
	RCL=0;	 
}
/*
	*函數(shù)名:  _74HC595_Init()
	*函數(shù)功能:初始化74HC595的SCL、RCL
	*輸入:	   無
	*輸出:	   無
*/
void _74HC595_Init()
{
	SCL=0;
	RCL=0;	
}

3.1.3?點(diǎn)陣屏顯示函數(shù)MatrixLED()

? ? ? ? 這里需要注意的就是要消影。

/*
	*函數(shù)名:   MatrixLED(unsigned char COL,unsigned char byte)
	*函數(shù)功能: 控制點(diǎn)陣屏某一列的顯示
	*輸入:		COL:列  范圍0~7; byte:要顯示數(shù)據(jù)的二進(jìn)制形式(8位)
	*輸出:     無
*/
void MatrixLED(unsigned char COL,unsigned char byte)
{
   _74HC595Write(byte);
   P0=~(0x80>>COL);
   Delay(1);
   P0=0xff;//消影
}

3.2定時(shí)器中斷模塊

? ? ? ? 這里用定時(shí)器控制畫面的移動速度,每100ms移動一下。

void Timer0_Init()//定時(shí)器0,工作方式1
{
	TMOD=0x01;
	TH0=0xfc;//1ms
	TL0=0x18;
	EA=1;
	ET0=1;
	TR0=1;
}
//定時(shí)100ms中斷
void Timer0_ISR() interrupt 1
{	
	static int count=0;
	count++;
	TH0=0xfc;
	TL0=0x18;
	if(count==100)//每100ms,offset加一,畫面移動左一下
	{
		count=0;
		offset++;
		if(offset>34)
		{
			offset=0;
		}	
	} 
}

四、程序?qū)崿F(xiàn)

#include <REGX52.H>
#include<INTRINS.H>
int offset=0;
sbit SER=P3^4;
sbit SCL=P3^6;
sbit RCL=P3^5;
unsigned char Animation[]={
						   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
						   0x7E,0x81,0x81,0x81,0x81,0x82,0x00,0x03,
						   0x03,0x03,0x03,0x03,0x00,0xFE,0x01,0x01,
						   0x01,0x01,0x01,0xFE,0x00,0xFF,0x90,0x90,
						   0x90,0xE0,
						   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
						  };//C_UP
void Delay(unsigned int Xms)	   //11.0592Mhz 1ms	
{
	unsigned char i, j;
	while(Xms--)
	{
	_nop_();
	i = 2;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
	}
}
void Timer0_Init()//定時(shí)器0,工作方式1
{
	TMOD=0x01;
	TH0=0xfc;//1ms
	TL0=0x18;
	EA=1;
	ET0=1;
	TR0=1;
}
void _74HC595Write(unsigned char byte)
{
	int i=0;
	for(i=0;i<8;i++)
	{
		SER=byte&(0x80>>i);
		SCL=1;
		SCL=0;
	}
	RCL=1;
	RCL=0;	 
}

void _74HC595_Init()
{
	SCL=0;
	RCL=0;	
}

void MatrixLED(unsigned char COL,unsigned char byte)
{
   _74HC595Write(byte);
   P0=~(0x80>>COL);
   Delay(1);
   P0=0xff;//消影
}
//定時(shí)100ms中斷
void Timer0_ISR() interrupt 1
{	
	static int count=0;
	count++;
	TH0=0xfc;
	TL0=0x18;
	if(count==100)//每100ms,offset加一,畫面移動左一下
	{
		count=0;
		offset++;
		if(offset>34)//42-8
		{
			offset=0;
		}	
	} 
}
int main()
{
	int i=0;
	_74HC595_Init();
	Timer0_Init();//T0初始化
	while(1)
	{
		for(i=0;i<8;i++)
		{
			 MatrixLED(i,Animation[i+offset]);
		}	 
	}
}

五、效果演示

LED點(diǎn)陣屏滾動顯示

?

?

?

?

?

?

?

到了這里,關(guān)于51單片機(jī)——LED點(diǎn)陣屏(顯示滾動畫面)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 畢業(yè)設(shè)計(jì) 基于51單片機(jī)控制LED點(diǎn)陣顯示器的設(shè)計(jì)

    畢業(yè)設(shè)計(jì) 基于51單片機(jī)控制LED點(diǎn)陣顯示器的設(shè)計(jì)

    序 ?? 畢業(yè)設(shè)計(jì)和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計(jì)項(xiàng)目,今天要分享的

    2024年02月02日
    瀏覽(95)
  • 基于AT89C51單片機(jī)的LED點(diǎn)陣顯示屏設(shè)計(jì)

    基于AT89C51單片機(jī)的LED點(diǎn)陣顯示屏設(shè)計(jì)

    點(diǎn)擊鏈接獲取Keil源碼與Project Backups仿真圖: [[https://download.csdn.net/download/qq_64505944/88637464?spm=1001.2014.3001.5503]] **[源碼獲取] B 源碼+仿真圖+課程設(shè)計(jì)+50 工程實(shí)訓(xùn)(三)課題設(shè)計(jì) LED點(diǎn)陣顯示屏設(shè)計(jì) LED點(diǎn)陣顯示屏通過編程控制可以顯示中英文字符、圖形及視頻動態(tài)圖形,廣泛用于指

    2024年02月02日
    瀏覽(27)
  • 126、仿真-基于51單片機(jī)16×16點(diǎn)陣滾動顯示仿真設(shè)計(jì)(Proteus仿真+程序+配套資料等)

    126、仿真-基于51單片機(jī)16×16點(diǎn)陣滾動顯示仿真設(shè)計(jì)(Proteus仿真+程序+配套資料等)

    方案選擇 單片機(jī)的選擇 方案一:STM32系列單片機(jī)控制,該型號單片機(jī)為LQFP44封裝,內(nèi)部資源足夠用于本次設(shè)計(jì)。STM32F103系列芯片最高工作頻率可達(dá)72MHZ,在存儲器的01等等待周期仿真時(shí)可達(dá)到1.25Mip/MHZ(Dhrystone2.1)。內(nèi)部128k字節(jié)的閃存程序存儲器,也就是說代碼量可以寫到128k字

    2024年02月17日
    瀏覽(31)
  • 【51單片機(jī)】LED 點(diǎn)陣

    【51單片機(jī)】LED 點(diǎn)陣

    參考:普中 51 單片機(jī)開發(fā)攻略 第13章 mian.c

    2024年01月22日
    瀏覽(29)
  • 51單片機(jī)LED點(diǎn)陣屏

    51單片機(jī)LED點(diǎn)陣屏

    LED點(diǎn)陣屏是一種由許多小型LED燈組成的矩陣式顯示屏。這些LED燈可以是單色、雙色或全彩的,它們排列成行和列的網(wǎng)格,可以根據(jù)需要點(diǎn)亮來顯示圖像、文字或動畫等內(nèi)容。LED點(diǎn)陣屏廣泛應(yīng)用于戶外廣告牌、室內(nèi)顯示、交通信號燈、電子價(jià)格標(biāo)簽和其他需要顯示信息的場合。

    2024年01月23日
    瀏覽(29)
  • 【51單片機(jī)】LED點(diǎn)陣屏

    【51單片機(jī)】LED點(diǎn)陣屏

    ??專欄【51單片機(jī)】 ??喜歡的詩句:更喜岷山千里雪 三軍過后盡開顏。 ??音樂分享【W(wǎng)aiting For Love】 大一同學(xué)小吉,歡迎并且感謝大家指出我的問題?? 目錄 ??74HC595圖片 ??74HC595原理 ??”上升沿“是什么意思 ??LED點(diǎn)陣屏顯示圖形? ??現(xiàn)象 ???代碼(三部分) main.c? Del

    2024年02月02日
    瀏覽(30)
  • 51單片機(jī)    8*8LED點(diǎn)陣(入門教學(xué))

    51單片機(jī) 8*8LED點(diǎn)陣(入門教學(xué))

    LED 點(diǎn)陣介紹 LED 點(diǎn)陣是由發(fā)光二極管排列組成的顯示器件,在我們?nèi)粘I畹碾娖髦须S 處可見,被廣泛應(yīng)用于汽車報(bào)站器,廣告屏等。 通常應(yīng)用較多的是 8*8 點(diǎn)陣,然后使用多個(gè) 8*8 點(diǎn)陣可組成不同分辨率的 LED 點(diǎn)陣顯示屏,比如16*16 點(diǎn)陣可以使用 4 個(gè) 8*8 點(diǎn)陣構(gòu)成。因此理解

    2024年02月02日
    瀏覽(24)
  • 51單片機(jī)8*8 LED點(diǎn)陣實(shí)現(xiàn)原理講解

    51單片機(jī)8*8 LED點(diǎn)陣實(shí)現(xiàn)原理講解

    本篇文章將為大家講解LED8*8點(diǎn)陣的使用方法。 LED 8 8點(diǎn)陣是由64個(gè)LED燈珠組成的,它們排列在一個(gè)8 8的矩陣中。每個(gè)LED燈珠都可以獨(dú)立控制,因此可以通過控制不同的LED燈珠來顯示不同的圖形、數(shù)字、字母等。 LED 8 8點(diǎn)陣的原理是利用LED燈珠的發(fā)光特性,通過控制LED燈珠的亮滅

    2024年02月09日
    瀏覽(22)
  • 51單片機(jī)——LED 點(diǎn)陣點(diǎn)亮一個(gè)點(diǎn),小白詳解

    51單片機(jī)——LED 點(diǎn)陣點(diǎn)亮一個(gè)點(diǎn),小白詳解

    LED點(diǎn)陣介紹: ? ? ? ?LED點(diǎn)陣是由發(fā)光二極管排列組成的顯示器件,在我們生活中的電器中隨處可見,被廣泛用于汽車報(bào)站器,廣告屏等。 ????????通常用用較多的是8*8點(diǎn)陣,然后使用多個(gè)8*8點(diǎn)陣組成不同分辨率的LED點(diǎn)陣顯示屏,比如16*16點(diǎn)陣可以使用4個(gè)8*8點(diǎn)陣構(gòu)成。因

    2024年02月09日
    瀏覽(23)
  • 三、51單片機(jī)用74HC595控制LED點(diǎn)陣

    三、51單片機(jī)用74HC595控制LED點(diǎn)陣

    (1)外觀 (2)作用 LED點(diǎn)陣通過LED(發(fā)光二極管)組成,以燈珠亮滅來顯示文字、圖片等,LED點(diǎn)陣顯示被廣泛應(yīng)用于各種公共場合,如汽車報(bào)站器、廣告屏以及公告牌等。 以8*8LED點(diǎn)陣為例。 (1)單片機(jī)端口直接驅(qū)動。驅(qū)動8*8的點(diǎn)陣需要2個(gè)IO端口(16個(gè)IO口)。 (2)使用串轉(zhuǎn)并移位鎖存器驅(qū)

    2024年02月03日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包