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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15028|回復(fù): 48
收起左側(cè)

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

  [復(fù)制鏈接]
ID:67925 發(fā)表于 2021-9-29 23:43 | 顯示全部樓層 |閱讀模式
網(wǎng)絡(luò)上已經(jīng)有了一個12864A(ST7920)仿真模型,但其功能非常有限,不支持4位并行接口,不支持串行接口,不支持ASCII字母和數(shù)字顯示,也不支持繪圖顯示,所以我就自己動手,實現(xiàn)了此模型,并分享源代碼,方便有需要的朋友修改支持其他規(guī)格的器件,倉庫托管于 <https://github.com/cdhigh/lcd12864_st7920_proteus>
scr1.png

scr2.png

scr3.png

scrShoot.gif

51hei.png

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

評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:262 發(fā)表于 2021-9-30 17:52 | 顯示全部樓層
這個是好東西,下載測試一下,看來可以替換掉用了很久LCD12864a.DLL了
回復(fù)

使用道具 舉報

ID:67925 發(fā)表于 2021-9-30 21:18 | 顯示全部樓層
升級為1.0.1,修正了4bit模式下回讀ST7920數(shù)據(jù)錯誤的問題。
如果不使用4bit讀,則原來的版本沒問題。

LCD12864B_DLL_1.0.1.rar

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

回復(fù)

使用道具 舉報

ID:67925 發(fā)表于 2021-10-1 00:59 | 顯示全部樓層
繼續(xù)升級1.0.2,從芯片手冊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ù)

使用道具 舉報

ID:44037 發(fā)表于 2021-10-1 09:51 | 顯示全部樓層
謝謝分享  現(xiàn)在可以任意位置,但是上部有殘影
1.png
回復(fù)

使用道具 舉報

ID:610681 發(fā)表于 2021-10-1 16:00 | 顯示全部樓層
感謝分享,好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報

ID:7503 發(fā)表于 2021-10-1 18:00 | 顯示全部樓層
謝謝樓主分享,為什么我仿真始終要報錯?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E. 5)_D@4[]4ZCAIZ_5]I1)C.png

回復(fù)

使用道具 舉報

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

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

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

使用道具 舉報

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,省點時間和代碼空間
    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ù)

使用道具 舉報

ID:67925 發(fā)表于 2021-10-1 22:56 | 顯示全部樓層
ab560 發(fā)表于 2021-10-1 18:00
謝謝樓主分享,為什么我仿真始終要報錯?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.
...

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

使用道具 舉報

ID:7503 發(fā)表于 2021-10-2 14:23 | 顯示全部樓層
安裝云更新庫后仿真正常了,謝謝!
回復(fù)

使用道具 舉報

ID:67925 發(fā)表于 2021-10-2 21:29 | 顯示全部樓層
ab560 發(fā)表于 2021-10-2 14:23
安裝云更新庫后仿真正常了,謝謝!

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

使用道具 舉報

ID:67925 發(fā)表于 2021-10-3 07:35 | 顯示全部樓層
by64214 發(fā)表于 2021-10-1 09:51
謝謝分享  現(xiàn)在可以任意位置,但是上部有殘影

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

我的測試代碼中有兩個函數(shù)可以參考:
  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. //結(jié)束擴展命令的繪圖指令(可選)
  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() 退出繪圖模式,避免錯誤。


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

使用道具 舉報

ID:701852 發(fā)表于 2021-10-23 07:32 | 顯示全部樓層
VSM model LCD12864B.DLL not found for 'L1'.GLE=0x00000002
回復(fù)

使用道具 舉報

ID:67925 發(fā)表于 2021-10-25 00:27 來自觸屏版 | 顯示全部樓層
13487086265 發(fā)表于 2021-10-23 07:32
VSM model LCD12864B.DLL not found for 'L1'.GLE=0x00000002

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

使用道具 舉報

ID:475655 發(fā)表于 2021-11-2 09:09 | 顯示全部樓層
本帖最后由 lihainingt3 于 2021-11-2 09:13 編輯

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

使用道具 舉報

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

使用道具 舉報

ID:67925 發(fā)表于 2021-11-6 18:19 來自觸屏版 | 顯示全部樓層
lihainingt3 發(fā)表于 2021-11-2 09:32
很好奇樓主是如何知道用戶可以自己制作模型dll文件?  以及如何編譯制作模型dll文件? 好像普通用戶通常不必 ...

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

使用道具 舉報

ID:994589 發(fā)表于 2021-12-20 11:40 來自觸屏版 | 顯示全部樓層
感謝樓主分享文件,太有用了這個。
回復(fù)

使用道具 舉報

ID:102963 發(fā)表于 2022-1-8 08:55 | 顯示全部樓層
樓主能出個制作教程嗎,估計很多人都很想學(xué)習(xí)這個。
回復(fù)

使用道具 舉報

ID:102963 發(fā)表于 2022-1-8 08:57 | 顯示全部樓層
樓主,能制作個STC8H8K64U單片機的仿真模型嗎?
回復(fù)

使用道具 舉報

ID:44037 發(fā)表于 2022-1-10 09:39 | 顯示全部樓層
樓主能出個制作教程嗎,看了一些資料 還是不太明白
回復(fù)

使用道具 舉報

