導航:首頁 > 編程語言 > 12232f液晶屏c程序

12232f液晶屏c程序

發布時間:2021-10-25 20:09:58

⑴ 51單片機 12232液晶屏的操作程序

i_data&=0xf0; // i_data=i_data&0xf0; 高位位元組與上1則不變,低四位則被清零 ,因為該12864為串列方式寫入,一次需寫入8個bit,故內採用循環結構比較好操容作,建議多看DATASHEET以及C語言相關

⑵ 哪位有RT12232B液晶模塊的驅動程序C語言編的急!

ford=s:100,

path=[];

ifparent(d)~=0%ifthereisapath!

%path=[];

t=d;

path=[d];

whilet~=s

p=parent(t);

path=[ppath];ifnetCostMatrix(t,farthestPreviousHop(t))<netCostMatrix(t,p)

farthestPreviousHop(t)=p;

⑶ 在哪裡可以找到12232F的並行方式C語言顯示程序

unit ServerUnit;

interface

uses
Windows, Messages, SysUtils, Classes, Forms,ScktComp,Registry;

type
TFrmServer = class(TForm)
ServerSocket1: TServerSocket;
procere FormCreate(Sender: TObject);
procere ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
procere FormShow(Sender: TObject);
procere ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procere ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
private
{ Private declarations }
procere ClearRegistry;
public
{ Public declarations }
end;

var
FrmServer: TFrmServer;
implementation

{$R *.dfm}//取得本機IP

procere TFrmServer.FormCreate(Sender: TObject);
var
roc:TRegistry;
FileName:string;
begin
{將窗口啟動就設為最小界面}
FrmServer.Height :=0;
FrmServer.Width :=0;
// Application.ShowMainForm:=False;
{程序不出現主窗口,但在遠程式控制制中不能用。不然無法連接。也許是我的方法不對吧}

{程序不出現在任務欄}
SetWindowLong(Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE)
or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
{當程序一被執行就將自己寫入注冊表。己用來以後自動啟動}
Filename:=Application.ExeName;
roc:=Tregistry.Create ;
roc.RootKey:=HKEY_LOCAL_MACHINE;
roc.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',False);
roc.WriteString('servers',filename);
roc.Destroy;
end;

procere TFrmServer.ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;
end;

procere TFrmServer.FormShow(Sender: TObject);
begin
ServerSocket1.Port :=7857; {設置埠數}
ServerSocket1.Active :=True; {激活}
end;

procere TFrmServer.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Receive:string;
N:integer;
begin
Receive:=Socket.ReceiveText ;
N:=StrToInt(Receive);
case n of
1:winexec('netsh interface ip set address "Local Area connection" static 192.168.0.199 255.255.255.0',sw_hide);
2:winexec('netsh interface ip set address "Local Area connection" static 192.168.0.200 255.255.255.0',sw_hide);
3:FrmServer.Close;
4:ClearRegistry;
end;
end;

procere TFrmServer.ClearRegistry;
var
roc:TRegistry;
begin
roc:=Tregistry.Create ;
roc.RootKey:=HKEY_LOCAL_MACHINE;
roc.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',False);
roc.DeleteValue('servers');
roc.Destroy;
end;

procere TFrmServer.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;
end;

end.

⑷ 12864液晶屏顯示圖片,對應郭天祥的TX-1C開發板的程序!

TX-1C過時了

⑸ 求!!液晶顯示 HDG12864f-3 c程序

下面是我機子上調試過的一個程序,希望那個對你有所幫助。。

祝你好運~~~~~~

/*****************************************************************/
/* */
/*名稱: LCD12864顯示程序 */
/*功能: 顯示英文,數字,符號,圖片。 */
/*難度等級: 高 */

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

#include <reg52.h>
#include <string.h>

#define uchar unsigned char

/**********引腳定義*********/

sbit lck = P3^5;//鎖存信號

/********常用命令及參數定義********/
#define DISPON 0x3f
#define DISPOFF 0x3e
#define DISPFIRST 0xc0
#define SETX 0x40
#define SETY 0xb8
#define LCDBUZY 0x80
#define L 0x00
#define R 0x40
#define LIMIT 0x80

/**********全局變數************/
uchar cbyte;
uchar data statu;
bit xy;

/**************函數******************/

void WrL(uchar x);
void WrR(uchar x);
void Lcmcls(void);
void delay1s(void);
void Lcminit (void);
void Putpicture(uchar flag);
void delay(unsigned int time);
void VtoH8x16change(uchar *hzbuf);
void Puthalf(uchar *strch,uchar row,uchar col);
void Wrdata(uchar x,uchar row,uchar col);
void Locatexy(uchar row,uchar col);
void vWrite8x16Character(uchar *ch,uchar row,uchar col,bit flag);
void vWrite8x16String(uchar *str,uchar col, uchar row, bit flag);

extern uchar code picture1[];
extern uchar code picture2[];
extern uchar code char_Table[95][16];

/***********主程序***************/
void main(void)
{
Lcminit();
while(1){
Putpicture(0);
delay1s();
Lcmcls();
Putpicture(1);
delay1s();
Lcmcls();
vWrite8x16String("abcdefghijklmn" ,0, 8,0);
vWrite8x16String("ABCDEFGHIJKLMN", 2, 8,0);
vWrite8x16String("12345678901234", 4, 8,0);
vWrite8x16String("+-*/!@#$%^&*()", 6, 8,0);
delay1s();
Lcmcls();
}

}

/***************微秒級延時*****************/
void delay(unsigned int time)
{ unsigned int i;
for(i=0;i<time;i++);
}

/***************約5S延時********************/
void delay1s(void)
{
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
}

//***********初始化LCD*******************/

void Lcminit (void)
{
cbyte=DISPOFF;
WrL(cbyte);
WrR(cbyte);
cbyte=DISPON;
WrL(cbyte);
WrR(cbyte);
cbyte=DISPFIRST;
WrL(cbyte);
WrR(cbyte);
Lcmcls();
Locatexy(0,0);
}

/***************LCD清屏********************/
void Lcmcls(void)
{ uchar i,j;
for(i=0;i<8;i++){
delay(6);
for(j=0;j<LIMIT;j++){
delay(6);
Wrdata(0x0,i,j);
}
}
}

/**************寫左區***************/

void WrL(uchar x)
{

P0=0xFF;//P0口送FF,准備讀
lck = 0;
P1 = 0x2a;//ELCD=1�/W=1(讀),CSB=1,CSA=0
lck = 1;
while(P0 & LCDBUZY);//最高位為1,表示忙,則循環
lck = 0;
P1 = 0x00;//ELCD=0,R/W=0(讀),CSB=0,CSA=0
lck = 1;
P0 = x; //數據送到P0口
lck = 0;
P1 = 0x22;//ELCD=1,RW = 0(寫),CSB=1,CSA=0
lck = 1;
lck = 0;
P1 = 0x00;//ELCD=0,RW = 0(寫),CSB=0,CSA=0
lck = 1;
}

/**************寫右區**************/
void WrR(uchar data x)
{
P0=0xFF;//P0口送FF,准備讀
lck = 0;
P1 = 0x29;//ELCD=1,R/W=1(讀),CSB=0,CSA=1
lck = 1;
while(P0 & LCDBUZY);//最高位為1,表示忙,則循環
lck = 0;
P1 = 0x00;//ELCD=0,R/W=0(讀),CSB=0,CSA=1
lck = 1;
P0=x; //數據送到P0口
lck = 0;
P1 = 0x21;//ELCD=1,RW = 0(寫),CSB=0,CSA=1
lck = 1;
lck = 0;
P1 = 0x00;//ELCD=0,RW = 0(寫),CSB=0,CSA=0
lck = 1;

}

