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

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

QQ登錄

只需一步,快速開始

搜索
查看: 14277|回復(fù): 48
打印 上一主題 下一主題
收起左側(cè)

[原創(chuàng)]發(fā)布一個(gè)ST7920的LCD12864 Proteus仿真模型,支持串口和4bit模式通訊

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:67925 發(fā)表于 2021-9-29 23:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
網(wǎng)絡(luò)上已經(jīng)有了一個(gè)12864A(ST7920)仿真模型,但其功能非常有限,不支持4位并行接口,不支持串行接口,不支持ASCII字母和數(shù)字顯示,也不支持繪圖顯示,所以我就自己動(dòng)手,實(shí)現(xiàn)了此模型,并分享源代碼,方便有需要的朋友修改支持其他規(guī)格的器件,倉庫托管于 <https://github.com/cdhigh/lcd12864_st7920_proteus>










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

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏27 分享淘帖 頂4 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:262 發(fā)表于 2021-9-30 17:52 | 只看該作者
這個(gè)是好東西,下載測試一下,看來可以替換掉用了很久LCD12864a.DLL了
回復(fù)

使用道具 舉報(bào)

板凳
ID:67925 發(fā)表于 2021-9-30 21:18 | 只看該作者
升級(jí)為1.0.1,修正了4bit模式下回讀ST7920數(shù)據(jù)錯(cuò)誤的問題。
如果不使用4bit讀,則原來的版本沒問題。

LCD12864B_DLL_1.0.1.rar

189.91 KB, 下載次數(shù): 49, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

地板
ID:67925 發(fā)表于 2021-10-1 00:59 | 只看該作者
繼續(xù)升級(jí)1.0.2,從芯片手冊(cè)PDF里面截圖進(jìn)行0x20以下非標(biāo)準(zhǔn)字符進(jìn)行取模。
現(xiàn)在0x20以下的ASCII也能正常顯示。

LCD12864B_DLL_1.0.2.rar

189.8 KB, 下載次數(shù): 124, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

5#
ID:44037 發(fā)表于 2021-10-1 09:51 | 只看該作者
謝謝分享  現(xiàn)在可以任意位置,但是上部有殘影

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

1.png
回復(fù)

使用道具 舉報(bào)

6#
ID:610681 發(fā)表于 2021-10-1 16:00 | 只看該作者
感謝分享,好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

7#
ID:7503 發(fā)表于 2021-10-1 18:00 | 只看該作者
謝謝樓主分享,為什么我仿真始終要報(bào)錯(cuò)?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.

回復(fù)

使用道具 舉報(bào)

8#
ID:67925 發(fā)表于 2021-10-1 21:20 | 只看該作者
本帖最后由 cdhigh 于 2021-10-3 03:17 編輯
by64214 發(fā)表于 2021-10-1 09:51
謝謝分享  現(xiàn)在可以任意位置,但是上部有殘影

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

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

使用道具 舉報(bào)

9#
ID:67925 發(fā)表于 2021-10-1 21:28 | 只看該作者
by64214 發(fā)表于 2021-10-1 09:51
謝謝分享  現(xiàn)在可以任意位置,但是上部有殘影

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

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

    //清GDRAM,12864僅用了一半的GDRAM,清一半即可
    //如果沒有使用到繪圖GDRAM,也可以不清GDRAM,省點(diǎn)時(shí)間和代碼空間
    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);
}
回復(fù)

使用道具 舉報(bào)

10#
ID:67925 發(fā)表于 2021-10-1 22:56 | 只看該作者
ab560 發(fā)表于 2021-10-1 18:00
謝謝樓主分享,為什么我仿真始終要報(bào)錯(cuò)?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.
...

如果你確認(rèn)放的目錄沒錯(cuò)的話,嘗試下載并安裝 VC2010運(yùn)行庫?
不是 VS2010開發(fā)環(huán)境,是 大約10M左右的運(yùn)行庫。
回復(fù)

