16×32點陣c語言,16×16點陣程序

本文目錄一覽:

我用74LS595做行驅動,74LS154做列驅動做了一個16×32的雙色點陣,急需C語言程序,隨便顯示什麼字。謝謝大

各種顯示,時間,溫度等功能。

給你一個參考:

可以去我的博客下載:

LED 點陣漢字顯示屏

概 述

這次比賽製作由於時間緊,同時為了降低製作難度, 僅作了四個字的輪流顯示,實際使用時可根據這個原理自行擴充顯示的字數。

設計製作主要運用於學校的宣傳欄,如:本科評估的各種信息,學校學院重要通知,天氣預報等各種信息。

系統設計

一 硬件電路

(1)系統組成:

主要硬件電路:LED 點陣條屏是由 16 個 8*8 的 LED 點陣塊組成,形成 16*64 矩形點陣,以AT89S51為控制核心。顯示屏的其他主要硬件有:

① 帶鎖存輸出的 8位移位寄存器74HC595,作為LED的列線驅動輸入;

② 四六譯碼器 74LS154,作為 LED行線的譯碼選擇(實際製作中考慮成本問題改為兩個74HC138聯合);

③ 三極管 9012,連接四六譯碼器的十六個輸出端,作為開關使用,驅動LED的行線。

圖二 AT89S51單片機最小系統

AT89S51相關器件連接的接腳如下:PA0-PA3連接4-16譯碼器的輸入口A,B,C,D;PB0-PB3連接74HC595的輸入口 SI,SCK,RCK;PD6-PD7作串口通信使用連接RxD,TxD 兩個三八譯碼器74LS138組成的16個輸出端連接 16 個 9012的三極管的基極 B,發射極E 連接5V電源,集電極C連接到三個漢字點陣的16 個行線控制端。 點陣的 48 列數據線驅動由 6 片 74HC595 級聯組成,前一片 74HC595 的 Q』H 引腳連接下一片的SI引腳,各片的SCK、RCK、SRCLR、G引腳分別並聯。

(2)LED點陣塊

圖三 LED點陣塊

8*8的LED點陣為單色行共陰模塊,單點的工作電壓為正向(Vf)=1.8 v ,正向電流(IF)= 8-10 mA 。靜態點亮器件時(64點全亮)總電流為 640mA,總電壓為 1.8 v,總功率為 1.15 W。動態時取決於掃描頻率(1/8或1/16秒),單點瞬間電流可達 80-160 mA。 16*16點陣靜態時16*16*10mA,動態時單點電流80-160mA。

實際測試:整機電流700 mA

(2) 移位寄存器74HC595

圖四 74HC595內部邏輯圖

74HC595是帶鎖存輸出的8位移位寄存器,其管腳見下圖,其中SI是串行數據的輸入端;VCC、GND分別為電源和地;RCK是存儲寄存器的輸入時鐘,SCK是移位寄存器的輸入時鐘,SCLR是移位寄存器的輸入清除,Q』H是串入數據的輸出,G是對輸入數據的輸出使能控制,QA~QH串入數據的並行輸出。從SI口輸入的數據在移位寄存器的SCK腳上升沿的作用下輸入到74HC595中,在RCK腳的上升沿作用下將輸入的數據鎖存在74HC595中,當G為低電平時時,數據並行輸出。SCLR為移位寄存器的輸入清除端。

(3) 74HC138以及驅動電路

圖五 74HC138以及驅動電路實物圖

4-16線譯碼器(用兩塊74HC138組成),其管腳如圖所示,A,B,C,D為譯碼的輸入端,值的區間從0000到1111,Y1~Y15是對應A,B,C,D四個輸入引腳的輸出腳,其中選中的線用輸出低電平,沒有選中的輸出高電平,G1、G2是使能端,只有輸入相應D低電平才能使譯碼器正常工作。

驅動三極管為16個9012,用萬能板焊接。

二 軟件設計

單片機方的程序設計 單片機在LED點陣漢字顯示系統中主要負責數據的接收、存儲和掃描顯示 LED點陣屏三大主要功能。串行移動的子程序設計 這是一個通用子程序,在顯示子程序中都要被調用,功能是移位寄存器 74HC595接收單片機發出的點陣行數據,逐位移動到對應位置後再進行鎖存和輸出工作,同時對四六譯碼器進行開關工作,控制屏幕的顯示。

部分程序:初始化程序:

#include AT892051.H

#define uchar unsigned char

#define uint unsigned int

#define SPEED 3

uchar col,disrow;

uint word;

uchar code HZ[];

uchar BUFF[6];

void loadoneline(void);

void sendoneline(void);

發送部分程序:

void sendoneline(void)

{

char s;uchar inc;

if(col8)inc=0;else inc=1;

for(s=4+inc;s=0+inc;s–)

{

SBUF=two_onebyte(BUFF[s],BUFF[s+1]);

while(!TI);TI=0;

}

}

三 調試

調試主要分為硬件調試和軟件調試:

硬件調試:在焊接電路板的時候,應該從最基本的最小系統開始,分模塊,逐個進行焊接測試。在對各個硬件模塊進行測試時,要保證軟件正確的情況下去測試硬件,要不然發生錯誤時,不知道到底是哪一方出錯了。當然,在設計的過程中也存在着失誤和不足。

