欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 用protues做了仿真,液晶顯示器沒(méi)顯示 [打印本頁(yè)]

作者: 花-落    時(shí)間: 2020-5-16 08:32
標(biāo)題: 用protues做了仿真,液晶顯示器沒(méi)顯示
請(qǐng)問(wèn)各位大神可以幫忙看看怎么回事嗎?

仿真錯(cuò)誤.jpg (145.32 KB, 下載次數(shù): 139)

仿真錯(cuò)誤.jpg

1 程序.zip

135.87 KB, 下載次數(shù): 12


作者: xuyaqi    時(shí)間: 2020-5-16 09:58
雖然都是LCD12864,驅(qū)動(dòng)芯片不一樣,驅(qū)動(dòng)程序也不一樣,比如仿真硬件要求cs1,cs2,你的軟件卻沒(méi)有cs1,cs2的驅(qū)動(dòng),所以不顯示。
作者: angmall    時(shí)間: 2020-5-16 10:47
本帖最后由 angmall 于 2020-5-16 13:54 編輯

你這個(gè)12864LCD是KS0108驅(qū)動(dòng)芯片的
你的軟件是驅(qū)動(dòng)st7920,可惜proteus庫(kù)里沒(méi)有
所以不顯示。

  1. #include <reg52.h>

  2. sbit EN=P0^3;
  3. sbit RS=P0^1;
  4. sbit RW=P0^2;
  5. sbit CS1=P0^4;
  6. sbit CS2=P0^5;
  7. sbit RST=P0^6;

  8. unsigned char code a[2][32]=
  9. {
  10.         {
  11.                 //0xFF,0xFF,0x03,0xFB,0x9B,0xAB,0xBB,0x3A,0x81,0xBB,0xBB,0xAB,0x9B,0xBB,0xBB,0xFF,  //
  12.                 //0x7F,0x9F,0xE0,0xBF,0xDF,0x67,0x79,0xBE,0xB8,0xD6,0xEE,0xD6,0xBA,0x7C,0x7F,0xFF
  13.                 /*--  文字:  液  --*/
  14.                 /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  15.                 0x10,0x61,0x06,0xE0,0x18,0x84,0xE4,0x1C,0x84,0x65,0xBE,0x24,0xA4,0x64,0x04,0x00,
  16.                 0x04,0x04,0xFF,0x00,0x01,0x00,0xFF,0x41,0x21,0x12,0x0C,0x1B,0x61,0xC0,0x40,0x00
  17.            
  18.         },
  19.         {
  20.                 //0xBF,0xC3,0xEF,0x00,0xEF,0xEF,0xDF,0xEF,0x70,0x87,0xF7,0x07,0xF7,0x07,0xFF,0xFF,     //
  21.                 //0xFD,0xF9,0xFD,0x00,0xFE,0xFE,0xFB,0xBD,0xDE,0xE7,0xB9,0x7E,0xBF,0xC0,0xFF,0xFF
  22.                 /*--  文字:  晶  --*/
  23.                 /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  24.                 0x00,0x00,0x00,0x00,0x7E,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x7E,0x00,0x00,0x00,0x00,
  25.                 0x00,0x7F,0x25,0x25,0x25,0x25,0x7F,0x00,0x00,0x7F,0x25,0x25,0x25,0x25,0x7F,0x00
  26.            
  27.         },
  28. };

  29. void Delay (unsigned int z)
  30. {
  31.         unsigned int i,j;
  32.         for(i=z;i>0;i--)
  33.            for(j=2;j>0;j--);
  34. }
  35. void WriteCode(unsigned char com)
  36. {
  37.         Delay(1);
  38.         RS=0;
  39.         RW=0;
  40.         P2=com;
  41.         EN=1;
  42.         EN=0;
  43.         Delay(1);  
  44. }
  45. void WriteData(unsigned char dat)
  46. {
  47.         Delay(1);
  48.         RS=1;
  49.         RW=0;
  50.         P2=dat;
  51.         EN=1;
  52.         EN=0;
  53.         Delay(1);  
  54. }
  55. unsigned char ReadData()
  56. {
  57.         unsigned char save;     
  58.         Delay(1);
  59.         RS=1;
  60.         RW=1;
  61.         EN=1;
  62.         save=P2;
  63.         EN=0;
  64.         return(save);
  65. //        Delay(1);
  66. }
  67. void LcdInitialize()
  68. {
  69.         Delay(1);
  70.         CS1=0; CS2=0;
  71.         WriteCode(0x3e);
  72.         WriteCode(0xb8);
  73.         WriteCode(0xc0);
  74.         WriteCode(0x40);
  75.         WriteCode(0x3f);
  76. }
  77. void SetXy(unsigned char x,unsigned char y)
  78. {
  79.         WriteCode(0xb8+x);
  80.         WriteCode(0x40+y);
  81.         Delay(1);
  82. }
  83. void LcdClear()
  84. {
  85.         unsigned char i,j;
  86.         CS1=0;CS2=0;
  87.         for(i=0;i<8;i++)
  88.         {
  89.                 SetXy(i,0);
  90.                 for(j=0;j<64;j++)
  91.                 WriteData(0x00);
  92.         }                                                            
  93. }
  94. void DrawPoint(unsigned char x,unsigned char y,unsigned char dat)
  95. {
  96.         unsigned char he;
  97.         SetXy(x,y);
  98.         he=ReadData();
  99.         he=ReadData();
  100.         SetXy(x,y);
  101.         WriteData(dat+he);
  102. }
  103. void DrawHanzi(unsigned char x,unsigned char y,unsigned char code *dat)
  104. {
  105.         unsigned char i=0,j=0;
  106.         for(i=0;i<2;i++)
  107.         {
  108.                 SetXy(x+i,y);
  109.                 for(j=0;j<16;j++)
  110.                 WriteData(dat[16*i+j]);
  111.         }
  112. }
  113. void main()
  114. {
  115.         unsigned char i,j;
  116.         LcdInitialize();
  117.         LcdClear();
  118.         for(i=0;i<4;i++){DrawHanzi(2*i,16*j,a[0]);DrawHanzi(2*i,16*j+16,a[1]);}
  119.         for(i=0;i<4;i++){DrawHanzi(2*i,16*j+32,a[0]);DrawHanzi(2*i,16*j+16+32,a[1]);}
  120.         DrawPoint(0,0,1);
  121.         while(1);
  122. }