使用道具 舉報(bào)

11#
ID:7503 發(fā)表于 2021-10-2 14:23 | 只看該作者
安裝云更新庫后仿真正常了,謝謝!
回復(fù)

使用道具 舉報(bào)

12#
ID:67925 發(fā)表于 2021-10-2 21:29 | 只看該作者
ab560 發(fā)表于 2021-10-2 14:23
安裝云更新庫后仿真正常了,謝謝!

之前沒注意,下次編譯一個(gè)不需要運(yùn)行庫的版本。
回復(fù)

使用道具 舉報(bào)

13#
ID:67925 發(fā)表于 2021-10-3 07:35 | 只看該作者
by64214 發(fā)表于 2021-10-1 09:51
謝謝分享  現(xiàn)在可以任意位置,但是上部有殘影

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

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


此帖子中LCD_PrintfASCII()函數(shù)的存在是因?yàn)橹暗姆抡婺P蚅CD12864A.DLL不支持ASCII,其使用全角數(shù)字代替半角數(shù)字,屬于取巧方法。
實(shí)際ST7920屏幕是支持ASCII的,所以在使用我的LCD12864B.DLL后,可以刪除此函數(shù),直接LCD_PrintfStr()輸出ASCII即可,和實(shí)際硬件屏幕一致。
回復(fù)

使用道具 舉報(bào)

14#
ID:701852 發(fā)表于 2021-10-23 07:32 | 只看該作者
VSM model LCD12864B.DLL not found for 'L1'.GLE=0x00000002
回復(fù)

使用道具 舉報(bào)

15#
ID:67925 發(fā)表于 2021-10-25 00:27 來自手機(jī) | 只看該作者
13487086265 發(fā)表于 2021-10-23 07:32
VSM model LCD12864B.DLL not found for 'L1'.GLE=0x00000002

要不安裝vc2012運(yùn)行庫,要不在github上下載最新版本,最新版本不需要運(yùn)行庫
回復(fù)

使用道具 舉報(bào)

16#
ID:475655 發(fā)表于 2021-11-2 09:09 | 只看該作者
本帖最后由 lihainingt3 于 2021-11-2 09:13 編輯

很好奇樓主是如何知道用戶可以自己制作模型的dll文件? 以及如何制作模型的dll文件? 是根據(jù)用戶手冊(cè)? 還是你提供的ProteusVSMSDK.pdf文件? 好像普通proteus使用者都不會(huì)涉及到這個(gè)問題,希望能夠指點(diǎn)一二,
最后感謝樓主的分享, 膜拜ing!!!
回復(fù)

使用道具 舉報(bào)

17#
ID:475655 發(fā)表于 2021-11-2 09:32 | 只看該作者
很好奇樓主是如何知道用戶可以自己制作模型dll文件?  以及如何編譯制作模型dll文件? 好像普通用戶通常不必涉及這個(gè)問題, 是根據(jù)proteus的用戶幫助手冊(cè)? 還是樓主提供的ProteusVSMSDK.pdf文件? 希望樓主能夠提示一二。
最后感謝樓主的分享!!!,膜拜ing!!!
回復(fù)

使用道具 舉報(bào)

18#
ID:67925 發(fā)表于 2021-11-6 18:19 來自手機(jī) | 只看該作者
lihainingt3 發(fā)表于 2021-11-2 09:32
很好奇樓主是如何知道用戶可以自己制作模型dll文件?  以及如何編譯制作模型dll文件? 好像普通用戶通常不必 ...

開始搜索下載別人制作的st7920仿真,發(fā)現(xiàn)功能不全,但是至少知道可以自己制作非官方模型,然后再搜索如何制作,一步一步的仿照別人的例子和一些代碼片段就可以開始了。
一旦起步,剩下的就容易了,不停的碼代碼即可,有疑問就翻sdk文檔,還有疑問要不再搜索要不寫代碼嘗試。
一旦完整寫完一個(gè)模型,其他的就很容易了
回復(fù)