軟件調試:軟件部分是先參考書上的例子,然後自己根據硬件電路寫程序,由於以前所學是C語言,所以這個系統在編寫程序過程中都採用C語言編寫。剛剛開始,編寫不會一次性通過,經過仔細分析修改最後編譯成功。但是,在實際寫如S51中,LED顯示屏出現各種各樣的亂碼,通過再次認真仔細分析多次修改程序後,程序能夠正常運行。

四 總結

在 LED點陣漢字顯示屏的設計過程中,學到了很多東西,基本了解了整個嵌入式開發的流程。例如,在進行整個設計之前,應該先根據需求分析,對單片機進行選型,然後對各個硬件模塊進行搭試。在畫PCB電路板的時候,要注意基本的布板原則。例如,在進行PCB布板的時候,濾波電容不夠靠近芯片的電源腳和地腳。在進行搭試點陣塊的時候,因為電壓過高,導致點陣塊損壞。這次第一屆電子設計製作,本人受益非淺,在以後的電子設計製作過程中一定吸取教訓。

參考文獻:

[1]何立民.單片機應用技術選編[M].北京:北京航空航天大學出版社.1998.

[2]杜春雷.如何使用Visual Basic 6.0 dP3~ [M].北京:機械工業出版社,1999.

[3]孫育才.新型AT89S51系列單片機及其應用[M].北京:清華大學出版社.2005.

經驗小結:

1,在頭文件增加「#pragma SRC(LED.ASM)」語句,可以生成彙編文件,對於理解

彙編語言程序是有很大的好處的。

2,在製作PCB板過程中,業餘條件下很難做雙面板,不地不做的時候考慮如何布

線才能達到最優最好。

3,在「」;Keil C51軟件的安裝,按照該軟件

的安裝,可以得到無限量的程序編譯。因為在寫程序的過程中發現,KEIL C51 只

能編譯2K的程序代碼,不夠用。用C編寫,感覺很容易理解。程序編寫過程中最好

是先參考別人的程序,再修改能不能實用自己的程序要求,之後才自己去編寫完

全屬於自己的程序。

4,單片機仿真軟件 PROTEUS 也是很不錯的。在上面可以仿真很多東西。

設想:

1,可以掛在學校的十字路口,提供日期,時間,溫度,濕度等天氣信息,服務廣大同學。

2,可以和電腦相連接,實現同步顯示。做一個完整的系統。

進一步學習下面的軟件或者語言(知識):

BV

protel 99 se

keil c51

proteus

c/c++

easy isp 51

Easy 51Pro.exe

2007-5-25

下面為靜止顯示「農林大學」四個字的程序:

#include REG51.h

#define uchar unsigned char

#define uint unsigned int

uchar disrow;

uchar code HZ[];

uchar BUFF[9];

void loadonelineandsend(void);

/********************************************/

/*******************************************************/

void main(void)

{

while(1)

{

for(disrow=0;disrow16;disrow++)

{

loadonelineandsend();

P1=0x10+disrow;

P1=0x20+disrow;

}

}

}

/******************************************************/

void loadonelineandsend(void)

{

uchar s;

int q;

q=0;

for(s=0;s4;s++)

{

BUFF[q]=HZ[32*s+disrow*2];

BUFF[q+1]=HZ[32*s+disrow*2+1];

SBUF=255-BUFF[q+1];

while(!TI);TI=0;

SBUF=255-BUFF[q];

while(!TI);TI=0;

}

}

/******************************************************/

/***********農林大學********************************************/

uchar code HZ[]=

{

0x01,0x00,0x01,0x00,0x7F,0xFE,0x41,0x02,0x81,0x04,0x02,0x00,0x02,0x08,0x05,0x18,

0x09,0x20,0x18,0xC0,0x28,0x80,0x48,0x40,0x88,0x30,0x0A,0x0E,0x0C,0x04,0x08,0x00,

0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x24,0xFE,0xFE,0x08,0x20,0x18,0x60,0x1C,0x70,

0x2A,0xA8,0x28,0xAE,0x49,0x24,0x8A,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,

0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x02,0x80,

0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x0E,0x60,0x04,0x00,0x00,

0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,

0x00,0x40,0x01,0x84,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,

};

C語言編寫16和32點陣字庫

CFont ft;

ft.CreatePointFont(90,_T(“宋體”)); //做點陣字體。 90 所需字體高度(用0.1點表示,例如,傳遞120表示12點字體)。

DC.SelectObject(ft);

DC.DrawText((LPCTSTR)str,str.GetLength(),rt,DT_LEFT);把你要的字寫入一個DC

然後用GetPixel得到dc的點陣結構 至於怎麼存儲就看怎麼使用了

16X32點陣顯示c語言程序怎麼寫

這是 和嵌入式有關的,有2種方法,最簡單一種就是下載一個點陣生成器,他會把你輸入的字符,圖像轉換成二級制代碼,就可以在屏幕輸出了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/219841.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-09 11:01
下一篇 2024-12-09 11:01

相關推薦

  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟件。在VB中,有許多不同的方法可以運行程序,包括編譯器、發佈程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29

發表回復

登錄後才能評論