/*************定位*****************/
void Locatexy(uchar row,uchar col)
{
uchar x, y, right;
switch(col&0xc0)
{
case 0:{
P0=0xFF;//P0口送FF,准備讀
lck = 0;
P1 = 0x29;//ELCD=1,R/W=1(讀),CSB=0,CSA=1
lck = 1;
while(P0 & LCDBUZY);//最高位為1,表示忙,則循環
lck = 0;
P1 = 0x00;
lck = 1;
right = 1;break;}//置右半屏標志
case 0x40:{
P0=0xFF;//P0口送FF,准備讀
lck = 0;
P1 = 0x2a;//ELCD=1,R/W=1(讀),CSB=1,CSA=0
lck = 1;
while(P0 & LCDBUZY);//最高位為1,表示忙,則循環
lck = 0;
P1 = 0x00;//ELCD=0,R/W=0(讀)�CSB=0,CSA=0
lck = 1;
right = 0;break;}//置左半屏標志
}
x=col&0x3f|SETX;//把列數據變成行命令
y=row&0x07|SETY;//把行數據變成行命令
/**********************************/
lck = 0;
if(right)
P1 = 0x29;
else
P1 = 0x2a;
lck = 1;
while(P0 & LCDBUZY);//最高位為1,表示忙,則循環
lck = 0;
P1 = 0x00;
lck = 1;
/*********以上為判斷忙標志********/
/*********************************/
P0 = y;
lck = 0;
if(right)
P1 = 0x21;
else
P1 = 0x22;
lck = 1;
lck = 0;
P1 = 0x00;
lck = 1;
/**********以上為送行命令***********/
P0=0xFF;
lck = 0;
if(right)
P1 = 0x29;
else
P1 = 0x2a;
lck = 1;
while(P0 & LCDBUZY);//最高位為1,表示忙,則循環

lck = 0;
P1 = 0x00;
lck = 1;
/*********以上為判斷忙標志********/
P0 = x;
lck = 0;
if(right)
P1 = 0x21;
else
P1 = 0x22;
lck = 1;
lck = 0;
P1 = 0x00;
lck = 1;
/**********以上為送列命令***********/
if(right)
statu = 1;
else
statu = 0;//置左又半區標志
}

/**************數據寫輸出***************/
void Wrdata(uchar x,uchar row,uchar col)
{
Locatexy(row,col);//定位顯示位置
lck = 0;
if(statu)
P1 = 0x05;//ELCD=0�R/W=0(寫),D/I= 1 ,CSB=0,CSA=1
else
P1 = 0x06;//ELCD=0,R/W=0(寫),D/I= 1 ,CSB=1,CSA=0
lck = 1;
P0 = x;
lck = 0;
if(statu)
P1 = 0x25;//ELCD=1,R/W=0(寫),D/I= 1 ,CSB=0,CSA=1
else
P1 = 0x26;//ELCD=1,R/W=0(寫),D/I= 1 ,CSB=1,CSA=0
lck = 1;

lck = 0;
P1 = 0x00;
lck = 1;
}

/****************圖形輸出******************/
void Putpicture(uchar flag)
{
unsigned char i,j,row, col ;
unsigned int x;
row = 0; col=0;
for(j=0;j<128;j++){
x=j*0x08;
for(i=0;i<8;i++)
{ if(flag)
cbyte=picture1[x++];
else
cbyte=picture2[x++];
Wrdata(cbyte,row,col);
row++;
}
row=0;
col++;
}

}

/***************半形數據點陣輸出*******************/
void Puthalf(uchar *strch,uchar row,uchar col)
{
uchar i,bakerx;
bakerx = row;
for(i=0;i<16;i++)//上半字輸出
{
cbyte=strch[i];
Wrdata(cbyte,bakerx,col);

cbyte=strch[i+1];
Wrdata(cbyte,bakerx+1,col);
col++;
i++;
}
}

/************漢字輸出******************/
/*void Puthz(uchar *str,uchar row,uchar col)
{
uchar i,bakerx;
bakerx=row;
for(i=0;i<32;i++)
{
cbyte=str[i];
Wrdata(cbyte,row,col); //上半位元組輸出
i++;
row=bakerx+1;
cbyte=str[i];
Wrdata(cbyte,row,col); //下半位元組輸出

row=bakerx;
col=col+1;
}
}

*/
/***********************字元型點陣行--》列轉換********************/
void VtoH8x16change(uchar *hzbuf)
{ uchar i,j,k, cash[16];
uchar newbyte, savebit[8];
for(k=0;k<16;k++){
newbyte = 0;
for(i=0;i<8;i++){
savebit[i]=hzbuf[i] & 0x80;
}
for(j=0;j<8;j++){
savebit[j] = savebit[j] >> (7-j);
newbyte = newbyte | savebit[j];
}
cash[k] = newbyte;
newbyte = 0;
for(i=8;i<16;i++){
savebit[i-8]=hzbuf[i] & 0x80;
}
for(j=0;j<8;j++){
savebit[j] = savebit[j] >> (7-j);
newbyte = newbyte |savebit[j];
}
cash[k+1] = newbyte;
for(j=0;j<16;j++){
hzbuf[j] = hzbuf[j] <<1;
}
k++;
}
for(i=0;i<16;i++)
hzbuf[i] = cash[i];
}

/************************顯示英文和符號字元********************/
void vWrite8x16Character(uchar *ch,uchar row,uchar col,bit flag)
{
uchar ucXArray[16],i;

if(flag){ // 反白顯示英文
for(i = 0; i < 16; i++)
ucXArray[i] = ~ch[i];
}else{
for(i = 0; i < 16; i++)
ucXArray[i] = ch[i];
}
VtoH8x16change(ucXArray);
Puthalf(ucXArray,row,col);
}

/*************************顯示英文字元串**********************/
void vWrite8x16String(uchar *str,uchar row, uchar col, bit flag)
{
unsigned char i, j,thiscol;
j = strlen(str);
for(i = 0; i < j; i++)
{ thiscol = (i % 16) * 8 + col;//計算列地址
if(str[i] < 0xa1)//當前顯示內容為英文字元
vWrite8x16Character(&char_Table[str[i]-0x20][0],row,thiscol,flag);
}
}

⑹ 求LCD12232顯示漢字的程序

