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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4541|回復: 11
打印 上一主題 下一主題
收起左側

關于proteus仿真失敗——很簡單,你肯定會

[復制鏈接]
跳轉到指定樓層
樓主
學校里設計做了一個單詞記憶測試器
我是現在單片機上實現的,然后再做仿真
然后神奇的事來了,同一個hex單片機上可以實現的仿真里實現不了。




更離譜的是我有一個室友用匯編寫的編譯了hex可以仿真,弄了幾天真的很心累。


各位說說可能的原因,我自己也嘗試了很多了,再看看大伙兒的想法。


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

使用道具 舉報

沙發
ID:342822 發表于 2021-12-6 15:17 | 只看該作者
看了兩個圖區別是不同的文件夾
回復

使用道具 舉報

板凳
ID:102963 發表于 2021-12-6 16:48 | 只看該作者
可能都原因:你的1602驅動程序有問題
回復

使用道具 舉報

地板
ID:161164 發表于 2021-12-6 17:58 | 只看該作者
你不貼代我只能亂猜
請把Readdata和WriteData函數中的CheckBusy注釋掉
回復

使用道具 舉報

5#
ID:96682 發表于 2021-12-7 06:34 來自觸屏版 | 只看該作者
應該是放錯程序了吧
回復

使用道具 舉報

6#
ID:420836 發表于 2021-12-7 09:08 | 只看該作者
有沒有可能是芯片配置不正確? 還是單片機的機器頻率設置不正確?
回復

使用道具 舉報

7#
ID:988502 發表于 2021-12-7 12:46 | 只看該作者
songxia8013 發表于 2021-12-6 16:48
可能都原因:你的1602驅動程序有問題

是的,我對著網上一個驅動改了就行,正在詳細看
回復

使用道具 舉報

8#
ID:401564 發表于 2021-12-7 13:25 | 只看該作者
逛這個論壇三年,我一直很慶幸,我到現在還不會用proteus仿真
回復

使用道具 舉報

9#
ID:624769 發表于 2021-12-7 13:44 | 只看該作者
Y_G_G 發表于 2021-12-7 13:25
逛這個論壇三年,我一直很慶幸,我到現在還不會用proteus仿真

我也不會,同喜同喜。
回復

使用道具 舉報

10#
ID:988502 發表于 2021-12-7 17:07 | 只看該作者
有一下幾種驅動;
忙檢測的:

第一種:r  單片機可以仿真不行;
#include <reg52.h>
...
void Busy()
{
                P0= 0xFF;//必要的否則會干擾讀寫信號
                RW=1;
                RS=0;
                EN=1;
                while(P0 & 0x80);
                EN=0;       
}
第二種:源代碼中的:單片機可以仿真不行。
#include <AT89X52.h>
...
void LCD1602_busy(void)
{
     P0_7=1;              //將P0.7置1,為讀狀態做準備
     RS=0;                //RS=0、RW=1、E=1時,忙信號輸出到DB7,由P0.7讀入
     RW=1;                //RS=0、RW=1、E=1時,忙信號輸出到DB7,由P0.7讀入
     E=1;                 //RS=0、RW=1、E=1時,忙信號輸出到DB7,由P0.7讀入
     while(P0_7==1);      //由P0.7讀入1,表示1602液晶忙,需要等待
     E=0;                 //讀完以后,恢復E的電平
}


第三種:也是唯一成功的,讀入忙信號后不將while循環放在忙檢測函數中,這似乎也是影響到仿真的因素,while循環是否在忙檢測函數內部。
//BUSY   CHECK
bit test()
{
        bit busy;
        RS=0;
        RW=1;
        EN=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        busy=BF;
        EN=0;
        return busy;
}
我要頂不住了兄弟們
回復

使用道具 舉報

11#
ID:989630 發表于 2021-12-8 15:35 | 只看該作者
你把排阻連接到lcd1602上看看
回復

使用道具 舉報

12#
ID:988502 發表于 2021-12-10 12:14 | 只看該作者
ccyyer 發表于 2021-12-7 17:07
有一下幾種驅動;
忙檢測的:

第一種:r  單片機可以,仿真不行;
#include <reg52.h>
...
void Busy()
{
···
}

第二種:源代碼中的:單片機可以仿真不行。
#include <AT89X52.h>
...
void LCD1602_busy(void)
{
···
}

以上兩種不能仿真是因為在驅動忙檢測里在對P0口賦值后馬上忙檢測,此時檢測的還是對P0賦值的1,所以一直為忙,只有在while忙檢測之前加一段延時就行。
例如這樣。
void Busy()
{
                P0= 0xFF;//必要的否則會干擾讀寫信號
                delay_nms(5);
                RW=1;
                RS=0;
                EN=1;
                while(P0 & 0x80);
                EN=0;       
}

為了驗證這一猜想,我將P0賦值為0F,果然此時仿真有顯示了。然而實際單片機則顯示錯誤。
這說明硬件與軟件在數據讀取速度上的不同,影響了實現。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本欧美国产在线 | 91亚洲精选 | 91亚洲国产| 91av在线免费看 | 成年人免费网站 | 亚洲一区二区中文字幕在线观看 | 日本电影韩国电影免费观看 | 国产伦一区二区三区久久 | 99热精品6 | 超碰97在线免费 | 免费在线观看一区二区三区 | av毛片免费 | 精品国产一区二区国模嫣然 | 中文在线a在线 | 91视频大全 | 亚洲国产精品久久久久秋霞不卡 | 国产高清在线精品一区二区三区 | 先锋资源吧 | 久久99精品久久久水蜜桃 | 国产视频久久久久 | 亚洲区一区二区 | 日韩久久精品 | ww亚洲ww亚在线观看 | 国产婷婷综合 | 午夜精品一区二区三区免费视频 | 日日骚视频 | 玖玖爱365| 中文字幕在线欧美 | 国产精品久久 | 日韩欧美视频 | 久久久精品一区二区 | 亚洲福利在线视频 | 久久久www成人免费精品 | 久久综合香蕉 | 久久久久国产精品一区 | 久久综合激情 | aaaaa毛片 | 亚洲欧美中文字幕 | 精品国产欧美一区二区三区成人 | 91视频一88av | 99久久婷婷国产综合精品电影 |