使用道具 舉報(bào)

19#
ID:994589 發(fā)表于 2021-12-20 11:40 來自手機(jī) | 只看該作者
感謝樓主分享文件,太有用了這個(gè)。
回復(fù)

使用道具 舉報(bào)

20#
ID:102963 發(fā)表于 2022-1-8 08:55 | 只看該作者
樓主能出個(gè)制作教程嗎,估計(jì)很多人都很想學(xué)習(xí)這個(gè)。
回復(fù)

使用道具 舉報(bào)

21#
ID:102963 發(fā)表于 2022-1-8 08:57 | 只看該作者
樓主,能制作個(gè)STC8H8K64U單片機(jī)的仿真模型嗎?
回復(fù)

使用道具 舉報(bào)

22#
ID:44037 發(fā)表于 2022-1-10 09:39 | 只看該作者
樓主能出個(gè)制作教程嗎,看了一些資料 還是不太明白
回復(fù)

使用道具 舉報(bào)

23#
ID:67925 發(fā)表于 2022-1-10 21:43 來自手機(jī) | 只看該作者
by64214 發(fā)表于 2022-1-10 09:39
樓主能出個(gè)制作教程嗎,看了一些資料 還是不太明白

Proteus的仿真模型有很多種,你希望是哪方面的呢?
具體一點(diǎn),希望仿真哪個(gè)器件?
回復(fù)

使用道具 舉報(bào)

24#
ID:576900 發(fā)表于 2022-2-17 20:18 | 只看該作者
我的上電后不顯示是啥問題呢
回復(fù)

使用道具 舉報(bào)

25#
ID:576900 發(fā)表于 2022-2-17 20:24 | 只看該作者
你這LCD是不是不帶字庫的呢
回復(fù)

使用道具 舉報(bào)

26#
ID:67925 發(fā)表于 2022-2-18 16:46 來自手機(jī) | 只看該作者
帶字庫的,對(duì)于部分proteus版本,需要將lcd左上角移到坐標(biāo)零點(diǎn),一般為屏幕中心
回復(fù)

使用道具 舉報(bào)

27#
ID:789905 發(fā)表于 2022-4-23 21:22 | 只看該作者
ab560 發(fā)表于 2021-10-1 18:00
謝謝樓主分享,為什么我仿真始終要報(bào)錯(cuò)?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.
...

同樣的錯(cuò)誤,不知道怎么處理,有知道的大神麻煩幫下忙
回復(fù)

使用道具 舉報(bào)

28#
ID:262 發(fā)表于 2022-4-23 21:49 | 只看該作者
wo0105250030 發(fā)表于 2022-4-23 21:22
同樣的錯(cuò)誤,不知道怎么處理,有知道的大神麻煩幫下忙

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

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

51hei.gif

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

51hei.png
回復(fù)

使用道具 舉報(bào)

29#
ID:1010880 發(fā)表于 2022-4-25 23:41 | 只看該作者
您好,如圖,我設(shè)計(jì)了一個(gè)超聲波測距仿真沒問題,但一添加LCD12864B(沒做任何操作,只是添加了放那里)結(jié)果LCD自動(dòng)通電了,原先的超聲波仿真就出問題,請(qǐng)問是什么情況
回復(fù)

使用道具 舉報(bào)

30#
ID:32627 發(fā)表于 2022-7-2 07:16 | 只看該作者
這個(gè)是好東西,下載測試一下
回復(fù)

使用道具 舉報(bào)

31#
ID:496636 發(fā)表于 2022-7-2 15:23 | 只看該作者
樓主使用了好壓軟件制作壓縮包,RAR軟件是打不開的,好壓這軟件就是改了下較驗(yàn)碼,使RAR等其它壓縮軟件因?yàn)閿?shù)據(jù)較驗(yàn)出錯(cuò)而打不開。
回復(fù)