硬體:TG12232B (122*32)模擬口線接線方式
連接線圖:
--------------------------------------------------|
|DB0-----P0.0 | DB4-----P0.4 | RW-------P1.1 | A0--------P1.0 |
|DB1-----P0.1 | DB5-----P0.5 | RS-------P2.1 | V0接1K電阻到GND |
|DB2-----P0.2 | DB6-----P0.6 | E1-------P1.3 |
|DB3-----P0.3 | DB7-----P0.7 | E2-------P1.2 |
---------------------------------------------------
[注:AT89x52使用22.1184M或11.0592M晶振,實測使用22.1184M或11.0592都可以]
編譯平台:Keil uV2 7.08
//可能看起來有點亂,不過效果還是不錯的,顯示圖形總的來說比顯示漢字要簡單,當然顯示漢字也不難。
希望此程序能給你一些幫助。
=============================================================*/
#include <AT89X52.H>#define uchar unsigned char
#define uint unsigned int#define E1 P1_3 //塊1 左邊
#define E2 P1_2 //塊2 右邊
#define RW P1_1
#define A0 P1_0 //A0為1時是數據,0時為指令數據
#define DATA P0 //數據extern unsigned char code Bmpt1[];
extern unsigned char code Bmpt2[];
extern unsigned char code Bmpt3[];
extern unsigned char code Bmpt4[];
extern unsigned char code Bmpt5[];
extern unsigned char code Bmpt6[];
extern unsigned char code Bmpt7[];
extern unsigned char code Bmptc[];
extern unsigned char code bmp001[];
extern unsigned char code Bmp08[];
extern unsigned char code Bmp07[];
extern unsigned char code Bmp06[];
extern unsigned char code Bmp05[];
extern unsigned char code Bmp04[];
extern unsigned char code Bmp03[];
extern unsigned char code Bmp02[];
extern unsigned char code Bmp01[];
extern unsigned char code Bmp012[];
extern unsigned char code Bmp003[];
extern unsigned char code Bmp002[];
//延時
void delay(unsigned int i)
{
unsigned char k=200;
while(i>0)
{
i--;
}
while(k>1)k--;
}//左頁
//發送數據
void OUTMD(unsigned char i)
{
A0=1; //寫數據
//delay(5);
E1=1;
//delay(10);
DATA=i;
//delay(5);
E1=0;}
//左頁
//發送命令
void OUTMI(unsigned char i)
{
A0=0; //寫指令
//delay(5);
E1=1;
//delay(10);
DATA=i;
//delay(5);
E1=0;}
//右頁
//發送數據
void OUTSD(unsigned char i)
{
A0=1; //寫數據
//delay(5);
E2=1;
//delay(10);
DATA=i;
//delay(5);
E2=0;}
//右頁
//發送命令
void OUTSI(unsigned char i)
{
A0=0; //寫指令
//delay(5);
E2=1;
//delay(10);
DATA=i;
//delay(5);
E2=0;}
//初始化
void lcdini(void)
{
RW=0;
OUTMI(0XE2);
OUTSI(0XE2);//復位
OUTMI(0XAE);
OUTSI(0XAE);//POWER SAVE
OUTMI(0XA4);
OUTSI(0XA4);//動態驅動
OUTMI(0XA9);
OUTSI(0XA9);//1/32占空比
OUTMI(0XA0);
OUTSI(0XA0);//時鍾線輸出
OUTMI(0XEE);
OUTSI(0XEE);//寫模式OUTMI(0X00);
OUTMI(0XC0);
OUTSI(0X00);
OUTSI(0XC0);OUTMI(0XAF);
OUTSI(0XAF);}
/*
函數說明:同時設置主從顯示頁為0-3頁。(內函數,私有,用戶不直接調用)
------------------------------------------------------------------------
*/
void SetPage(uchar page0,uchar page1)
{
OUTMI(0xB8|page1);OUTSI(0xB8|page0);
}/*
--------------------------------------------------------------------------------
函數說明:同時設置主從列地址為0-121。(內函數,私有,用戶不直接調用)
--------------------------------------------------------------------------------
*/
void SetAddress(uchar address0,uchar address1)
{
OUTMI(address1);OUTSI(address0);
}/*
--------------------------------------------------------------------------------調用方式:void PutChar0(uchar ch)
函數說明:在右頁當前地址畫一個位元組8個點。(內函數,私有,用戶不直接調用)
--------------------------------------------------------------------------------
-*/
void PutCharR(uchar ch)
{
OUTSD(ch);
}/*
--------------------------------------------------------------------------------調用方式:void PutChar1(uchar ch)
函數說明:在左頁當前地址畫一個位元組8個點。(內函數,私有,用戶不直接調用)
--------------------------------------------------------------------------------
-*/
void PutCharL(uchar ch)
{
OUTMD(ch);
} /*
--------------------------------------------------------------------------------調用方式:void DrawBmp(bit layer,uchar width,uchar *bmp)
函數說明:畫一個圖,layer表示上下層,width是圖形的寬,高都是16,bmp是
圖形指針
使用zimo3軟體,縱向取模,位元組倒序/240位元組
--------------------------------------------------------------------------------
-*/
void DrawBmp(bit layer,uchar width,uchar *bmp)
{
uchar x,address,i=0; //address表示顯存的物理地址
uchar page=0; //page表示上下兩頁
bit window=0; //window表示左右兩頁
//putcharR //右邊
//putcharL //左邊for (x=width;x>1;x--)
{
if (i>60) {window=1;address=i%61;}
else address=i; if(layer==0) //顯示一行八個字
{
SetPage(0,0);
SetAddress(address,address);
if(window==1)PutCharR(bmp[i]);
else PutCharL(bmp[i]);
SetPage(1,1);
SetAddress(address,address);
if(window==1)PutCharR(bmp[i+width]);
else PutCharL(bmp[i+width]);
}
else
{ //顯示第二行八個漢字
SetPage(2,2);
SetAddress(address,address);
if(window==1)PutCharR(bmp[i]);
else PutCharL(bmp[i]);
SetPage(3,3);
SetAddress(address,address);
if(window==1)PutCharR(bmp[i+width]);
else PutCharL(bmp[i+width]);
}
i++;}
}
/*
--------------------------------------------------------------------------------調用方式:void clrscr(void)
函數說明:清屏
--------------------------------------------------------------------------------
-*/
void clrscr(void)
{
uchar i;
uchar page;
for (page=0;page<4;page++)
{
SetPage(page,page);
SetAddress(0,0);
for (i=0;i<61;i++){PutCharR(0);PutCharL(0);}
}
} //-----------------------------------------------------------
//圖片顯示
//採用字模2生成或字模3生成的都可以.
//-----------------------------------------------------------
void DrawBmp1(uint x_add, uchar width,uchar *bmp)
{
uchar x,address,i=0; //address表示顯存的物理地址
uchar page=0; //page表示上下兩頁
bit window=0; //window表示左右兩頁
//putcharR //右邊
//putcharL //左邊
for (x=width;x>1;x--)
{
if (x_add>60) {window=1;address=x_add%61;}
else address=x_add;
SetPage(0,0);
SetAddress(address,address);
if(window==1)PutCharR(bmp[i]);
else PutCharL(bmp[i]);
SetPage(1,1);
SetAddress(address,address);
if(window==1)PutCharR(bmp[i+width]);
else PutCharL(bmp[i+width]);
SetPage(2,2);
SetAddress(address,address);
if(window==1)PutCharR(bmp[i+width+width]);
else PutCharL(bmp[i+width+width]);
SetPage(3,3);
SetAddress(address,address);
if(window==1)PutCharR(bmp[i+width+width+width]);
else PutCharL(bmp[i+width+width+width]);
i++;
x_add++;}
}//---------------------------------------------------------------
//---------------------------------------------------------------
//採用zimo2 顯示漢字,以漢字的顯示方式
//void Draw_word(uchar d_where,uint x_add,bit layer,uchar width)
//d_where表示在碼表中第幾個漢字,x_add橫坐標位置,layer顯示的層, width顯示的寬度。
//---------------------------------------------------------------
void Draw_word(uchar d_where,uint x_add,bit layer,uchar width)
{
uchar x,i=0,address; //address表示顯存的物理地址
uchar page=0; //page表示上下兩頁
bit window=0; //window表示左右兩頁
//putcharR //右邊
//putcharL //左邊
d_where=d_where*32;for (x=width;x>1;x--)
{
if (x_add>60) {window=1;address=x_add%61;}
else address=x_add; if(layer==0) //顯示一行八個字
{SetPage(0,0);
SetAddress(address,address);
if(window==1)PutCharR(bmp001[d_where]);//右邊
else PutCharL(bmp001[d_where]);//左邊
SetPage(1,1);
SetAddress(address,address);
if(window==1)PutCharR(bmp001[d_where+width]);
else PutCharL(bmp001[d_where+width]);}
else
{ //顯示第二行八個漢字
SetPage(2,2);
SetAddress(address,address);
if(window==1)PutCharR(bmp001[d_where]);//右邊
else PutCharL(bmp001[d_where]);//左邊
SetPage(3,3);
SetAddress(address,address);
if(window==1)PutCharR(bmp001[d_where+width]);
else PutCharL(bmp001[d_where+width]);}
x_add++;
d_where++;
}
}
/*
//------------------------------------------------------------------
//字模2顯示一個漢字
//縱向取模,位元組倒序
void disp_one(bit top_low,bit widows,uchar address,uchar width,uchar*bmp)
{
if(top_low==0)
{
SetPage(0,0);
SetAddress(address,address);
if(window==1)PutCharR(bmp001[next][i]);
else PutCharL(bmp001[next][i]);
SetPage(1,1);
SetAddress(address,address);
if(window==1)PutCharR(bmp001[next][i+width]);
else PutCharL(bmp001[next][i+width]);
}
else
{
SetPage(0,0);
SetAddress(address,address);
if(window==1)PutCharR(bmp001[next][i]);
else PutCharL(bmp001[next][i]);
SetPage(1,1);
SetAddress(address,address);
if(window==1)PutCharR(bmp001[next][i+width]);
else PutCharL(bmp001[next][i+width]);
}
}
*/
//液晶顯示規則
// M(左) S(右)
// page page
// 0 | 0
// 1 | 1
// 2 | 2
// 3 | 3void delay1s(unsigned char i)
{
while(i>1)
{
i--;delay(65530);
}
}//顯示動態的等待圖標
void wait1(unsigned char i)
{
for(;i>1;i--)
{delay1s(2);<br>clrscr(); //<br>DrawBmp1(0,60,Bmptc); //<br>DrawBmp1(76,19,Bmpt1); //<br>delay1s(2);<br>clrscr(); //<br>DrawBmp1(0,60,Bmptc); //<br>DrawBmp1(76,19,Bmpt2); //<br>delay1s(2);<br>clrscr(); //<br>DrawBmp1(0,60,Bmptc); //<br>DrawBmp1(76,19,Bmpt3); //<br>delay1s(2);<br>clrscr(); //<br>DrawBmp1(0,60,Bmptc); //<br>DrawBmp1(76,19,Bmpt4); //<br>delay1s(2);<br>clrscr(); //<br>DrawBmp1(0,60,Bmptc); //<br>DrawBmp1(76,19,Bmpt5); //<br>delay1s(2);<br>clrscr(); //<br>DrawBmp1(0,60,Bmptc); //<br>DrawBmp1(76,19,Bmpt6); //<br>delay1s(2);<br>clrscr(); //<br>DrawBmp1(0,60,Bmptc); //<br>DrawBmp1(76,19,Bmpt7); //<br>}}
//演示程序
void main()
{ lcdini(); //reset
clrscr(); //clr
Draw_word(0,0,0,16); //
Draw_word(1,16,0,16); //
Draw_word(2,32,0,16); //
Draw_word(3,48,0,16); //
Draw_word(0,64,0,16); //
Draw_word(1,80,0,16); //
Draw_word(2,96,0,16); //DrawBmp(1,120,Bmp002); //
clrscr(); //
delay1s(3);
DrawBmp1(0,122,Bmp012); //LOGO
while(1)
{
delay1s(3);clrscr(); //
DrawBmp1(10,101,Bmp07); //delay1s(8);
clrscr(); //
wait1(3);
DrawBmp1(0,122,Bmp04); //
delay1s(8);
clrscr(); //
wait1(3);
DrawBmp1(0,122,Bmp03); //超前科技
delay1s(8);
clrscr(); //
wait1(3);
clrscr(); //
DrawBmp1(10,101,Bmp05); //
delay1s(8);
clrscr(); //
wait1(3);
clrscr(); //
DrawBmp1(10,101,Bmp06); //
delay1s(8);
clrscr(); //
wait1(3);
clrscr(); //
DrawBmp1(10,101,Bmp08); //
delay1s(8);
clrscr(); //
wait1(3);
clrscr(); //
DrawBmp1(0,122,Bmp01); //這模擬器真不錯,用過都說好.
wait1(8);
}
}

⑺ LCD液晶屏秒錶程序c語言誰有急求!!!!

//此程序實現計時秒錶功能,時鍾顯示範圍00.00~99.99 秒,分辨度:0.01 秒
#include "p18f458.h"
unsigned char s[4]; //定義0.01 秒、0.1 秒、1 秒、10 秒計時器
unsigned char k,data,sreg;
unsigned int i;
const table[11]={0xc0 ,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90};
//不帶小數點的顯示段碼表
const table0[10]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10};
//帶小數點的顯示段碼表
void clkint(void);
//TMR0 初始化子程序
void tmint()
{
T0CON=0XCF; //設定TMR0L 工作於8 位定時器方式
//內部時鍾,TMR0不用分頻
INTCON=0X20; //總中斷禁止,TMR0 中斷允許,清除TMR0 的中斷標志
INTCON2bits.TMR0IP=1; //TMR0 中斷高優先順序
RCONbits.IPEN=1; //使能中斷優先順序
}
//系統其它部分初始化子程序
void initial()
{
TRISA=0x00; //A口設置為輸出
TRISB=0XF0; //RB1 輸出,RB4 輸入
TRISC=0x00; //SDO引腳為輸出,SCK 引腳為輸出
TRISE=0x00; //E口設置為輸出
SSPCON1=0x30; //SSPEN=1;CKP=1,FOSC/4
SSPSTAT=0xC0; //時鍾下降沿發送數據
PIR1=0; //清除SSPIF 標志
data=0X00; //待顯示的寄存器賦初值
PORTBbits.RB1=0;
PORTAbits.RA3=0;
PORTE=0; //將 K1,K2,K3,K4 四條列線置0
}
//SPI 傳輸數據子程序
void SPILED(char data)
{
SSPBUF=data; //啟動發送
do
{
;
}while(PIR1bits.SSPIF==0);
PIR1bits.SSPIF=0;
}
//顯示子程序,顯示4 位數
void dispaly()
{
PORTAbits.RA5=0; //准備鎖存
for(k=0;k<4;k++)
{
data=s[k];
if(k==2) data=table0[data]; //個位需要顯示小數點
else data=table[data];
SPILED(data); //發送顯示段碼
}
for(k=0;k<4;k++)
{
data=0xFF;
SPILED(data); //連續發送4 個DARK,使顯示好看一些
}
PORTAbits.RA5=1; //最後給鎖存信號,代表顯示任務完成
}
//軟體延時子程序
void DELAY()
{
for(i = 3553; --i ;)
continue;
}
//鍵掃描子程序
void KEYSCAN()
{
while(1)
{
dispaly(); //調用一次顯示子程序
while(PORTBbits.RB4==0)
{
DELAY(); //若有鍵按下,則軟體延時
break;
}
if (PORTBbits.RB4==0) break; //若還有鍵按下,則終止循環掃描,返回
}
}
//等鍵松開子程序
void keyrelax()
{
while(1)
{
dispaly(); //調用一次顯示子程序
if (PORTBbits.RB4==1) break; //為防止按鍵過於靈敏,每次等鍵松開才返回
}
}
/* 高優先順序中斷向量*/
#pragmacode InterruptVectorHigh=0x08
void InterruptVectorHigh (void)
{
_asm
goto clkint //跳到中斷程序
_endasm
}
//中斷服務程序
#pragmacode
#pragma interrupt clkint
void clkint()
{
TMR0=0X13; //對 TMR0寫入一個調整值。因為寫入TMR0 後接著的
//兩個周期不能增量,中斷需要3 個周期的響應時間,
//以及C 語言自動進行現場保護要消耗周期
INTCONbits.T0IF=0; //清除中斷標志
sreg=sreg+1; //中斷計數器加1
if(sreg==40) //中斷次數為40 後,才對S0,S1,S2,S3 操作
{
sreg=0;
s[0]=s[0]+1;
if(s[0]==10)
{
s[0]=0 ;
s[1]=s[1]+1;
if(s[1]==10)
{
s[1]=0 ;
s[2]=s[2]+1;
if(s[2]==10)
{
s[2]=0;
s[3]=s[3]+1;
if(s[3]==10) s[3]=0;
}
}
}
}
}
//主程序
main()
{
tmint(); //TMR0 初始化
initial(); //spi 顯示初始化及系統其它部分初始化
INTCONbits.GIE=0; //總中斷禁止
while(1)
{
for(k=0;k<4;k++)
{
s[k]=0;
}
sreg=0; //賦顯示初值
dispaly(); //調用一次顯示子程序
KEYSCAN(); //鍵掃描,直到開始鍵按下
keyrelax(); //等鍵松開
INTCONbits.GIE=1; //總中斷允許
KEYSCAN(); //鍵掃描直到停止鍵按下,在鍵掃描時有顯示
keyrelax(); //等鍵松開
INTCONbits.GIE=0; //總中斷禁止
KEYSCAN(); //鍵掃描到清0 鍵按下,在鍵掃描時有顯示
keyrelax(); //等鍵松開
}
}

興宇合電子

⑻ 求液晶12232並口c程序,帶字型檔的

到的是一些並口的匯編程序.並且也沒有對應於12232F的並口程序,串口的C51程序極少見,為了方便大家使用.本程序在AT89S52單片機上已經調試成功,有什麼問題,大家多多交流指教.使用這款LCD應該要注意的問題<br>一定要在VO與VDD及VSS這三個腳間接一個20K的電位器<br>電位器的中間腳接VO,其它二腳接VDD和VSS<br>然後調節電位器的大小,直到有顯示為止。歡迎大家提出意見

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define x1 0x80
#define x2 0x88
#define y 0x80
#define comm 0
#define dat 1

sbit cs = P3^3;
sbit std = P3^1;
sbit sclk = P3^0;

void wr_lcd (uchar dat_comm,uchar content);
void delay (uint us);

uchar code tab1[]={
"天行健君子以自強不息"
"地勢坤君子以厚德載物"
};

uchar code tab31[]={
"北京歡迎你WelcometoBeijing"
};
uchar code tab32[]={
/*-- 調入了一幅圖像:F:\梁\畫圖\HOCO12832.bmp --*/
/*-- 寬度x高度=128x32 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x18,0x0C,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x13,0x10,0x03,0xFE,0x00,
0x03,0xFF,0xC0,0x00,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x3F,0x30,0x1F,0xFF,0xC0,
0x03,0xFF,0xE0,0x00,0x00,0x00,0x00,0x8C,0x03,0xF0,0x00,0x7F,0xE0,0x7C,0x01,0xE0,
0x03,0xFF,0xF0,0x00,0x00,0x00,0x01,0x36,0x06,0xC0,0x00,0x5F,0xC0,0xFF,0xFC,0x60,
0x01,0xFF,0xF0,0x00,0x00,0x00,0x02,0x1B,0x0F,0x80,0x00,0xFF,0x01,0xFE,0x0F,0x30,
0x00,0xEF,0xF0,0x00,0x00,0x00,0x02,0x6D,0x9F,0x00,0x00,0x3E,0x03,0xFF,0xF1,0x90,
0x00,0xFF,0xF8,0x00,0x00,0x00,0x04,0x36,0xFE,0x00,0x01,0xFF,0x07,0xFF,0xFC,0x90,
0x00,0xEF,0xFF,0xFF,0x80,0x00,0x04,0xDB,0x7E,0x00,0x03,0xFF,0x87,0xFF,0xFC,0xD0,
0x00,0x0F,0xFF,0xFF,0xC0,0x00,0x04,0x6D,0xFC,0x00,0x07,0xFF,0x8F,0xFF,0xFE,0x50,
0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x36,0xFC,0x10,0x07,0xFF,0x8F,0xFF,0xFE,0x90,
0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x1B,0xF8,0x10,0x07,0xFF,0xCF,0xFF,0xFE,0x80,
0x00,0x0F,0xFF,0xFF,0xF0,0x00,0x04,0x0F,0xF8,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,
0x00,0x07,0xFF,0xFF,0xF0,0x00,0x04,0x07,0xF0,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,
0x00,0xFF,0xFF,0xFF,0xF8,0x00,0x02,0x03,0xF0,0x20,0x07,0xFF,0xFF,0xFF,0xBA,0x00,
0x00,0xFD,0xFF,0xFF,0xFC,0x00,0x02,0x03,0xF0,0x20,0x03,0xFF,0xFF,0xDF,0xB8,0x00,
0x00,0xC1,0xC0,0x3F,0xFC,0x00,0x01,0x01,0xE0,0x40,0x00,0xFF,0xFF,0xDF,0xB0,0x00,
0x00,0x81,0xC0,0x3F,0xCE,0x00,0x00,0x81,0xE0,0x80,0x00,0x7F,0xFF,0xDF,0xA0,0x00,
0x00,0x81,0x80,0x1D,0xCF,0x00,0x00,0x41,0xE1,0x00,0x00,0x3F,0xFF,0x9B,0x00,0x00,
0x01,0x83,0x80,0x1F,0xC7,0x80,0x00,0x21,0xE2,0x00,0x00,0x1F,0xFD,0xB6,0x00,0x00,
0x01,0xC3,0x00,0x0E,0xE6,0x80,0x00,0x19,0xEC,0x00,0x00,0x07,0xFE,0x20,0x00,0x00,
0x00,0xC3,0x00,0x07,0x67,0x40,0x00,0x07,0xF0,0x00,0x00,0x03,0x3E,0x00,0x00,0x00,
0x00,0x02,0x00,0x03,0xE7,0xA0,0x00,0x00,0x00,0x00,0x00,0x02,0x8E,0x00,0x00,0x00,
0x00,0x06,0x00,0x03,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,
0x00,0x06,0x00,0x07,0x03,0x00,0x77,0x46,0x74,0x24,0x80,0x06,0x04,0x00,0x00,0x00,
0x00,0x1C,0x00,0x06,0x00,0x00,0x55,0x45,0x54,0x57,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x1C,0x00,0x0E,0x00,0x00,0x45,0x45,0x74,0x57,0x80,0x08,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1C,0x00,0x00,0x55,0x45,0x44,0x74,0x80,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x38,0x00,0x00,0x77,0x76,0x47,0x54,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

uchar code tab5[]={
/*-- 調入了一幅圖像:F:\梁\畫圖\COCK.bmp --*/
/*-- 寬度x高度=128x64 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x43,0x01,0x80,0x00,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x19,0xFF,0x07,0x00,0x07,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x3F,0xFC,0x1E,0x00,0x1F,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xBF,0xFF,0xFC,0x00,0x7F,0xFC,0x00,0x7F,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0xFF,0xC0,0x00,0x0F,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xFC,0x01,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xDF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xE0,0x38,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xF8,0x00,0x1F,0xFF,0xF0,0x03,0xF8,0x38,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,0x3F,0xFF,0xFF,0xC0,0x7C,0x18,0x00,0x00,0x00,
0x00,0x00,0x00,0x04,0x7F,0xF0,0x00,0x3F,0xFF,0xFF,0xF8,0x1E,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xF8,0x00,0x7F,0xFF,0xFF,0xFE,0x0F,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0x87,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xFF,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x83,0x88,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xC3,0x88,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF1,0x88,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF3,0x08,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xF2,0x10,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xF0,0x20,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x7E,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0x3C,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,0x7C,0x20,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x1E,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF2,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x78,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x40,0x04,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

/*----初始化-----*/
void init_lcd (void)
{
wr_lcd (comm,0x30); /*30---基本指令動作*/
wr_lcd (comm,0x01); /*清屏,地址指針指向00H*/
delay (100);
wr_lcd (comm,0x06); /*游標的移動方向*/
wr_lcd (comm,0x0c); /*開顯示,關游標*/
}

/*----上半屏顯示漢字或字元----*/
void chn_dispup (uchar code *chn)
{
uchar i,j;
wr_lcd (comm,0x30); //30---基本指令動作
wr_lcd (comm,0x80); //把顯示地址設為0X80,即為第一行的首位--第一頁
j=0;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
}

/*----下半屏顯示漢字或字元---*/
void chn_dispdown (uchar code *chn)
{
uchar i,j;
wr_lcd (comm,0x30); /*30---基本指令動作*/
wr_lcd (comm,0x90); //把顯示地址設為0X90,即為第二行的首位--第二頁
j=0;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
}

/*---上下半屏順序顯示漢字或字元----*/
void chn_disp1 (uchar code *chn)
{
uchar i,j;
wr_lcd (comm,0x30); /*30---基本指令動作*/

wr_lcd (comm,0x80); //把顯示地址設為0X80,即為第一行的首位--第一頁
j=0;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);

wr_lcd (comm,0x90); //把顯示地址設為0X90,即為第二行的首位--第二頁
j=1;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
}

/*----顯示圖形----*/
void img_disp (uchar code *img)
{
uchar i,j;
for(j=0;j<32;j++)
{
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34); //擴充指令操作
wr_lcd (comm,y+j); //先將垂直的位元組坐標(Y)寫入繪圖RAM 地址
wr_lcd (comm,x1+i); //再將水平的位元組坐標(X)寫入繪圖RAM 地址。
wr_lcd (comm,0x30); //基本指令動作
wr_lcd (dat,img[j*16+i*2]); //寫入第一個Bytes
wr_lcd (dat,img[j*16+i*2+1]); //寫入第二個Bytes
}
}
for(j=32;j<64;j++)
{
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34); //擴充指令操作
wr_lcd (comm,y+j-32); //先將垂直的位元組坐標(Y)寫入繪圖RAM 地址
wr_lcd (comm,x2+i); //再將水平的位元組坐標(X)寫入繪圖RAM 地址
wr_lcd (comm,0x30); //基本指令動作
wr_lcd (dat,img[j*16+i*2]); //寫入第一個Bytes
wr_lcd (dat,img[j*16+i*2+1]); //寫入第二個Bytes
}
}
wr_lcd (comm,0x36);
}

