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

標題: [原創]發布一個ST7920的LCD12864 Proteus仿真模型,支持串口和4bit模式通訊 [打印本頁]

作者: cdhigh    時間: 2021-9-29 23:43
標題: [原創]發布一個ST7920的LCD12864 Proteus仿真模型,支持串口和4bit模式通訊
網絡上已經有了一個12864A(ST7920)仿真模型,但其功能非常有限,不支持4位并行接口,不支持串行接口,不支持ASCII字母和數字顯示,也不支持繪圖顯示,所以我就自己動手,實現了此模型,并分享源代碼,方便有需要的朋友修改支持其他規格的器件,倉庫托管于 <https://github.com/cdhigh/lcd12864_st7920_proteus>










全部資料51hei下載地址:
LCD12864B_DLL.rar (147.38 KB, 下載次數: 310)
更新V1.0.3,編譯為靜態鏈接,不需要VC運行庫,并優化漢字顯示效率。
LCD12864B_1.0.3.7z (212.51 KB, 下載次數: 384)


作者: heicad    時間: 2021-9-30 17:52
這個是好東西,下載測試一下,看來可以替換掉用了很久LCD12864a.DLL了
作者: cdhigh    時間: 2021-9-30 21:18
升級為1.0.1,修正了4bit模式下回讀ST7920數據錯誤的問題。
如果不使用4bit讀,則原來的版本沒問題。

LCD12864B_DLL_1.0.1.rar

189.91 KB, 下載次數: 49, 下載積分: 黑幣 -5


作者: cdhigh    時間: 2021-10-1 00:59
繼續升級1.0.2,從芯片手冊PDF里面截圖進行0x20以下非標準字符進行取模。
現在0x20以下的ASCII也能正常顯示。

LCD12864B_DLL_1.0.2.rar

189.8 KB, 下載次數: 124, 下載積分: 黑幣 -5


作者: by64214    時間: 2021-10-1 09:51
謝謝分享  現在可以任意位置,但是上部有殘影

1.png (56.96 KB, 下載次數: 218)

1.png

作者: 來51學習的    時間: 2021-10-1 16:00
感謝分享,好資料,51黑有你更精彩!!!
作者: ab560    時間: 2021-10-1 18:00
謝謝樓主分享,為什么我仿真始終要報錯?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.


作者: cdhigh    時間: 2021-10-1 21:20
本帖最后由 cdhigh 于 2021-10-3 03:17 編輯
by64214 發表于 2021-10-1 09:51
謝謝分享  現在可以任意位置,但是上部有殘影

在真實硬件上測試有沒有殘影?
有大字體小字體,使用了繪圖功能,清屏不能僅使用 0x01命令,根據手冊,0x01僅清除DDRAM,還需要全部GDRAM寫0x00。

如果只是仿真有的話,能否將 源碼和工程 發到附件?
只需要能重現問題的代碼即可,可以將其他你不想分享的代碼刪除。

作者: cdhigh    時間: 2021-10-1 21:28
by64214 發表于 2021-10-1 09:51
謝謝分享  現在可以任意位置,但是上部有殘影

AVR的清屏例子,需要發送 0x01,和全部 GDRAM寫0x00。

//顯示清屏函數
void LCD_clear(void)
{
    unsigned char x, y;
    LCD_write_command(0x08);  //避免清屏過程中閃爍,先關顯示
    _delay_us(100);
    LCD_write_command(0x01);  //清DDRAM

    //清GDRAM,12864僅用了一半的GDRAM,清一半即可
    //如果沒有使用到繪圖GDRAM,也可以不清GDRAM,省點時間和代碼空間
    LCD_startGraphic();
    for (y = 0; y < 32; y++)
    {
        LCD_write_command(0x80 + y); //y
        LCD_write_command(0x80 + 0); //x
        for (x = 0; x < 16; x++)
        {
            LCD_write_data(0x00);
            LCD_write_data(0x00);
        }
    }
    LCD_endGraphic();

    LCD_write_command(0x0C);  //顯示開
    _delay_ms(10);
}
作者: cdhigh    時間: 2021-10-1 22:56
ab560 發表于 2021-10-1 18:00
謝謝樓主分享,為什么我仿真始終要報錯?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.
...