ID:67925 發(fā)表于 2022-1-10 21:43 來自觸屏版 | 顯示全部樓層
by64214 發(fā)表于 2022-1-10 09:39
樓主能出個制作教程嗎,看了一些資料 還是不太明白

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

使用道具 舉報

ID:576900 發(fā)表于 2022-2-17 20:18 | 顯示全部樓層
我的上電后不顯示是啥問題呢
回復(fù)

使用道具 舉報

ID:576900 發(fā)表于 2022-2-17 20:24 | 顯示全部樓層
你這LCD是不是不帶字庫的呢
回復(fù)

使用道具 舉報

ID:67925 發(fā)表于 2022-2-18 16:46 來自觸屏版 | 顯示全部樓層
帶字庫的,對于部分proteus版本,需要將lcd左上角移到坐標(biāo)零點,一般為屏幕中心
回復(fù)

使用道具 舉報

ID:789905 發(fā)表于 2022-4-23 21:22 | 顯示全部樓層
ab560 發(fā)表于 2021-10-1 18:00
謝謝樓主分享,為什么我仿真始終要報錯?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.
...

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

使用道具 舉報

ID:262 發(fā)表于 2022-4-23 21:49 | 顯示全部樓層
wo0105250030 發(fā)表于 2022-4-23 21:22
同樣的錯誤,不知道怎么處理,有知道的大神麻煩幫下忙

我剛開始也是這個錯誤,后來把樓主的LCD12864B.dll文件放到Proteus8.8的MODELS目錄里面去就ok了,如圖
51hei.gif
51hei.png
回復(fù)

使用道具 舉報

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

使用道具 舉報

ID:32627 發(fā)表于 2022-7-2 07:16 | 顯示全部樓層
這個是好東西,下載測試一下
回復(fù)

使用道具 舉報

ID:496636 發(fā)表于 2022-7-2 15:23 | 顯示全部樓層
樓主使用了好壓軟件制作壓縮包,RAR軟件是打不開的,好壓這軟件就是改了下較驗碼,使RAR等其它壓縮軟件因為數(shù)據(jù)較驗出錯而打不開。
回復(fù)

使用道具 舉報

ID:67925 發(fā)表于 2022-7-3 07:18 來自觸屏版 | 顯示全部樓層
新昌小徐 發(fā)表于 2022-7-2 15:23
樓主使用了好壓軟件制作壓縮包,RAR軟件是打不開的,好壓這軟件就是改了下較驗碼,使RAR等其它壓縮軟件因為 ...

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

使用道具 舉報

ID:543845 發(fā)表于 2022-7-20 14:13 | 顯示全部樓層
1.png
回復(fù)

使用道具 舉報

ID:67925 發(fā)表于 2022-7-20 18:35 來自觸屏版 | 顯示全部樓層
Michael_xie 發(fā)表于 2022-7-20 14:13

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

使用道具 舉報

ID:44037 發(fā)表于 2022-8-21 10:06 | 顯示全部樓層
謝謝樓主分享  現(xiàn)在可以仿真很多以前做不到的程序
1.png
回復(fù)

使用道具 舉報

ID:137736 發(fā)表于 2022-9-4 15:59 | 顯示全部樓層
水平真高
回復(fù)

使用道具 舉報

ID:32627 發(fā)表于 2022-9-12 06:31 | 顯示全部樓層
這個是好東西,下載測試一下
回復(fù)

使用道具 舉報

ID:1051956 發(fā)表于 2022-11-14 18:44 | 顯示全部樓層
proteus7用不了嗎
回復(fù)

使用道具 舉報

ID:1072453 發(fā)表于 2023-4-18 13:32 | 顯示全部樓層
cdhigh 發(fā)表于 2022-1-10 21:43
Proteus的仿真模型有很多種,你希望是哪方面的呢?
具體一點,希望仿真哪個器件?

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

使用道具 舉報

ID:405840 發(fā)表于 2023-5-7 12:40 | 顯示全部樓層
十分感謝樓主的無私分享 這個很有用 下載來試試 感謝!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 夜夜操天天干 | 亚洲精品免费看 | 亚洲精品一区二区三区在线 | 日本一区二区三区四区 | 国产精品欧美一区二区 | 精品国产乱码久久久 | 一区二区免费在线 | 岛国毛片 | 国产精品视频一二三区 | 成人精品一区二区三区四区 | 一级欧美日韩 | 日韩免费1区二区电影 | 久久久91 | 天天操欧美 | 国产乱码精品一区二区三区中文 | 午夜天堂精品久久久久 | 91爱爱·com| 国产精品jizz在线观看老狼 | 日韩欧美一区二区三区 | 亚洲看片网站 | av黄色在线观看 | 久久人人爽人人爽人人片av免费 | 夜夜骚| 免费一级欧美在线观看视频 | 伦理二区 | 久久国产成人 | 国产精品久久久久久久久 | 欧美激情精品久久久久久变态 | 日韩欧美成人一区二区三区 | 蜜桃在线一区二区三区 | 欧美福利网站 | 一级欧美一级日韩片 | 久久久久免费精品国产 | 日本久久久久久 | 国产成人短视频在线观看 | 国产毛片毛片 | 在线色网站 | 99精品欧美一区二区三区 | 欧美成人激情 | 国产日韩一区二区 | 国产精品久久久久久久久久久新郎 |