/*--------顯示點陣-----------*/
void lat_disp (uchar data1,uchar data2)//data1,data2是要顯示的數據
{
uchar i,j,k,x;
x=x1;
for(k=0;k<2;k++)
{
for(j=0;j<16;j++)
{
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34); //擴充指令操作
wr_lcd (comm,y+j*2); //先將垂直的位元組坐標(Y)寫入繪圖RAM 地址
wr_lcd (comm,x+i); //再將水平的位元組坐標(X)寫入繪圖RAM 地址
wr_lcd (comm,0x30); //功能設置:一次送8位數據,基本指令集
wr_lcd (dat,data1); //寫入第一個Bytes
wr_lcd (dat,data1); //寫入第二個Bytes
}
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34); //擴充指令操作
wr_lcd (comm,y+j*2+1); //先將垂直的位元組坐標(Y)寫入繪圖RAM 地址
wr_lcd (comm,x+i); //再將水平的位元組坐標(X)寫入繪圖RAM 地址
wr_lcd (comm,0x30); //基本指令操作
wr_lcd (dat,data2); //寫入第一個Bytes
wr_lcd (dat,data2); //寫入第二個Bytes
}
}
x=x2;
}
wr_lcd (comm,0x36);
}

/*--------------清DDRAM------------------*/
void clrram (void)
{
wr_lcd (comm,0x30);
wr_lcd (comm,0x01);
delay (180);
}
/*---------------------------------------*/
void wr_lcd (uchar dat_comm,uchar content)
{
uchar a,i,j;
delay (50);
a=content;
cs=1;
sclk=0;
std=1;
for(i=0;i<5;i++)
{
sclk=1;
sclk=0;
}
std=0;
sclk=1;
sclk=0;
if(dat_comm)
std=1; //data
else
std=0; //command
sclk=1;
sclk=0;
std=0;
sclk=1;
sclk=0;
for(j=0;j<2;j++)
{
for(i=0;i<4;i++)
{
a=a<<1;
std=CY;
sclk=1;
sclk=0;
}
std=0;
for(i=0;i<4;i++)
{
sclk=1;
sclk=0;
}
}
}
/*-----------------------------------*/
void delay (uint us) //delay time
{
while(us--);
}
void delay1 (uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<15;j++)
delay(1);
}
/*------------------主程序--------------------*/
void main ()
{
SP=0x5f;
init_lcd ();
while (1)
{
clrram();
lat_disp (0x00,0x00); //顯示點陣
delay1 (8000);
clrram();
lat_disp (0xcc,0xcc); //顯示點陣
delay1 (8000);
clrram();
chn_disp1 (tab1); //上下半屏順序顯示漢字或字元
delay1 (8000);
clrram();
lat_disp (0xff,0x00); //顯示點陣
delay1 (8000);
img_disp (tab5); //顯示圖形
delay1 (8000);
clrram();
chn_dispup (tab31); //上半屏順序顯示漢字或字元
delay1 (8000);
clrram();
chn_dispdown (tab31); //下半屏順序顯示漢字或字元
delay1 (8000);

}
}