如果你確認放的目錄沒錯的話,嘗試下載并安裝 VC2010運行庫?
不是 VS2010開發環境,是 大約10M左右的運行庫。
作者: ab560    時間: 2021-10-2 14:23
安裝云更新庫后仿真正常了,謝謝!
作者: cdhigh    時間: 2021-10-2 21:29
ab560 發表于 2021-10-2 14:23
安裝云更新庫后仿真正常了,謝謝!

之前沒注意,下次編譯一個不需要運行庫的版本。
作者: cdhigh    時間: 2021-10-3 07:35
by64214 發表于 2021-10-1 09:51
謝謝分享  現在可以任意位置,但是上部有殘影

你用的代碼應該是這個帖子里面的吧。
http://www.zg4o1577.cn/bbs/dpj-98264-1.html
如果是的話,這個帖子的代碼里面有BUG。
在函數 LCD_PrintfNumPicture()有這個語句:
  1. LCD_WriteCommand(0x36);   //設置擴展命令集,開顯示
復制代碼
此語句打開了繪圖顯示,表明接下來的設置地址和寫數據都會作用到 GDRAM,但是在完成后代碼沒有切換回基本指令,在主循環的下一次循環調用 LCD_PrintfASCII(),里面也沒有切換回基本指令的語句,而直接使用
  1. LCD_WriteCommand(0x80|addr);  //要寫入DDRAM的地址
復制代碼
代碼的本意是設置DDRAM,但是現在實際設置的是GDRAM,導致你所說的殘影,所以在實際屏幕上應該也是有殘影的。
而且進入繪圖模式的命令也不規范,根據芯片手冊,建議需要兩條指令,先 0x34 進入擴展指令,然后再 0x36 進入繪圖模式。

我的測試代碼中有兩個函數可以參考:
  1. //開啟擴展命令的繪圖指令
  2. void LCD_startGraphic(void)
  3. {
  4. #if LCD_INTERFACE == MODE_4BIT
  5. LCD_write_command(0x24); //擴展指令集
  6. LCD_write_command(0x26); //繪圖命令開啟
  7. #else
  8. LCD_write_command(0x34); //擴展指令集
  9. LCD_write_command(0x36); //繪圖命令開啟
  10. #endif
  11. }
  12. //結束擴展命令的繪圖指令(可選)
  13. void LCD_endGraphic(void)
  14. {
  15. #if LCD_INTERFACE == MODE_4BIT
  16. LCD_write_command(0x26); //繪圖命令關閉
  17. LCD_write_command(0x20); //回到基本指令
  18. #else
  19. LCD_write_command(0x36); //繪圖命令關閉
  20. LCD_write_command(0x30); //回到基本指令
  21. #endif
  22. }
復制代碼
建議在開始繪圖前使用 LCD_startGraphic() 進入繪圖模式,在繪圖完成后使用 LCD_endGraphic() 退出繪圖模式,避免錯誤。


此帖子中LCD_PrintfASCII()函數的存在是因為之前的仿真模型LCD12864A.DLL不支持ASCII,其使用全角數字代替半角數字,屬于取巧方法。
實際ST7920屏幕是支持ASCII的,所以在使用我的LCD12864B.DLL后,可以刪除此函數,直接LCD_PrintfStr()輸出ASCII即可,和實際硬件屏幕一致。

作者: 13487086265    時間: 2021-10-23 07:32
VSM model LCD12864B.DLL not found for 'L1'.GLE=0x00000002

作者: cdhigh    時間: 2021-10-25 00:27
13487086265 發表于 2021-10-23 07:32
VSM model LCD12864B.DLL not found for 'L1'.GLE=0x00000002

要不安裝vc2012運行庫,要不在github上下載最新版本,最新版本不需要運行庫
作者: lihainingt3    時間: 2021-11-2 09:09
本帖最后由 lihainingt3 于 2021-11-2 09:13 編輯