使用道具 舉報(bào)

32#
ID:67925 發(fā)表于 2022-7-3 07:18 來自手機(jī) | 只看該作者
新昌小徐 發(fā)表于 2022-7-2 15:23
樓主使用了好壓軟件制作壓縮包,RAR軟件是打不開的,好壓這軟件就是改了下較驗(yàn)碼,使RAR等其它壓縮軟件因?yàn)?...

沒有使用好壓,我的電腦中很難找到國內(nèi)軟件(漢化不算)。
國內(nèi)軟件大多數(shù)沒有底線,能不用就不用,除非找不到替代品。
如果你解壓不了,可能需要升級(jí)WinRAR,或7Zip
回復(fù)

使用道具 舉報(bào)

33#
ID:543845 發(fā)表于 2022-7-20 14:13 | 只看該作者

回復(fù)

使用道具 舉報(bào)

34#
ID:67925 發(fā)表于 2022-7-20 18:35 來自手機(jī) | 只看該作者
Michael_xie 發(fā)表于 2022-7-20 14:13

首先到對(duì)應(yīng)目錄看這個(gè)DLL是否存在?
如果DLL存在,可以安裝VC運(yùn)行環(huán)境
回復(fù)

使用道具 舉報(bào)

35#
ID:44037 發(fā)表于 2022-8-21 10:06 | 只看該作者
謝謝樓主分享  現(xiàn)在可以仿真很多以前做不到的程序

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

1.png
回復(fù)

使用道具 舉報(bào)

36#
ID:137736 發(fā)表于 2022-9-4 15:59 | 只看該作者
水平真高
回復(fù)

使用道具 舉報(bào)

37#
ID:32627 發(fā)表于 2022-9-12 06:31 | 只看該作者
這個(gè)是好東西,下載測試一下
回復(fù)

使用道具 舉報(bào)

38#
ID:1051956 發(fā)表于 2022-11-14 18:44 | 只看該作者
proteus7用不了嗎
回復(fù)

使用道具 舉報(bào)

39#
ID:1072453 發(fā)表于 2023-4-18 13:32 | 只看該作者
cdhigh 發(fā)表于 2022-1-10 21:43
Proteus的仿真模型有很多種,你希望是哪方面的呢?
具體一點(diǎn),希望仿真哪個(gè)器件?

您好,可以給我發(fā)一下lcd12864的dll文件嗎 我下載不來
謝謝
回復(fù)

使用道具 舉報(bào)

40#
ID:405840 發(fā)表于 2023-5-7 12:40 | 只看該作者
十分感謝樓主的無私分享 這個(gè)很有用 下載來試試 感謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品一区 | 欧美日本韩国一区二区 | 特级一级黄色片 | 一级黄色生活视频 | 国产一区二区三区免费观看视频 | www精品美女久久久tv | av性色 | www日日日 | 成人免费av | 精品福利视频一区二区三区 | 欧美多人在线 | 亚洲不卡在线观看 | 激情欧美日韩一区二区 | 亚洲天天干 | 国产欧美二区 | 亚洲视频精品在线 | 国产精品久久国产精品 | 精品视频免费 | 99亚洲精品 | 91久久久久久 | 99精品视频免费观看 | 国精久久 | 天天操夜夜爽 | 天天拍天天插 | 一区二区在线 | 中文字幕一区二区三区四区 | 狠狠草视频 | 久久国产精品一区二区三区 | 欧美精品久久一区 | 日韩一区二区在线视频 | 欧美aⅴ | 免费国产网站 | 国产婷婷色一区二区三区 | 成人午夜激情 | 日韩av在线免费 | 天天综合网天天综合色 | 99精品视频在线 | 黄色网址av| 欧美激情精品久久久久久 | av黄色网 | 精品国产一区二区三区久久 |