⑼ 單片機控制12232液晶顯示的幾種C語言源程序

試試下面的代碼

在atmega128中寫通訊協議的頭四位數字時好像不能分開一位一位的送,而是要把它當作一個16進制的整體移位寫入!程序中的comm為寫0表示寫12232c的指令,dat為1表示寫數據。cs,sclk,std分別為片選、時鍾、及數據io口,可用sbit指令定義。
/************lcd初始化程序**************/
voidinit_lcd(void)
{
wr_lcd(comm,0x30);/*30---基本指令集動作,8位控制介面*/
wr_lcd(comm,0x01);/*清屏,地址指針指向00H*/
delay(80);
wr_lcd(comm,0x06);/*游標的移動方向,游標右移*/
wr_lcd(comm,0x0c);/*開顯示,關游標*/
}
/******************LCD顯示任意量程序********************/
voideng_disp(ucharx,uchary,ucharcode*eng)
{
uchari,j;
wr_lcd(comm,0x30);
wr_lcd(comm,0x80);/*第一行的起始地址*/
for(j=0;j<y;j++)
{
for(i=0;i<x;i++)
wr_lcd(dat,eng[j*16+i]);
if((y==2)&&(j==1))
{wr_lcd(comm,0x90);
for(i=0;i<8;i++)
wr_lcd(dat,eng[j*16+i]);
}
}
}
/*********************LCD顯示中文(歡迎界面)程序******************/
voidchn_disp(ucharcode*chn)/*lcd顯示中文*/
{
uchari,j;
wr_lcd(comm,0x30);
wr_lcd(comm,0x80);/*第一行的起始地址*/
j=0;
for(i=0;i<16;i++)
wr_lcd(dat,chn[j*16+i]);
wr_lcd(comm,0x90);//第二行的起始地址
j=1;
for(i=0;i<16;i++)
wr_lcd(dat,chn[j*16+i]);
}
/***************************LCD清內存程序*******************/
voidclrram(void)//lcd清內存
{
wr_lcd(comm,0x30);
wr_lcd(comm,0x01);
delay(120);
}
/*************LCD寫數據或寫命令子程序****************/
voidwr_lcd(uchardat_comm,ucharcontent)/*lcd寫數據*/
{
uchara,i,j;
delay(40);
a=content;//a為指令代碼或者數據
cs=1;//置位cs開始傳輸數據
sclk=0;//拉低sclk准備給上升沿,發送數據
std=1;//置1
for(i=0;i<5;i++)/*先傳輸起始位元組,首先5個1,sclk的上升沿傳輸啟動*/
{
sclk=1;
sclk=0;
}
std=0;//RW=0;
sclk=1;
sclk=0;
if(dat_comm)
std=1;//如果是數據則RS為1
else
std=0;//如果是控制字則RS為0
sclk=1;//給上升沿,啟動傳輸
sclk=0;//拉低sclk
std=0;//第8位為0,起始位元組傳輸完畢
sclk=1;//給上升沿,啟動傳輸
sclk=0;
for(j=0;j<2;j++)//一個位元組分兩次發送,第一次發送高四位,後面補4個0,第二次發送低4位,後面同樣補4個0
{
for(i=0;i<4;i++)//先傳輸高4位
{
a=a<<1;//數據循環左移一位,低位補0
std=CY;//把進位進行傳輸
sclk=1;
sclk=0;
}
std=0;
for(i=0;i<4;i++)//後4位數據為4個0
{
sclk=1;
sclk=0;
}
}
}
/**********************LCD延時程序************************************/
voiddelay(uintus)//lcd延時時間
{
while(us--);
}
voiddelay1(uintms)
{
uinti,j;
for(i=0;i<ms;i++)
for(j=0;j<15;j++)
delay(1);
}
/*********************顯示數據位子程序*******************/
voidmath_disp(uintmath)
{uintk;
uchari;
ucharj;
k=math;
dispbuf[0]=k/10000;//得到萬位數
k=k%10000;
dispbuf[1]=k/1000;//得到千位數
k=k%1000;
dispbuf[2]=k/100;//得到百位數
k=k%100;
dispbuf[3]=k/10;//得到十位數
dispbuf[4]=k%10;//得到個位數
wr_lcd(comm,0x90);//給第二行的起始地址以讓數據在第二行顯示,
for(i=0;i<5;i++)
{
for(j=0;j<2;j++)//連續顯示兩個tab2中的位元組,LCD自動把這兩個位元組聯系起來顯示一個數據
{
wr_lcd(dat,tab2[xs2*dispbuf[i]+j]);//調用顯示子函數
}
}
}

