久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
LCD12864動態顯示漢字proteus仿真加源程序
[打印本頁]
作者:
HGP7561
時間:
2017-12-2 21:27
標題:
LCD12864動態顯示漢字proteus仿真加源程序
LCD動態顯示漢字
0.png
(12.67 KB, 下載次數: 61)
下載附件
2017-12-3 01:45 上傳
0.png
(16.6 KB, 下載次數: 57)
下載附件
2017-12-3 01:46 上傳
單片機LCD12864驅動源程序如下:
#include <reg51.h>
#include <intrins.h>
#define Dataport P0 //LCD數據線
sbit RS=P2^2; // 數據\指令 選擇
sbit RW=P2^1; // 讀\寫 選擇
sbit EN=P2^0; // 讀\寫使能
sbit cs1=P2^4; // 片選1
sbit cs2=P2^3; // 片選2
#define uint unsigned int
#define uchar unsigned uchar
/********************************/
/* 定義中文字庫 */
/********************************/
unsigned char code Hzk[]={
/*-- 文字: 中 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,
/*-- 文字: 國 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,
/*-- 文字: 人 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x01,0x06,0x0C,0x18,0x30,0x60,0x20,0x00,
/*-- 文字: 民 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x9E,0x80,0x80,0x00,0x00,
0x00,0x00,0xFF,0x40,0x20,0x10,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0xF0,0x00,0x00,
/*-- 文字: 解 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0xF4,0x57,0x54,0xFC,0x54,0xF0,0x42,0xA2,0x1E,0x02,0xA2,0x62,0x3E,0x00,0x00,
0x80,0x7F,0x02,0x02,0x5F,0x82,0x7F,0x0A,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x00,
/*-- 文字: 放 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0x08,0xF8,0x49,0x4E,0xC8,0x88,0x40,0x38,0xCF,0x0A,0x08,0x88,0x78,0x08,0x00,
0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x40,0x20,0x10,0x0B,0x0E,0x31,0x60,0x20,0x00,
/*-- 文字: 軍 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x18,0x26,0x22,0xA2,0x72,0x2E,0xAA,0x22,0x22,0x22,0x32,0x22,0x0A,0x06,0x00,
0x00,0x10,0x10,0x12,0x13,0x12,0x12,0xFF,0x12,0x12,0x12,0x13,0x12,0x18,0x10,0x00,
/*-- 文字: 第 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x10,0x08,0x04,0xD3,0x56,0x5A,0x52,0x5A,0xF4,0x53,0x56,0x5A,0x72,0x02,0x02,0x00,
0x00,0x20,0x20,0x23,0x12,0x12,0x0A,0x06,0xFF,0x02,0x02,0x12,0x22,0x1E,0x00,0x00,
/*-- 文字: 三 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
/*-- 文字: 三 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
/*-- 文字: 零 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x0C,0x04,0x55,0x55,0x55,0x85,0x7F,0x85,0x55,0x55,0x55,0x05,0x0C,0x04,0x00,
0x04,0x04,0x04,0x0A,0x0A,0x09,0x2A,0xCC,0x28,0x19,0x09,0x02,0x06,0x02,0x02,0x00,
/*-- 文字: 三 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
/*-- 文字: 工 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
/*-- 文字: 廠 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 導 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x3E,0x4A,0x4A,0x4A,0x4A,0x4A,0x4A,0xCA,0x4E,0x40,0x70,0x00,0x00,
0x02,0x02,0x02,0x02,0x06,0x3A,0x12,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x00,
/*-- 文字: 彈 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x02,0xF2,0x12,0x12,0x1E,0x00,0xF9,0x2A,0x2C,0xF8,0x28,0x2C,0x2B,0xFA,0x00,0x00,
0x01,0x43,0x81,0x41,0x3F,0x08,0x0B,0x09,0x09,0xFF,0x09,0x09,0x09,0x0B,0x08,0x00,
/*-- 文字: 中 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,
/*-- 文字: 心 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x80,0x00,0x00,0xF0,0x00,0x01,0x02,0x1C,0x08,0x00,0x40,0x80,0x00,0x00,0x00,
0x04,0x03,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x40,0x78,0x00,0x07,0x02,0x00,
/*-- 文字: 胡 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x08,0x00,0xFE,0x12,0x12,0x12,0xFE,0x00,0x00,
0x00,0x3F,0x10,0x10,0x10,0x10,0x7F,0x80,0x40,0x3F,0x01,0x41,0x81,0x7F,0x00,0x00,
/*-- 文字: 國 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,
/*-- 文字: 平 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x01,0x05,0x09,0x71,0x21,0x01,0xFF,0x01,0x41,0x21,0x1D,0x09,0x01,0x00,0x00,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
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,
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
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,
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
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,
};
/****************************************/
/* 定義ASCII字庫8列*16行 */
/****************************************/
unsigned char code Ezk[]={
/*-- 文字: Q --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,
/*-- 文字: Q --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,
/*-- 文字: 1 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
/*-- 文字: 3 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
/*-- 文字: 0 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
/*-- 文字: 8 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
/*-- 文字: 1 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
/*-- 文字: 3 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
/*-- 文字: 0 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
/*-- 文字: 4 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void CheckState() //狀態檢查,LCD是否忙?
{
unsigned char dat;
RS=0;
RW=1;
do{
Dataport=0x00;
EN=1;
dat=Dataport;
EN=0;
dat=0x80 & dat; //僅當第7位為0時才可操作(判別busy信號)
}while(!(dat==0x00));
}
SendCommandToLCD(unsigned char command) //寫命令到LCD中
{
CheckState();
RS=0; //向LCD發送命令
RW=0;
Dataport=command; //command :命令
EN=1;
EN=0;
}
void SetLine(unsigned char page) //設置頁 0xb8是頁的首地址
{
page=0xb8|page; //1011 1xxx 0<=page<=7 設定頁地址--X 0-7,8行為一頁64/8=8,共8頁
SendCommandToLCD(page);
}
void SetStartLine(unsigned char startline) //設定顯示開始行,0xc0是行的首地址
{
startline=0xc0|startline; //1100 0000
SendCommandToLCD(startline); //設置從哪行開始:0--63,一般從0 行開始顯示
}
void SetColumn(unsigned char column) //設定列地址--Y 0-63 ,0x40是列的首地址
{
column=column &0x3f; //column最大值為64,越出 0=<column<=63
column= 0x40|column; //01xx xxxx
SendCommandToLCD(column);
}
void SetOnOff(unsigned char onoff) //開關顯示,0x3f是開顯示,0x3e是關顯示
{
onoff=0x3e|onoff; //0011 111x,onoff只能為0或者1
SendCommandToLCD(onoff);
}
void WriteByte(unsigned char dat) //寫顯示數據
{
CheckState();
RS=1;
RW=0;
Dataport=dat;//dat:顯示數據
EN=1;
EN=0;
}
void SelectScreen(unsigned char screen) //選擇屏幕screen: 0-全屏,1-左屏,2-右屏
{
switch(screen)
{ case 0: cs1=0;//全屏
_nop_(); _nop_(); _nop_();
cs2=0;
_nop_(); _nop_(); _nop_();
break;
case 1: cs1=0;//左屏
_nop_(); _nop_(); _nop_();
cs2=1;
_nop_(); _nop_(); _nop_();
break;
case 2: cs1=1;//右屏
_nop_(); _nop_(); _nop_();
cs2=0;
_nop_(); _nop_(); _nop_();
break;
}
}
void ClearScreen(unsigned char screen) //清屏screen: 0-全屏,1-左屏,2-右
{
unsigned char i,j;
SelectScreen(screen);
for(i=0;i<8;i++) //控制頁數0-7,共8頁
{
SetLine(i);
SetColumn(0);
for(j=0;j<64;j++) //控制列數0-63,共64列
{
WriteByte(0x00); //寫點內容,列地址自動加1
}
}
}
void delay(uint nms) //延時程序
{
uint i;
for(; nms > 0; nms--)
for(i = 0; i < 500; i++);
}
void lcd_rol() //向上滾屏
{
uint i;
for(i = 0; i < 64; i++)
{
cs1=0; // 片選1
SendCommandToLCD(0xc0+i);
cs1=1;
cs2=0;// 片選2
SendCommandToLCD(0xc0+62-i);
cs2=0; // 片選2
delay(6);
}
}
void InitLCD( ) //初始化LCD
{
CheckState();
SelectScreen(0);
SetOnOff(0); //關顯示
SelectScreen(0);
SetOnOff(1); //開顯示
SelectScreen(0);
ClearScreen(0);//清屏
SetStartLine(0); //開始行:0
}
//顯示全角漢字
void Display(unsigned char ss,unsigned char page,unsigned char column,unsigned char number)
{
int i; //選屏參數,pagr選頁參數,column選列參數,number選第幾漢字輸出
SelectScreen(ss);
column=column&0x3f;
SetLine(page); //寫上半頁
SetColumn(column); //控制列
for(i=0;i<16;i++) //控制16列的數據輸出
{
WriteByte(Hzk[i+32*number]); //i+32*number漢字的前16個數據輸出
}
SetLine(page+1); //寫下半頁
SetColumn(column); //控制列
for(i=0;i<16;i++) //控制16列的數據輸出
{
WriteByte(Hzk[i+32*number+16]); //i+32*number+16漢字的后16個數據輸出
}
}
//顯示半角漢字和數字和字母
void Displayen(unsigned char ss,unsigned char page,unsigned char column,unsigned char number)
{
int i; //選屏參數,pagr選頁參數,column選列參數,number選第幾漢字輸出
SelectScreen(ss);
column=column&0x3f;
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
LCD動態顯示漢字.rar
(92.13 KB, 下載次數: 259)
2017-12-2 21:27 上傳
點擊文件名下載附件
LCD動態顯示漢字
下載積分: 黑幣 -5
作者:
zzz116
時間:
2018-12-4 11:12
這個是不帶字庫的液晶屏吧?需要自己取模
作者:
小鐵匠
時間:
2019-1-13 13:42
怎么下載
作者:
小鐵匠
時間:
2019-1-13 15:25
怎么改漢字
作者:
123145dkasjf
時間:
2019-5-27 15:59
可以嗎
作者:
szzxl10
時間:
2019-7-12 18:51
先下載學習學習
作者:
00一一
時間:
2019-7-13 09:59
厲害,好資料。
作者:
Longan.Wang
時間:
2021-12-9 13:51
來看看,測我的取模軟件
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久精品视频网站
|
亚洲777
|
毛片在线观看视频
|
五月婷丁香
|
久久久香蕉
|
狠狠操天天操
|
午夜精品一区二区三区在线播放
|
色婷婷中文字幕
|
五月婷婷在线观看
|
日韩成人免费视频
|
黄色一级视频
|
少妇一级淫片免费观看
|
午夜视频在线播放
|
久久综合五月天
|
美女毛片视频
|
免费一区二区三区
|
福利在线
|
中文字幕在线视频观看
|
一区视频
|
欧美精品久久久久久
|
欧美激情一区
|
欧美久久网
|
国产一级二级片
|
国产一级二级三级
|
久久久久久久久久国产精品
|
国产精品欧美日韩
|
国产原创精品
|
婷婷97
|
日韩福利片
|
亚洲精品在线观看视频
|
久久精品国产视频
|
日韩中文字幕在线视频
|
亚洲国产一区在线
|
欧美国产一区二区
|
亚洲欧洲一区
|
你懂的在线网站
|
国产乱码一区二区
|
超碰91在线
|
亚洲综人网
|
国产高清一区二区
|
诱人的大乳奶3做爰
|