久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1682|回復: 5
打印 上一主題 下一主題
收起左側

關于51單片機液晶顯示程序,不能同時顯示字母和漢字?

[復制鏈接]
跳轉到指定樓層
樓主
請問為什么液晶顯示不能同時顯示字母和漢字!是代碼的問題嗎?請問怎么改?這是我的仿真結果,亂碼!

1.png (27.31 KB, 下載次數: 48)

1.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:978297 發表于 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   //數據端口  sbit Reset = P3^0;   //復位 sbit RS = P3^7;    //指令數據選擇 sbit E = P3^5;    //指令數據控制 sbit RW = P3^6;    //讀寫控制 sbit busy = P2^7;   //忙標志 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); }
回復

使用道具 舉報

板凳
ID:584814 發表于 2021-11-10 08:08 | 只看該作者
你的答案很正確,是代碼問題,所以不用貼亂碼了。
點陣顯示器,它并不知道顯示的是啥,只是按既定的規則顯示點。
既然顯示的點可以成英文,就可以成漢字,也可以是圖形,硬件正確就是軟件問題。
回復

使用道具 舉報

地板
ID:277550 發表于 2021-11-10 10:34 | 只看該作者
顯示的方法,要修改,英文一般是顯示5X8點陣,而中文一般是16x16點陣(還有上下半截之分,取模時還分從左往右、還是從右往左),也有24點的、或更多點的,看顯示的需要。
回復

使用道具 舉報

5#
ID:978297 發表于 2021-11-20 18:28 | 只看該作者
devcang 發表于 2021-11-10 10:34
顯示的方法,要修改,英文一般是顯示5X8點陣,而中文一般是16x16點陣(還有上下半截之分,取模時還分從左往 ...

謝謝!  很有幫助!
回復

使用道具 舉報

6#
ID:978297 發表于 2021-11-20 18:30 | 只看該作者
man1234567 發表于 2021-11-10 08:08
你的答案很正確,是代碼問題,所以不用貼亂碼了。
點陣顯示器,它并不知道顯示的是啥,只是按既定的規則顯 ...

下一樓回答正確,確實字母和漢字的點陣出現問題,我全部考慮8X8點陣了!
還是謝謝你!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜影晥 | 在线视频中文字幕 | 欧美综合在线观看 | 亚洲精品一二三区 | 欧美在线观看免费观看视频 | www国产亚洲精品 | 国产在线a | 久久精品欧美一区二区三区不卡 | 国产视频欧美 | 韩日在线观看视频 | 国产精品一区一区三区 | 国产精品免费一区二区三区四区 | 日本黄色大片免费 | 亚洲欧美中文日韩在线 | 干干干操操操 | 久久艹免费视频 | 国产精品伦一区二区三级视频 | 在线观看亚洲专区 | 亚洲一二三区不卡 | 免费一级毛片 | 一区二区三区精品在线 | 精品一二 | 久久久久久久久久一区二区 | 黄色毛片视频 | 中文字幕在线视频免费观看 | 欧美视频二区 | 国内av在线 | 国产精品二区三区 | 国产精品一区在线 | 日韩最新网站 | 久久久久久av | 亚洲福利在线视频 | 91美女在线观看 | 午夜影院在线观看 | 国产做a爱免费视频 | 欧美日韩不卡 | 国产精品免费一区二区三区 | 国产在线视频在线观看 | 日本久久精品视频 | 小视频你懂得 | 青青草社区 |