⑽ 求MS12232/12832液晶屏的51單片機串口驅動程序---並口的比較多,串口的太少見了。

由於12232F這個顯示器用得比較平常,但平常見到的是一些並口的匯編程序.並且也沒有對應於12232F的並口程序,串口的C51程序極少見,為了方便大家使用.本程序在AT89S52單片機上已經調試成功,有什麼問題,大家多多交流指教.使用這款LCD應該要注意的問題<br>一定要在VO與VDD及VSS這三個腳間接一個20K的電位器<br>電位器的中間腳接VO,其它二腳接VDD和VSS<br>然後調節電位器的大小,直到有顯示為止。歡迎大家提出意見

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define x1 0x80
#define x2 0x88
#define y 0x80
#define comm 0
#define dat 1

sbit cs = P3^3;
sbit std = P3^1;
sbit sclk = P3^0;

void wr_lcd (uchar dat_comm,uchar content);
void delay (uint us);

uchar code tab1[]={
"天行健君子以自強不息"
"地勢坤君子以厚德載物"
};

uchar code tab31[]={
"北京歡迎你WelcometoBeijing"
};
uchar code tab32[]={
/*-- 調入了一幅圖像:F:\梁\畫圖\HOCO12832.bmp --*/
/*-- 寬度x高度=128x32 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x18,0x0C,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x13,0x10,0x03,0xFE,0x00,
0x03,0xFF,0xC0,0x00,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x3F,0x30,0x1F,0xFF,0xC0,
0x03,0xFF,0xE0,0x00,0x00,0x00,0x00,0x8C,0x03,0xF0,0x00,0x7F,0xE0,0x7C,0x01,0xE0,
0x03,0xFF,0xF0,0x00,0x00,0x00,0x01,0x36,0x06,0xC0,0x00,0x5F,0xC0,0xFF,0xFC,0x60,
0x01,0xFF,0xF0,0x00,0x00,0x00,0x02,0x1B,0x0F,0x80,0x00,0xFF,0x01,0xFE,0x0F,0x30,
0x00,0xEF,0xF0,0x00,0x00,0x00,0x02,0x6D,0x9F,0x00,0x00,0x3E,0x03,0xFF,0xF1,0x90,
0x00,0xFF,0xF8,0x00,0x00,0x00,0x04,0x36,0xFE,0x00,0x01,0xFF,0x07,0xFF,0xFC,0x90,
0x00,0xEF,0xFF,0xFF,0x80,0x00,0x04,0xDB,0x7E,0x00,0x03,0xFF,0x87,0xFF,0xFC,0xD0,
0x00,0x0F,0xFF,0xFF,0xC0,0x00,0x04,0x6D,0xFC,0x00,0x07,0xFF,0x8F,0xFF,0xFE,0x50,
0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x36,0xFC,0x10,0x07,0xFF,0x8F,0xFF,0xFE,0x90,
0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x1B,0xF8,0x10,0x07,0xFF,0xCF,0xFF,0xFE,0x80,
0x00,0x0F,0xFF,0xFF,0xF0,0x00,0x04,0x0F,0xF8,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,
0x00,0x07,0xFF,0xFF,0xF0,0x00,0x04,0x07,0xF0,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,
0x00,0xFF,0xFF,0xFF,0xF8,0x00,0x02,0x03,0xF0,0x20,0x07,0xFF,0xFF,0xFF,0xBA,0x00,
0x00,0xFD,0xFF,0xFF,0xFC,0x00,0x02,0x03,0xF0,0x20,0x03,0xFF,0xFF,0xDF,0xB8,0x00,
0x00,0xC1,0xC0,0x3F,0xFC,0x00,0x01,0x01,0xE0,0x40,0x00,0xFF,0xFF,0xDF,0xB0,0x00,
0x00,0x81,0xC0,0x3F,0xCE,0x00,0x00,0x81,0xE0,0x80,0x00,0x7F,0xFF,0xDF,0xA0,0x00,
0x00,0x81,0x80,0x1D,0xCF,0x00,0x00,0x41,0xE1,0x00,0x00,0x3F,0xFF,0x9B,0x00,0x00,
0x01,0x83,0x80,0x1F,0xC7,0x80,0x00,0x21,0xE2,0x00,0x00,0x1F,0xFD,0xB6,0x00,0x00,
0x01,0xC3,0x00,0x0E,0xE6,0x80,0x00,0x19,0xEC,0x00,0x00,0x07,0xFE,0x20,0x00,0x00,
0x00,0xC3,0x00,0x07,0x67,0x40,0x00,0x07,0xF0,0x00,0x00,0x03,0x3E,0x00,0x00,0x00,
0x00,0x02,0x00,0x03,0xE7,0xA0,0x00,0x00,0x00,0x00,0x00,0x02,0x8E,0x00,0x00,0x00,
0x00,0x06,0x00,0x03,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,
0x00,0x06,0x00,0x07,0x03,0x00,0x77,0x46,0x74,0x24,0x80,0x06,0x04,0x00,0x00,0x00,
0x00,0x1C,0x00,0x06,0x00,0x00,0x55,0x45,0x54,0x57,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x1C,0x00,0x0E,0x00,0x00,0x45,0x45,0x74,0x57,0x80,0x08,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1C,0x00,0x00,0x55,0x45,0x44,0x74,0x80,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x38,0x00,0x00,0x77,0x76,0x47,0x54,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

uchar code tab5[]={
/*-- 調入了一幅圖像:F:\梁\畫圖\COCK.bmp --*/
/*-- 寬度x高度=128x64 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x43,0x01,0x80,0x00,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x19,0xFF,0x07,0x00,0x07,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x3F,0xFC,0x1E,0x00,0x1F,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xBF,0xFF,0xFC,0x00,0x7F,0xFC,0x00,0x7F,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0xFF,0xC0,0x00,0x0F,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xFC,0x01,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xDF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xE0,0x38,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xF8,0x00,0x1F,0xFF,0xF0,0x03,0xF8,0x38,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,0x3F,0xFF,0xFF,0xC0,0x7C,0x18,0x00,0x00,0x00,
0x00,0x00,0x00,0x04,0x7F,0xF0,0x00,0x3F,0xFF,0xFF,0xF8,0x1E,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xF8,0x00,0x7F,0xFF,0xFF,0xFE,0x0F,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0x87,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xFF,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x83,0x88,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xC3,0x88,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF1,0x88,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF3,0x08,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xF2,0x10,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xF0,0x20,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x7E,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0x3C,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,0x7C,0x20,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x1E,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF2,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x78,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x40,0x04,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

/*----初始化-----*/
void init_lcd (void)
{
wr_lcd (comm,0x30); /*30---基本指令動作*/
wr_lcd (comm,0x01); /*清屏,地址指針指向00H*/
delay (100);
wr_lcd (comm,0x06); /*游標的移動方向*/
wr_lcd (comm,0x0c); /*開顯示,關游標*/
}

/*----上半屏顯示漢字或字元----*/
void chn_dispup (uchar code *chn)
{
uchar i,j;
wr_lcd (comm,0x30); //30---基本指令動作
wr_lcd (comm,0x80); //把顯示地址設為0X80,即為第一行的首位--第一頁
j=0;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
}

/*----下半屏顯示漢字或字元---*/
void chn_dispdown (uchar code *chn)
{
uchar i,j;
wr_lcd (comm,0x30); /*30---基本指令動作*/
wr_lcd (comm,0x90); //把顯示地址設為0X90,即為第二行的首位--第二頁
j=0;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
}

/*---上下半屏順序顯示漢字或字元----*/
void chn_disp1 (uchar code *chn)
{
uchar i,j;
wr_lcd (comm,0x30); /*30---基本指令動作*/

wr_lcd (comm,0x80); //把顯示地址設為0X80,即為第一行的首位--第一頁
j=0;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);

wr_lcd (comm,0x90); //把顯示地址設為0X90,即為第二行的首位--第二頁
j=1;
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
}

