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

標(biāo)題: [原創(chuàng)]發(fā)布一個(gè)ST7920的LCD12864 Proteus仿真模型,支持串口和4bit模式通訊 [打印本頁(yè)]

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










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


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

LCD12864B_DLL_1.0.1.rar

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


作者: cdhigh    時(shí)間: 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


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

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

1.png

作者: 來(lái)51學(xué)習(xí)的    時(shí)間: 2021-10-1 16:00
感謝分享,好資料,51黑有你更精彩!!!
作者: ab560    時(shí)間: 2021-10-1 18:00
謝謝樓主分享,為什么我仿真始終要報(bào)錯(cuò)?External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.


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

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

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

作者: cdhigh    時(shí)間: 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);
}
作者: cdhigh    時(shí)間: 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)行庫(kù)?
不是 VS2010開發(fā)環(huán)境,是 大約10M左右的運(yùn)行庫(kù)。
作者: ab560    時(shí)間: 2021-10-2 14:23
安裝云更新庫(kù)后仿真正常了,謝謝!
作者: cdhigh    時(shí)間: 2021-10-2 21:29
ab560 發(fā)表于 2021-10-2 14:23
安裝云更新庫(kù)后仿真正常了,謝謝!

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

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

我的測(cè)試代碼中有兩個(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í)際硬件屏幕一致。

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

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

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

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

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

Proteus的仿真模型有很多種,你希望是哪方面的呢?
具體一點(diǎn),希望仿真哪個(gè)器件?
作者: 千江水    時(shí)間: 2022-2-17 20:18
我的上電后不顯示是啥問題呢
作者: 千江水    時(shí)間: 2022-2-17 20:24
你這LCD是不是不帶字庫(kù)的呢
作者: cdhigh    時(shí)間: 2022-2-18 16:46
帶字庫(kù)的,對(duì)于部分proteus版本,需要將lcd左上角移到坐標(biāo)零點(diǎn),一般為屏幕中心
作者: wo0105250030    時(shí)間: 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ò)誤,不知道怎么處理,有知道的大神麻煩幫下忙
作者: heicad    時(shí)間: 2022-4-23 21:49
wo0105250030 發(fā)表于 2022-4-23 21:22
同樣的錯(cuò)誤,不知道怎么處理,有知道的大神麻煩幫下忙

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

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

51hei.gif

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

51hei.png

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

作者: ywd683    時(shí)間: 2022-7-2 07:16
這個(gè)是好東西,下載測(cè)試一下
作者: 新昌小徐    時(shí)間: 2022-7-2 15:23
樓主使用了好壓軟件制作壓縮包,RAR軟件是打不開的,好壓這軟件就是改了下較驗(yàn)碼,使RAR等其它壓縮軟件因?yàn)閿?shù)據(jù)較驗(yàn)出錯(cuò)而打不開。
作者: cdhigh    時(shí)間: 2022-7-3 07:18
新昌小徐 發(fā)表于 2022-7-2 15:23
樓主使用了好壓軟件制作壓縮包,RAR軟件是打不開的,好壓這軟件就是改了下較驗(yàn)碼,使RAR等其它壓縮軟件因?yàn)?...

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


作者: cdhigh    時(shí)間: 2022-7-20 18:35
Michael_xie 發(fā)表于 2022-7-20 14:13

首先到對(duì)應(yīng)目錄看這個(gè)DLL是否存在?
如果DLL存在,可以安裝VC運(yùn)行環(huán)境
作者: by64214    時(shí)間: 2022-8-21 10:06
謝謝樓主分享  現(xiàn)在可以仿真很多以前做不到的程序

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

1.png

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

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

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

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

樓主,后來(lái)解決了嗎
作者: bbxyliyang    時(shí)間: 2024-1-16 21:48
by64214 發(fā)表于 2021-10-1 09:51
謝謝分享  現(xiàn)在可以任意位置,但是上部有殘影

External model DLL "LCD12864B.DLL" not found. GLE=0x0000007E.
我的咋提示這個(gè)錯(cuò)誤
作者: YHSSS    時(shí)間: 2024-4-2 13:17
cdhigh 發(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也能正常顯 ...

太棒了

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




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲精品一区二三区 | 99精品久久久久久中文字幕 | 拍床戏真做h文黄肉1v1 | 五月天久久久 | 国产黄色免费 | 岛国免费av | 日本在线中文 | 成年人国产 | 一区二区影院 | 日韩中文av | 中文在线观看免费网站 | 日韩黄色在线 | 中文字幕免费看 | 免费看黄色小视频 | www视频在线观看网站 | 美日韩丰满少妇在线观看 | 久草视频免费在线观看 | av福利在线观看 | 超碰av在线 | 欧美精品一二三区 | 少妇高潮毛片 | 中文字幕在线免费观看 | av一区二区三区四区 | 免费在线黄色网址 | 国产成人一区二区三区 | 成人毛片在线观看 | 欧美在线视频观看 | 99久久久国产精品 | 一区二区三区精品 | 欧美精品二区三区四区免费看视频 | 亚洲激情五月 | 国模无码大尺度一区二区三区 | 国产精品区二区三区日本 | 国产午夜在线 | 一区二区三区免费在线观看 | 日韩久久网 | 一区二区国产在线 | 国产一级一片免费播放放a 国产黄色大片 | 国产精品久久午夜夜伦鲁鲁 | 日韩精品一区二区三区免费视频 | 国产一级二级三级 |