復(fù)制代碼

作者: taotie    時(shí)間: 2020-5-16 11:32
瞟一眼~那個(gè)上拉電阻RP1用錯(cuò)了
作者: 花-落    時(shí)間: 2020-5-16 13:00
xuyaqi 發(fā)表于 2020-5-16 09:58
雖然都是LCD12864,驅(qū)動(dòng)芯片不一樣,驅(qū)動(dòng)程序也不一樣,比如仿真硬件要求cs1,cs2,你的軟件卻沒(méi)有cs1,cs2 ...

謝謝,但是我沒(méi)有在里面找到硬件用的LCM12864J-3
作者: 花-落    時(shí)間: 2020-5-16 13:01
taotie 發(fā)表于 2020-5-16 11:32
瞟一眼~那個(gè)上拉電阻RP1用錯(cuò)了

怎么錯(cuò)啦啊
作者: 花-落    時(shí)間: 2020-5-16 13:03
angmall 發(fā)表于 2020-5-16 10:47
你這個(gè)12864LCD是KS0108驅(qū)動(dòng)芯片的
你的軟件是驅(qū)動(dòng)st7920,可惜proteus庫(kù)里沒(méi)有
所以不顯示。

不太懂
作者: taotie    時(shí)間: 2020-5-16 13:25
花-落 發(fā)表于 2020-5-16 13:01
怎么錯(cuò)啦啊

應(yīng)該用RESPACK-8并且1腳接+5v
作者: 花-落    時(shí)間: 2020-5-16 13:35
taotie 發(fā)表于 2020-5-16 13:25
應(yīng)該用RESPACK-8并且1腳接+5v

好的,謝謝,我試一下
作者: xxpp2011    時(shí)間: 2020-5-16 14:11
可以自己添加到元件庫(kù)
LCD12864A.dll Proteus中文字庫(kù)元件下載(ST7920)單片機(jī)控制DS18B20溫度傳感器 - 單片機(jī)仿真論壇 單片機(jī)論壇 http://m.raoushi.com/bbs/dpj-148431-1.html
作者: qwersde    時(shí)間: 2020-5-16 14:48
http://m.raoushi.com/bbs/dpj-80017-1.html 用這個(gè)顯示屏應(yīng)該可以解決你帶不能顯示的問(wèn)題
作者: 花-落    時(shí)間: 2020-5-16 15:52
xxpp2011 發(fā)表于 2020-5-16 14:11
可以自己添加到元件庫(kù)
LCD12864A.dll Proteus中文字庫(kù)元件下載(ST7920)單片機(jī)控制DS18B20溫度傳感器 - 單 ...

不知道哪里又錯(cuò)了
作者: 花-落    時(shí)間: 2020-5-16 15:54
qwersde 發(fā)表于 2020-5-16 14:48
http://m.raoushi.com/bbs/dpj-80017-1.html 用這個(gè)顯示屏應(yīng)該可以解決你帶不能顯示的問(wèn)題

謝謝,我找到那個(gè)液晶了
作者: kakakakaka    時(shí)間: 2020-5-16 16:31
你寫的代碼是針對(duì)液晶A的,但是你仿真軟件里添加的是液晶B。你用A的驅(qū)動(dòng)代碼肯定驅(qū)動(dòng)不了B。要么你找A的器件描述添加進(jìn)proteus;要么改自己的代碼,按照你proteus選擇的液晶型號(hào)進(jìn)行驅(qū)動(dòng)它打代碼編寫。
作者: 花-落    時(shí)間: 2020-5-16 19:43
kakakakaka 發(fā)表于 2020-5-16 16:31
你寫的代碼是針對(duì)液晶A的,但是你仿真軟件里添加的是液晶B。你用A的驅(qū)動(dòng)代碼肯定驅(qū)動(dòng)不了B。要么你找A的器 ...

我找到那個(gè)液晶了,但是還是不顯示




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1