導航:首頁 > 操作系統 > 51單片機驅動12864

51單片機驅動12864

發布時間:2023-01-02 07:26:08

㈠ 51單片機最小系統板上怎麼連接12864屏幕啊。。有些插孔沒有註明

最小系統板上,都留出單片機的全部引腳了,可以隨便接到任一個引腳。而LCD12864與單片機的連接是可以隨便接的。只要能知道是單片機的哪個l/O腳,與LCD的什麼腳連接了就行的,程序中就能用sbit 定義引腳了。

㈡ 求51單片機驅動液晶12864的程序,要求是串口方式。程序里不要有繪圖反白之類的,只要能顯示漢字就行。

絕對好用的串口程序
sbit SID=P2^1; //12864數據
sbit SCLK=P2^2; //12864時鍾
init()
{
write(0,0x30); //8 位介面,基本指令集
write(0,0x0c); //顯示打開,游標關,反白關
write(0,0x01); //清屏,將DDRAM的地址計數器歸零
delaynms(10);
write(0,0x80); for(i=0;i<16;i++) write(1,datas11[i]);
write(0,0x90); for(i=0;i<16;i++) write(1,datas2[i]);
write(0,0x88); for(i=0;i<16;i++) write(1,datas3[i]);
write(0,0x98); for(i=0;i<16;i++) write(1,datas4[i]);
}
/**********************12864*************************/
void delaynms(unsigned int di) //延時
{
unsigned int da,db;
for(da=0;da<di;da++)
for(db=0;db<10;db++);
}
void sendbyte(unsigned char bbyte) //發送一個位元組
{
unsigned char i;
for(i=0;i<8;i++)
{
SID=bbyte&0x80; //取出最高位
SCLK=1;
SCLK=0;
bbyte<<=1; //左移
}
}
void write(bit start, unsigned char ddata) //寫指令或數據
{
unsigned char start_data,Hdata,Ldata;
if(start==0) start_data=0xf8; //寫指令
else start_data=0xfa; //寫數據

Hdata=ddata&0xf0; //取高四位
Ldata=(ddata<<4)&0xf0; //取低四位
sendbyte(start_data); //發送起始信號
delaynms(5); //延時是必須的
sendbyte(Hdata); //發送高四位
delaynms(1); //延時是必須的
sendbyte(Ldata); //發送低四位
delaynms(1); //延時是必須的
}
/*void lcdinit(void) //初始化LCD
{
delaynms(10); //啟動等待,等LCM講入工作狀態
//PSB=0; ; //串口驅動模式
// RESET=0; delaynms(1); RESET=1; // 復位LCD
// CS=1;
write(0,0x30); //8 位介面,基本指令集
write(0,0x0c); //顯示打開,游標關,反白關
write(0,0x01); //清屏,將DDRAM的地址計數器歸零
}*/

㈢ 51單片機雙機串口通信 一個單片機控制12864顯示程序模板

我這里只有RS-485在單片機多機通信中的應用的,不過讀懂程序就可以控制12864,不是很難,我同學都有做成功。

1、RS-485在單片機多機通信中的應用

主機程序

#include"reg52.h"

#define uint unsigned int

#define uchar unsigned char

sbit p10=P1^0;

sbit p11=P1^1;

void main(void)

{

uchar i=0;

TMOD=0X20;//設置定時器1工作模式2

TH1=0XFF;

TL1=0XFF; //這里是假設晶振是11。0592的 波特率設置57600

SCON=0X40; //設置方式1 只能發送 不能接受

PCON=0X80;

TR1=1; // 啟動T1

while(1)

{

if(p10==0)

{

SBUF=0x11; //次LED單片機的針頭

while(TI==0);

TI=0;

while(p10==0);

}

if(p11==0)

{

SBUF=0x12; //次閃單片機的針頭

while(TI==0);

TI=0;

while(p11==0);

}

}


}

從機2

#include"reg51.h"

#define uint unsigned int

#define uchar unsigned char

bit flag=0;

sbit p20=P2^0;

void main(void)

{ uchar i=0;

TMOD=0X20;

TH1=0XFF;

TL1=0XFF; //這里晶振頻率同主機是11。0592的波特率設置57600

SCON=0X50; //設置方式1 只能發送 不能接受

PCON=0X80;

TR1=1; // 啟動T1

while(1)

{

while(RI==0);//採用查詢的方法判斷時候接受到數據

RI=0;

i=SBUF;

if(i==0x12)

p20=~p20;

i=0x00;

}

}

從機1

RS BIT P1.7

RW BIT P1.6

E BIT P1.5

KOU EQU P2

ORG 0030H

LOP: MOV SP,#5fH

MOV TMOD,#20H

MOV 40H,#00H

MOV TH1,#0FFH

MOV TL1,#0FFH

MOV SCON,#50H

MOV PCON,#80H

SETB TR1

ACALL LCD_MODEL ;初始化的模塊

MOV KOU,#81H

ACALL READY

MOV DPTR,#TAB

ACALL WRITE ;顯示的模塊

MOV P2,#0C1H

ACALL READY

MOV DPTR,#TAB1

ACALL WRITE

xt: jnb RI,$

CLR RI

x: MOV A,SBUF

CJNE A,#11H,rel

INC 40H

MOV A,40H

CJNE A,#10,XTG