/*----顯示圖形----*/
void img_disp (uchar code *img)
{
uchar i,j;
for(j=0;j<32;j++)
{
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34); //擴充指令操作
wr_lcd (comm,y+j); //先將垂直的位元組坐標(Y)寫入繪圖RAM 地址
wr_lcd (comm,x1+i); //再將水平的位元組坐標(X)寫入繪圖RAM 地址。
wr_lcd (comm,0x30); //基本指令動作
wr_lcd (dat,img[j*16+i*2]); //寫入第一個Bytes
wr_lcd (dat,img[j*16+i*2+1]); //寫入第二個Bytes
}
}
for(j=32;j<64;j++)
{
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34); //擴充指令操作
wr_lcd (comm,y+j-32); //先將垂直的位元組坐標(Y)寫入繪圖RAM 地址
wr_lcd (comm,x2+i); //再將水平的位元組坐標(X)寫入繪圖RAM 地址
wr_lcd (comm,0x30); //基本指令動作
wr_lcd (dat,img[j*16+i*2]); //寫入第一個Bytes
wr_lcd (dat,img[j*16+i*2+1]); //寫入第二個Bytes
}
}
wr_lcd (comm,0x36);
}

/*--------顯示點陣-----------*/
void lat_disp (uchar data1,uchar data2)//data1,data2是要顯示的數據
{
uchar i,j,k,x;
x=x1;
for(k=0;k<2;k++)
{
for(j=0;j<16;j++)
{
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34); //擴充指令操作
wr_lcd (comm,y+j*2); //先將垂直的位元組坐標(Y)寫入繪圖RAM 地址
wr_lcd (comm,x+i); //再將水平的位元組坐標(X)寫入繪圖RAM 地址
wr_lcd (comm,0x30); //功能設置:一次送8位數據,基本指令集
wr_lcd (dat,data1); //寫入第一個Bytes
wr_lcd (dat,data1); //寫入第二個Bytes
}
for(i=0;i<8;i++)
{
wr_lcd (comm,0x34); //擴充指令操作
wr_lcd (comm,y+j*2+1); //先將垂直的位元組坐標(Y)寫入繪圖RAM 地址
wr_lcd (comm,x+i); //再將水平的位元組坐標(X)寫入繪圖RAM 地址
wr_lcd (comm,0x30); //基本指令操作
wr_lcd (dat,data2); //寫入第一個Bytes
wr_lcd (dat,data2); //寫入第二個Bytes
}
}
x=x2;
}
wr_lcd (comm,0x36);
}

