導航:首頁 > 操作系統 > 單片機1616點陣報告

單片機1616點陣報告

發布時間:2022-10-09 06:26:52

單片機控制的16*16點陣顯示漢字,為什麼出現的字體是鏡像的怎麼改正

單片機控制的16*16點陣顯示漢字,出現字體是鏡像的現象是由於取點陣時掃描方向搞反了。改正方法是逆序讀點陣數組數據,即原來從數組0下標開始讀改為從下標15開始倒著讀,寫的順序不變,就矯正了。

⑵ 單片機1616點陣顯示漢字程序

首先要用取模軟體,獲得要顯示的漢字的字模,每行兩個位元組,共32位元組。然後單片機控制每次送一行的數據,並進行顯示,輪流16次,再反復即可。

⑶ 單片機16*64LED點陣問題

取模就是一個查表,先定義一個字模表
unsigned char code digit_tab[10][8]={ //這是8*8的字模
/*0*/ 0x00,0x18,.......0x00,
/*1*/
..
/*9*/
};
取時 a=digit_tab[num][line];就取出數字 num的第line行的數據了。
變數的話,首先要有8個臨時位元組來存放取出來的8個數據,把他們移位出去。
再有16個位元組來存放每個 8*8點陣要顯示的數字
還有一個行數 line

⑷ 單片機LED16×16點陣,主要參數有哪

摘要 您好。我幫您查詢了,點陣 LED 顯示屏作為一種現代電子媒體,具有靈活的顯示面積(可任意分割和拼裝)、高亮度、長壽命、數字化、實時性等特點,應用非常廣泛。

⑸ 用51單片機做16*16點陣廣告屏設計的開題報告怎麼寫

1:Dais-PG206試驗箱,這是教學用的,應該是你們學校的實驗儀器,建議你到實驗室了解一下。
2:16×16點陣就是256個LED發光二極體集成在一塊上,16個腳接高電平16腳通過限流電阻接地,通電就亮,原理很簡單。
3:通信原理這個定義很廣泛,不過用在你的設計上用VB6.0做上位機通信程序,那必須得用到「串口通信」,做這個設計了解這個協議就足夠了,這個通訊協議肯定比你想的要簡單。
4:16×16點陣要顯示漢字,一直亮著很耗電,為了節約能源用單片機循環點亮的方式,大概一秒鍾點亮12次以上,人眼看到的基本就是一直亮的狀態,原理就是這樣,至於怎麼實現,你可以在網上下一個C程序,自己讀一遍(如果你會的話,程序不會很長,真想學的話找個人教你1天就能讀懂那個程序)。
5:鍵盤程序在網上找很多,原理就是判斷單片機引腳的電平狀態,別忘了加防抖程序。
6:整個系統的原理弄明白了,電氣圖自然就會畫了。
開題報告:談談現在廣告屏的現狀,以後的發展趨勢,本系統的大概說明字數不用太多

補充一句:畢業設計是在學校最後一次學習的機會,好好珍惜吧,即使一點不會最好還是硬著頭皮自己做,以後受益匪淺,祝你好運!

⑹ 51 單片機16*16點陣顯示

你把數字的那個碼字改為16*16的不就可以了嗎
這都不影響的
點陣的話相當於前面有8個8位全部為00H
全部為16*16後用一個左移指令就可以了
http://hi..com/lphaff/album/item/0ed09dfada8f5303a9d3116c.html

⑺ 用單片機實現16*16點陣顯示,要用C語言編寫程序+注釋,順便還要原理圖,能幫幫忙么

問題:
1.字元串沒加結束標志'\0'
2. else if(ns>=n&&nt<n)
for(i=0;i<n;i++)
{m1[i]=s[i];
strcat(m1,t);
strcpy(s,m1);
}
這段錯誤

#include"iostream.h"
#include"string.h"
#include"stdio.h"
void mystrcat(char s[],char t[],int n)
{
char m1[100],m2[100];
int i,ns,nt;
ns=strlen(s);
nt=strlen(t);
if(ns>=n&&nt>=n)
{
for(i=0;i<n;i++)
{
m1[i]=s[i];
m2[i]=t[i];
}
m1[i]='\0';
m2[i]='\0';
strcat(m1,m2);
strcpy(s,m1);
}
else if(ns<n&&nt>=n)
{
for(i=0;i<n;i++)
m2[i]=t[i];
m2[i]='\0';
strcat(s,m2);
}
else if(ns>=n&&nt<n)
{for(i=0;i<n;i++)
{m1[i]=s[i];
}
m1[i]='\0';
strcat(m1,t);
strcpy(s,m1);
}
else
strcat(s,t);

}

void main()
{
char s[100],t[100];
gets(s);
gets(t);
int n;
cin>>n;
mystrcat(s,t,n);
puts(s);
}
我可以幫助你,你先設置我最佳答案後,我網路Hii教你。

⑻ 基於單片機的16×64點陣字元控制系統的設計

我做過這樣的畢業設計,16*64點陣顯示屏,可以各種顯示,時間,溫度等功能。
給你一個參考:
可以去我的博客下載: http://www.shenzhenwangzhanyouhua.com/seo/ds1302-18b20-1664-display.html

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(col<8)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,在「http://xie-gang.com/WNFZQ.htm」;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;disrow<16;disrow++)
{
loadonelineandsend();
P1=0x10+disrow;
P1=0x20+disrow;
}
}
}
/******************************************************/
void loadonelineandsend(void)
{
uchar s;
int q;
q=0;

for(s=0;s<4;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,
};

⑼ 關於單片機的16*64點陣顯示(不好意思沒懸賞分,不是我不想給是我現在沒分了)

看出來了,你希望做一個LED點陣電子鍾。
這里要糾正一點:
74HC595是列驅動。行驅動通常通過解碼器138/154及行管4953或127來實現。
通過八個變數存儲待顯示的字元內容,再獲取各變數的逐行字模,移位並掃描可以。
只要實現了,滿足了要求就是好方法。
能告訴我問題嗎?還是你自己覺察到了什麼問題或沒有達到要求。

閱讀全文

與單片機1616點陣報告相關的資料

熱點內容
網盤忘記解壓碼怎麼辦 瀏覽:852
文件加密看不到裡面的內容 瀏覽:651
程序員腦子里都想什麼 瀏覽:430
oppp手機信任app在哪裡設置 瀏覽:185
java地址重定向 瀏覽:268
一年級下冊摘蘋果的演算法是怎樣的 瀏覽:448
程序員出軌電視劇 瀏覽:88
伺服器系統地址怎麼查 瀏覽:54
解壓游戲發行官 瀏覽:601
國外小伙解壓實驗 瀏覽:336
頂級大學開設加密貨幣 瀏覽:437
java重載與多態 瀏覽:528
騰訊應屆程序員 瀏覽:942
一鍵編譯程序 瀏覽:129
語音加密包哪個好 瀏覽:340
有什麼學習高中語文的app 瀏覽:282
安卓手機的表格里怎麼打勾 瀏覽:411
阿里雲伺服器有網路安全服務嗎 瀏覽:970
超解壓兔子視頻 瀏覽:24
單片機怎麼測負脈沖 瀏覽:174