找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

關(guān)于51單片機(jī)液晶顯示程序,不能同時(shí)顯示字母和漢字?

查看數(shù): 1748 | 評(píng)論數(shù): 5 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁(yè)<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2021-11-9 21:31

正文摘要:

請(qǐng)問為什么液晶顯示不能同時(shí)顯示字母和漢字!是代碼的問題嗎?請(qǐng)問怎么改。窟@是我的仿真結(jié)果,亂碼!

回復(fù)

ID:978297 發(fā)表于 2021-11-20 18:30
man1234567 發(fā)表于 2021-11-10 08:08
你的答案很正確,是代碼問題,所以不用貼亂碼了。
點(diǎn)陣顯示器,它并不知道顯示的是啥,只是按既定的規(guī)則顯 ...

下一樓回答正確,確實(shí)字母和漢字的點(diǎn)陣出現(xiàn)問題,我全部考慮8X8點(diǎn)陣了!
還是謝謝你!
ID:978297 發(fā)表于 2021-11-20 18:28
devcang 發(fā)表于 2021-11-10 10:34
顯示的方法,要修改,英文一般是顯示5X8點(diǎn)陣,而中文一般是16x16點(diǎn)陣(還有上下半截之分,取模時(shí)還分從左往 ...

謝謝!  很有幫助!
ID:277550 發(fā)表于 2021-11-10 10:34
顯示的方法,要修改,英文一般是顯示5X8點(diǎn)陣,而中文一般是16x16點(diǎn)陣(還有上下半截之分,取模時(shí)還分從左往右、還是從右往左),也有24點(diǎn)的、或更多點(diǎn)的,看顯示的需要。
ID:584814 發(fā)表于 2021-11-10 08:08
你的答案很正確,是代碼問題,所以不用貼亂碼了。
點(diǎn)陣顯示器,它并不知道顯示的是啥,只是按既定的規(guī)則顯示點(diǎn)。
既然顯示的點(diǎn)可以成英文,就可以成漢字,也可以是圖形,硬件正確就是軟件問題。
ID:978297 發(fā)表于 2021-11-9 21:33
#include <reg51.h> #include <stdio.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define DATA P2   //數(shù)據(jù)端口  sbit Reset = P3^0;   //復(fù)位 sbit RS = P3^7;    //指令數(shù)據(jù)選擇 sbit E = P3^5;    //指令數(shù)據(jù)控制 sbit RW = P3^6;    //讀寫控制 sbit busy = P2^7;   //忙標(biāo)志 sbit CS1 = P3^2;   //左屏幕選擇,低電平有效 sbit CS2 = P3^3;   //右屏幕選擇 /////////////////////////////////////// LCD /////////////////////////////////////   const uchar code Hzk[] = {  0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//*"E",0*/  0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//*"D",1*/  0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//*"G",2*/  0x00,0x40,0x20,0x1E,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,//*"牛",3*/  0x40,0x40,0x42,0xCC,0x00,0x82,0xBA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBA,0x82,0x00,0x00, 0x00,0x40,0x20,0x1F,0x20,0x5F,0x4A,0x4A,0x4A,0x4F,0x4A,0x4A,0x4A,0x5F,0x40,0x00//*"逼",4*/ };  const uchar code pic[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,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,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00, 0x00,0x00,0x00,0x01,0xE0,0x07,0x00,0x00,0x00,0x00,0xC0,0x07,0xE1,0x1E,0x00,0x00, 0x00,0x00,0xE0,0x0F,0xE0,0x39,0x00,0x00,0x00,0xF0,0x3F,0x1C,0xC0,0x71,0x00,0x00, 0x00,0xFC,0xDF,0x19,0xF8,0x6F,0x00,0x00,0x00,0x1F,0xF0,0x33,0xFC,0xFF,0x00,0x00, 0x80,0x03,0x30,0x36,0xBF,0xFF,0x81,0x0F,0xC0,0x01,0x70,0xB6,0xE3,0xFF,0xFB,0x0F, 0xE0,0x00,0xE0,0xFE,0xC1,0xE3,0x7F,0x0C,0x60,0x00,0xF0,0xFF,0xC0,0x63,0x03,0x0C, 0x30,0x00,0xF8,0x7F,0xC0,0xC1,0x01,0xFC,0x30,0x00,0x6C,0xF8,0xF3,0xC1,0x00,0xF8, 0x30,0xF4,0xFF,0xF8,0xFF,0xF1,0x00,0x18,0x30,0xF8,0xFB,0x71,0xDE,0xFD,0x00,0x18, 0x30,0x98,0xED,0xF1,0xBF,0xDF,0x00,0xF8,0x30,0x8C,0xED,0xBD,0x37,0x83,0x01,0xF8, 0x70,0x8C,0xDD,0xFF,0x7E,0x80,0x01,0x18,0x60,0x0C,0xF8,0xFF,0xFF,0xC0,0x00,0xF8, 0x60,0x1C,0xF0,0xFE,0xFF,0x60,0x00,0xF8,0xE0,0x18,0x78,0xFE,0xFF,0xE0,0x00,0x18, 0xC0,0x18,0xFC,0x76,0x1F,0xC3,0x00,0x18,0xC0,0x8C,0xED,0xF1,0xFE,0x6F,0x00,0xF8, 0xC0,0x8C,0xAD,0xF1,0xF9,0xFF,0x00,0xF8,0xC0,0x99,0xBD,0x99,0xC1,0xF9,0x0F,0x0C, 0x80,0xF9,0xED,0x9C,0xF3,0x00,0x7F,0x0C,0x00,0xF3,0xFF,0x1F,0x7F,0x00,0xF8,0x0F, 0x00,0x87,0xFF,0x1B,0x6E,0x00,0x80,0x0F,0x00,0xFE,0xFF,0x18,0x66,0x08,0x00,0x00, 0x00,0xF8,0x3F,0x9C,0x63,0x00,0x00,0x00,0x00,0x00,0xF0,0xEF,0x31,0x00,0x00,0x10, 0x00,0x00,0xE0,0x67,0x1B,0x00,0x00,0x40,0x00,0x00,0x00,0xB0,0x0F,0x00,0x00,0x08, 0x00,0x00,0x00,0xF0,0x07,0x00,0x00,0x08,0x00,0x00,0x00,0xF0,0x06,0x00,0x00,0x08, 0x00,0x00,0x80,0x71,0x07,0x00,0x00,0x08,0x00,0x00,0x00,0xF8,0x03,0x00,0x00,0x38, 0x00,0x00,0x00,0xFC,0x01,0x00,0x00,0x10,0x20,0x00,0x00,0x7E,0x00,0x00,0x00,0x00, 0x00,0x00,0x40,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04, 0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00, 0x08,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x30,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x06,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x80,0x00,0x00,0x00, 0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00 }; void CheckState() {         uchar dat;         RS = 0;         RW = 1;             do         {                 DATA = 0x00;                 E = 1;                 _nop_();                 dat = DATA;                 E = 0;                 dat = 0x80&dat;         }while(!(dat==0x00));     }  void SendCommand(uchar com) {         CheckState();         RS = 0;         RW = 0;         DATA = com;         E = 1;         _nop_();         _nop_();         E = 0; }  void SetLine(uchar page) {         page = 0xb8|page;         SendCommand(page); }  void SetStartLine(uchar startLine) {         startLine = 0xc0 | startLine;         SendCommand(startLine); }  void SetColumn(uchar column) {         column &= 0x3f;         column |= 0x40;         SendCommand(column); }  void SetOnOff(uchar onOff) {         onOff |= 0x3e;         SendCommand(onOff); }  void WriteByte(uchar dat) {         CheckState();         RS=1;         RW = 0;         DATA = dat;         E = 1;         _nop_();         _nop_();         E = 0; }  void SelectScreen(uchar screen) {         switch(screen)         {                 case 0: //全屏                 CS1 = 1;                 CS2 = 1;                 break;                 case 1: //左屏                 CS1 = 1;                 CS2 = 0;                 break;                 case 2: //右屏                 CS1 = 0;                 CS2 = 1;                 break;         } }  void ClearScreen(uchar screen) {         uchar i,j;         SelectScreen(screen);         for(i=0; i<8; i++)         {                 SetLine(i);                 SetColumn(0);                 for(j=0; j<64; j++)                 {                         WriteByte(0x00);                 }         } }  void delay(uint z) {         uint i,j;         for(i=0; i<z; i++)         {                 for(j=0; j<110; j++)                 {                         ;                 }         }                  }  void InitLcd() {         CheckState();         SelectScreen(0);         SetOnOff(0);         SelectScreen(0);         SetOnOff(1);         SelectScreen(0);         ClearScreen(0);         SetStartLine(0); }  void Display(uchar ss, uchar page, uchar column, uchar number) {         int i;         SelectScreen(ss);         column &= 0x3f;         SetLine(page);         SetColumn(column);         for(i=0; i<16; i++)         {                 WriteByte(Hzk[i+32*number]);         }         SetLine(page+1);         SetColumn(column);         for(i=0; i<16; i++)         {                 WriteByte(Hzk[i+32*number+16]);         } } void showMsg(uchar page) {    uchar i;    for(i=0; i<2.5; i++)                                    {       Display(1+i/4,page,i*16,i);    } } void drawBmp() {    int i,j,k;    SelectScreen(1);    SetLine(0);    SetColumn(0);    for(i=0; i<64; i++)    {       for(j=0; j<8; j++)       {          SetLine(j);          SetColumn(i&0x3f);          WriteByte(pic[i*8+j]);       }    }    SelectScreen(2);    SetLine(0);    SetColumn(64);    for(i=0; i<64; i++)    {       for(j=0; j<8; j++)       {          SetLine(j);          SetColumn(i&0x3f);          WriteByte(pic[512+i*8+j]);       }    } }  //////////////////////////////////////// END LCD //////////////////////////////// void main(void) {     int i,j;    InitLcd();    //drawBmp();    showMsg(3);                            while(1); }

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表