很好奇樓主是如何知道用戶可以自己制作模型的dll文件? 以及如何制作模型的dll文件? 是根據用戶手冊? 還是你提供的ProteusVSMSDK.pdf文件? 好像普通proteus使用者都不會涉及到這個問題,希望能夠指點一二,
最后感謝樓主的分享, 膜拜ing!!!
作者: lihainingt3    時間: 2021-11-2 09:32
很好奇樓主是如何知道用戶可以自己制作模型dll文件?  以及如何編譯制作模型dll文件? 好像普通用戶通常不必涉及這個問題, 是根據proteus的用戶幫助手冊? 還是樓主提供的ProteusVSMSDK.pdf文件? 希望樓主能夠提示一二。
最后感謝樓主的分享!!!,膜拜ing!!!
作者: cdhigh    時間: 2021-11-6 18:19
lihainingt3 發表于 2021-11-2 09:32
很好奇樓主是如何知道用戶可以自己制作模型dll文件?  以及如何編譯制作模型dll文件? 好像普通用戶通常不必 ...

開始搜索下載別人制作的st7920仿真,發現功能不全,但是至少知道可以自己制作非官方模型,然后再搜索如何制作,一步一步的仿照別人的例子和一些代碼片段就可以開始了。
一旦起步,剩下的就容易了,不停的碼代碼即可,有疑問就翻sdk文檔,還有疑問要不再搜索要不寫代碼嘗試。
一旦完整寫完一個模型,其他的就很容易了
作者: zbsc11    時間: 2021-12-20 11:40
感謝樓主分享文件,太有用了這個。
作者: songxia8013    時間: 2022-1-8 08:55
樓主能出個制作教程嗎,估計很多人都很想學習這個。
作者: songxia8013    時間: 2022-1-8 08:57
樓主,能制作個STC8H8K64U單片機的仿真模型嗎?
作者: by64214    時間: 2022-1-10 09:39
樓主能出個制作教程嗎,看了一些資料 還是不太明白
作者: cdhigh    時間: 2022-1-10 21:43
by64214 發表于 2022-1-10 09:39
樓主能出個制作教程嗎,看了一些資料 還是不太明白

Proteus的仿真模型有很多種,你希望是哪方面的呢?
具體一點,希望仿真哪個器件?
作者: 千江水    時間: 2022-2-17 20:18
我的上電后不顯示是啥問題呢
作者: 千江水    時間: 2022-2-17 20:24
你這LCD是不是不帶字庫的呢
作者: cdhigh    時間: 2022-2-18 16:46
帶字庫的,對于部分proteus版本,需要將lcd左上角移到坐標零點,一般為屏幕中心
作者: wo0105250030    時間: 2022-4-23 21:22
ab560 發表于 2021-10-1 18:00
謝謝樓主分享,為什么我仿真始終要報錯?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.
...

同樣的錯誤,不知道怎么處理,有知道的大神麻煩幫下忙
作者: heicad    時間: 2022-4-23 21:49
wo0105250030 發表于 2022-4-23 21:22
同樣的錯誤,不知道怎么處理,有知道的大神麻煩幫下忙

我剛開始也是這個錯誤,后來把樓主的LCD12864B.dll文件放到Proteus8.8的MODELS目錄里面去就ok了,如圖

51hei.gif (66.42 KB, 下載次數: 173)

51hei.gif

51hei.png (3.63 KB, 下載次數: 260)

51hei.png

作者: redgray    時間: 2022-4-25 23:41
您好,如圖,我設計了一個超聲波測距仿真沒問題,但一添加LCD12864B(沒做任何操作,只是添加了放那里)結果LCD自動通電了,原先的超聲波仿真就出問題,請問是什么情況

作者: ywd683    時間: 2022-7-2 07:16
這個是好東西,下載測試一下
作者: 新昌小徐    時間: 2022-7-2 15:23
樓主使用了好壓軟件制作壓縮包,RAR軟件是打不開的,好壓這軟件就是改了下較驗碼,使RAR等其它壓縮軟件因為數據較驗出錯而打不開。
作者: cdhigh    時間: 2022-7-3 07:18
新昌小徐 發表于 2022-7-2 15:23
樓主使用了好壓軟件制作壓縮包,RAR軟件是打不開的,好壓這軟件就是改了下較驗碼,使RAR等其它壓縮軟件因為 ...

沒有使用好壓,我的電腦中很難找到國內軟件(漢化不算)。
國內軟件大多數沒有底線,能不用就不用,除非找不到替代品。
如果你解壓不了,可能需要升級WinRAR,或7Zip
作者: Michael_xie    時間: 2022-7-20 14:13


作者: cdhigh    時間: 2022-7-20 18:35
Michael_xie 發表于 2022-7-20 14:13