/*--------------清DDRAM------------------*/
void clrram (void)
{
wr_lcd (comm,0x30);
wr_lcd (comm,0x01);
delay (180);
}
/*---------------------------------------*/
void wr_lcd (uchar dat_comm,uchar content)
{
uchar a,i,j;
delay (50);
a=content;
cs=1;
sclk=0;
std=1;
for(i=0;i<5;i++)
{
sclk=1;
sclk=0;
}
std=0;
sclk=1;
sclk=0;
if(dat_comm)
std=1; //data
else
std=0; //command
sclk=1;
sclk=0;
std=0;
sclk=1;
sclk=0;
for(j=0;j<2;j++)
{
for(i=0;i<4;i++)
{
a=a<<1;
std=CY;
sclk=1;
sclk=0;
}
std=0;
for(i=0;i<4;i++)
{
sclk=1;
sclk=0;
}
}
}
/*-----------------------------------*/
void delay (uint us) //delay time
{
while(us--);
}
void delay1 (uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<15;j++)
delay(1);
}
/*------------------主程序--------------------*/
void main ()
{
SP=0x5f;
init_lcd ();
while (1)
{
clrram();
lat_disp (0x00,0x00); //顯示點陣
delay1 (8000);
clrram();
lat_disp (0xcc,0xcc); //顯示點陣
delay1 (8000);
clrram();
chn_disp1 (tab1); //上下半屏順序顯示漢字或字元
delay1 (8000);
clrram();
lat_disp (0xff,0x00); //顯示點陣
delay1 (8000);
img_disp (tab5); //顯示圖形
delay1 (8000);
clrram();
chn_dispup (tab31); //上半屏順序顯示漢字或字元
delay1 (8000);
clrram();
chn_dispdown (tab31); //下半屏順序顯示漢字或字元
delay1 (8000);

}
}

閱讀全文

與12232f液晶屏c程序相關的資料

熱點內容
林正英電影在線觀看免費完整版 瀏覽:941
泰國電影愛情片男男 瀏覽:974
java獲取src下包文件 瀏覽:177
同時修改相同的資料庫 瀏覽:186
怎麼替換文件夾 瀏覽:39
少兒編程需要准備什麼條件 瀏覽:154
與大數據有關課題 瀏覽:557
雙十一哪裡可以看實時數據 瀏覽:286
如何在網站掛公眾號 瀏覽:858
win7安裝win10後程序在哪個文件夾里 瀏覽:351
提示沒有文件名 瀏覽:669
java文件怎麼保存 瀏覽:535
倆男倆女去度假還有一個老闆娘的韓國電影 瀏覽:776
怎麼給stm32下載程序 瀏覽:885
閔度允的電影辦公室 瀏覽:487
屍吻完整高清版免費看 瀏覽:713
深圳投簡歷到哪個網站 瀏覽:290
大數據解析網路交友 瀏覽:271
無線網卡未識別的網路 瀏覽:36
女大學生的客房沙龍女主角叫什麼名字 瀏覽:486

友情鏈接