MOV 40H,#0

XTG: MOV P2,#0C9H

ACALL READY

MOV DPTR,#TAB2

ACALL WRITEx

AJMP xt

rel: ajmp xt

WRITEx:MOV A,40H

MOVC A,@A+DPTR

MOV KOU,A

ACALL WRITE1

RET

WRITE: MOV A,#00H

MOVC A,@A+DPTR

CJNE A,#0FFH,s

AJMP EXIT

S: MOV KOU,A

ACALL WRITE1

INC DPTR

AJMP WRITE

EXIT: RET

WRITE1:SETB RS

CLR RW

CLR E

ACALL DELAY

SETB E

RET

LCD_MODEL: MOV KOU,#01H

ACALL READY

MOV KOU,#03H

ACALL READY

MOV KOU,#00000110B

ACALL READY

MOV KOU,#00001100B

ACALL READY

MOV KOU,#38H

ACALL READY

RET

READY: CLR RS

CLR RW

CLR E

ACALL DELAY

SETB E

RET

DELAY: MOV KOU,#0FFH

CLR RS

SETB RW

CLR E

NOP

SETB E

JB KOU.7,DELAY

RET

TAB: DB "Proteus 7.1" ,0FFH ;顯示字型檔

TAB1: DB "Count:" ,0FFH

TAB2: DB "0123456789"

END

模擬圖

㈣ 51單片機編寫12864

你自己寫錯了函數名 前後不一致 是display不是dispaly。。。最後的main裡面

㈤ 最近要做一個51單片機SD卡的讀寫用12864顯示!哪位大神能說下原理,怎麼才能把SD卡的東西顯示到12864上!

本SD卡讀寫系統中的介面電路採用的STCl2C5A60S2單片機控制,並通過軟體編程實現SPI模式的數據傳輸(包括串列時鍾、數據的輸入和輸出)。在SPI模式下。單片機與SD卡的連接主要有四根線(包括時鍾線,兩根數據傳輸線和一根片選線),
通常,SD卡有兩種匯流排模式,即SD匯流排模式和SPI匯流排模式。其中SD匯流排模式採用四條數據線並行傳輸數據,數據傳輸速率高,但是傳輸協議復雜,只有少數單片機才提供有此介面,而用軟體方法模擬SD匯流排又比較繁瑣,會降低SD卡的數據傳輸速率;而SPI匯流排模式只有一條數據傳輸線。傳輸協議簡單,易於實現,雖然數據傳輸速率較低,但絕大多數中高檔單片機都提供有SPI匯流排,同時由於其易於用軟體方法來模擬。因此,本設計採用SPI匯流排模式。
SPI匯流排技術是MOTOROIA公司推出的一種同步串列匯流排介面,是目前單片機應用系統中最常用的幾種串列擴展介面之一。 SPI匯流排主要通過三根線進行數據傳輸,包括同步時鍾線SCK、主機輸入/從機輸出數據線MISO、主機輸出/從機輸人數據線MOSI。另外,它還有一條低電平有效的從機片選線CS,片選信號以及同步時鍾脈沖由主機提供。SPI匯流排模式的數據是以位元組為單位進行傳輸的,主機與SD卡的各種通信都由主機控制。
軟體設計
SD卡的初始化
SD卡從上電到對SD卡進行正確的讀寫操作,往往都需要一個上電初始化的過程。SD卡上電後,主機必須先向SD卡發送74個時鍾周期,以完成SD卡的上電過程。通常SD卡上電後會自動進入SD匯流排模式,並在SD匯流排模式下向SD卡發送復位命令(CMD0)。
SD卡的讀寫
SD卡的數據傳輸主要通過塊讀寫來實現。塊長度默認為512 KB。當RAM中已存放由模數轉換模塊傳來的512 KB數據時,單片機便向SD卡寫入此塊數據。塊讀取時,可發送命令CMDl7,接收到的應答信號為0x00。這樣就可以直接接收數據了,接收到的數據的第1個位元組為數據令牌0xfe,後面的為接收到的數據,當輸出口變為高電平時。表明讀取操作完成。

裝數據讀出以後,通過單片機處理,把結果在液晶上顯示。

閱讀全文

與51單片機驅動12864相關的資料

熱點內容
js如何運行時編譯 瀏覽:915
引力app在哪裡下載 瀏覽:607
編寫app如何得到錢 瀏覽:800
吉利汽車軟體放哪個文件夾安裝 瀏覽:223
多文件編譯c 瀏覽:541
頭頂加密後為什麼反而更稀疏 瀏覽:793
離心機壓縮機揚程高 瀏覽:658
xshell連接linux命令 瀏覽:5
把多個文件夾的內容合並在一起 瀏覽:483
基於單片機的澆花系統設計ppt 瀏覽:685
卷積碼編解碼及糾錯性能驗證實驗 瀏覽:354
請在刪除驅動器之前暫停加密什麼意思 瀏覽:787
光催化pdf 瀏覽:98
java字元串包含某字元 瀏覽:528
ssm身份認證源碼 瀏覽:466
預排序遍歷樹演算法 瀏覽:671
加密裝置如何打開ping功能 瀏覽:479
python下載372 瀏覽:902
u盤子文件夾隱藏 瀏覽:296
本地誤刪svn文件夾 瀏覽:687