首先到對應目錄看這個DLL是否存在?
如果DLL存在,可以安裝VC運行環境
作者: by64214    時間: 2022-8-21 10:06
謝謝樓主分享  現在可以仿真很多以前做不到的程序

1.png (17.66 KB, 下載次數: 138)

1.png

作者: zmc419    時間: 2022-9-4 15:59
水平真高
作者: ywd683    時間: 2022-9-12 06:31
這個是好東西,下載測試一下
作者: A==A    時間: 2022-11-14 18:44
proteus7用不了嗎
作者: wmx~    時間: 2023-4-18 13:32
cdhigh 發表于 2022-1-10 21:43
Proteus的仿真模型有很多種,你希望是哪方面的呢?
具體一點,希望仿真哪個器件?

您好,可以給我發一下lcd12864的dll文件嗎 我下載不來
謝謝
作者: andyhallo    時間: 2023-5-7 12:40
十分感謝樓主的無私分享 這個很有用 下載來試試 感謝!
作者: ChengBigdan    時間: 2023-5-21 16:19
Proteus8.15,AT89C52使用串行模式好像漢字會亂碼and亂飄
作者: kzj51    時間: 2023-12-7 17:45
大佬真厲害,太棒了 下來用用試試
作者: kzj51    時間: 2023-12-7 17:52
by64214 發表于 2022-8-21 10:06
謝謝樓主分享  現在可以仿真很多以前做不到的程序

你用的真好,我還不知道咋用,怎么使用它的元件?
作者: liqingyong    時間: 2023-12-26 16:28
heicad 發表于 2022-4-23 21:49
我剛開始也是這個錯誤,后來把樓主的LCD12864B.dll文件放到Proteus8.8的MODELS目錄里面去就ok了,如圖

高手謝謝分享
作者: bbxyliyang    時間: 2024-1-16 21:48
ab560 發表于 2021-10-1 18:00
謝謝樓主分享,為什么我仿真始終要報錯?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.
...

樓主,后來解決了嗎
作者: bbxyliyang    時間: 2024-1-16 21:48
by64214 發表于 2021-10-1 09:51
謝謝分享  現在可以任意位置,但是上部有殘影

External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.
我的咋提示這個錯誤
作者: YHSSS    時間: 2024-4-2 13:17
cdhigh 發表于 2021-10-1 00:59
繼續升級1.0.2,從芯片手冊PDF里面截圖進行0x20以下非標準字符進行取模。
現在0x20以下的ASCII也能正常顯 ...

太棒了

作者: 萬家燈火51    時間: 2024-8-15 14:31
CDHIGH您好!非常感謝您git上完善的12864B,非常好用。我在使用時碰到一個問題:keil c51,proteus,就是向它發送一個char字符時,它不會顯示,繼續發送第二個字符時,第一個字符和第二個字符才一起顯示出來。有什么辦法可以解決不呢?謝謝。 LCD12864B.rar (76.21 KB, 下載次數: 1)
作者: yechuan220    時間: 2024-9-5 16:58
謝謝分享,有沒有串行通迅的程序




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产在线1区 | 日韩在线视频免费观看 | 国产精品亚洲精品 | 国产精品欧美大片 | 免费视频一区 | 国产精品久久久久久久久免费 | 久久久91 | 国产欧美一级 | 国产精品欧美一区二区三区 | 亚洲精品黄色 | 色花av| 九九热这里只有精品6 | 免费观看色 | 99在线播放| 亚洲一区在线播放 | 精品欧美乱码久久久久久 | 亚洲精品乱码久久久久v最新版 | 日韩精品视频一区二区三区 | 欧美日韩视频在线第一区 | 国产精品久久久久久婷婷天堂 | 国产一区二区不卡 | 一区二区av | 亚洲天堂av网 | 国产激情视频在线免费观看 | 视频三区 | 综合久久综合久久 | 国产视频2021| 91一区二区| 一区二区在线不卡 | 午夜视频一区 | 亚洲一区二区三区免费在线观看 | 久久大 | 国产精品色 | 国产精品久久久久久久久久软件 | 亚洲激情一区二区 | 欧美舔穴 | 蜜桃av一区二区三区 | 黄色一级大片在线免费看产 | 一级片免费视频 | 欧美日韩综合 | 激情五月婷婷综合 |