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

QQ登錄

只需一步,快速開始

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

全球首發(fā),全世界第一個(gè)Proteus仿真stm32f103之實(shí)現(xiàn)IIC(IO模擬)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
全球首發(fā),全世界第一個(gè)Proteus仿真stm32f103之實(shí)現(xiàn)IIC(IO模擬)實(shí)驗(yàn)現(xiàn)象:
        本實(shí)驗(yàn)通過KEY02按鍵來控制24C02的寫入“hello”,通過另外一個(gè)按鍵KEY01來控制24C02的讀取"hello"。
        顯示相關(guān)信息。同時(shí),我們可以通過USMART控制在24C02的任意地址寫入和讀取數(shù)據(jù)。

注意:1.軟件使用的是proteu8.8 修復(fù)了部分bug,包括之前的定時(shí)器bug
2."hello"的16進(jìn)制為“68 65 6c 6c 6f”如圖中所示
3.菜單 Debug 可調(diào)出IIC調(diào)試器
4.使用的IO模擬實(shí)現(xiàn)IIC

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)




單片機(jī)源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "key.h"
  6. #include "lcd.h"
  7. #include "usmart.h"
  8. #include "24cxx.h"


  9. //要寫入到24c02的字符串?dāng)?shù)組
  10. const u8 TEXT_Buffer[]={"hello"};
  11. #define SIZE sizeof(TEXT_Buffer)

  12. int main(void)
  13. {
  14.     u8 key;
  15.         u16 i=0;
  16.         u8 datatemp[SIZE];        
  17.         
  18.     HAL_Init();                                     //初始化HAL庫(kù)   
  19.     Stm32_Clock_Init(RCC_PLL_MUL9);           //設(shè)置時(shí)鐘,72M
  20.         delay_init(72);                               //初始化延時(shí)函數(shù)
  21.         //uart_init(115200);                                        //初始化串口
  22.         //usmart_dev.init(84);                                     //初始化USMART        
  23.         KEY_Init();                                                        //初始化按鍵
  24.          //LCD_Init();                                                        //初始化LCD
  25.         AT24CXX_Init();                                            //初始化IIC
  26.         LED_Init();

  27.         while(AT24CXX_Check())//檢測(cè)不到24c02
  28.         {
  29.                 delay_ms(500);
  30.                 //LED0=!LED0;//DS0閃爍
  31.         }

  32.         while(1)
  33.         {
  34.                 key=KEY_Scan(0);
  35.                 if(key==KEY1_PRES)//KEY1按下,寫入24C02
  36.                 {

  37.                         AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE);

  38.                 }
  39.                 if(key==KEY0_PRES)//KEY0按下,讀取字符串并顯示
  40.                 {

  41.                         AT24CXX_Read(0,datatemp,SIZE);

  42.                 }
  43.                 i++;
  44.                 delay_ms(10);
  45.                 if(i==20)
  46.                 {
  47.                         LED0=!LED0;//提示系統(tǒng)正在運(yùn)行        
  48.                         i=0;
  49.                 }                  
  50.                 }
  51. }
復(fù)制代碼

所有資料51hei提供下載:
proteus STM32F103 實(shí)現(xiàn)IIC.7z (461.43 KB, 下載次數(shù): 463)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:253852 發(fā)表于 2019-7-30 13:06 | 只看該作者
樓主厲害,可以
回復(fù)

使用道具 舉報(bào)

板凳
ID:671136 發(fā)表于 2020-1-4 16:34 | 只看該作者
如何在LCD上顯示呢
回復(fù)

使用道具 舉報(bào)

地板
ID:233711 發(fā)表于 2020-1-5 15:56 | 只看該作者
要用proteus8以上
回復(fù)

使用道具 舉報(bào)

5#
ID:710460 發(fā)表于 2020-3-17 22:08 | 只看該作者
很好的帖子,謝謝樓主的無私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

6#
ID:727193 發(fā)表于 2020-4-11 21:27 | 只看該作者
caivivi 發(fā)表于 2020-1-4 16:34
如何在LCD上顯示呢

這個(gè)就是仿真里面顯示的,特意把LCD部分屏蔽了。LCD屏上顯示就得加LCD程序了
回復(fù)

使用道具 舉報(bào)

7#
ID:706699 發(fā)表于 2020-4-15 18:08 | 只看該作者
nb,感謝分享
回復(fù)

使用道具 舉報(bào)

8#
ID:729925 發(fā)表于 2020-4-19 14:00 | 只看該作者
厲害,參考一下
回復(fù)

使用道具 舉報(bào)

9#
ID:719186 發(fā)表于 2020-5-14 12:51 | 只看該作者
請(qǐng)問IIC總線的仿真模塊則么調(diào)用啊
回復(fù)

使用道具 舉報(bào)

10#
ID:230913 發(fā)表于 2020-5-14 20:23 | 只看該作者
465132156 發(fā)表于 2020-5-14 12:51
請(qǐng)問IIC總線的仿真模塊則么調(diào)用啊

菜單 Debug 可調(diào)出IIC調(diào)試器
回復(fù)

使用道具 舉報(bào)

11#
ID:752109 發(fā)表于 2020-5-14 21:27 | 只看該作者
樓主太強(qiáng)了~
回復(fù)

使用道具 舉報(bào)

12#
ID:693990 發(fā)表于 2020-5-24 18:09 | 只看該作者
happy87 發(fā)表于 2020-5-14 20:23
菜單 Debug 可調(diào)出IIC調(diào)試器

我是8.9SP2的咋沒找到IIC調(diào)試器,請(qǐng)問是哪一個(gè)?
回復(fù)

使用道具 舉報(bào)

13#
ID:761660 發(fā)表于 2020-6-6 09:30 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

14#
ID:761660 發(fā)表于 2020-6-13 12:17 | 只看該作者
下載后運(yùn)行正常,感謝分享。
回復(fù)

使用道具 舉報(bào)

15#
ID:141072 發(fā)表于 2022-4-30 18:42 | 只看該作者
必須贊一個(gè),巨大貢獻(xiàn)
回復(fù)

使用道具 舉報(bào)

16#
ID:387687 發(fā)表于 2022-5-4 15:57 | 只看該作者

很好的帖子,謝謝樓主的無私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

17#
ID:1023809 發(fā)表于 2022-5-4 17:51 | 只看該作者
謝謝樓主的無私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

18#
ID:679189 發(fā)表于 2022-5-5 18:03 | 只看該作者
干的漂亮!
回復(fù)

使用道具 舉報(bào)

19#
ID:871292 發(fā)表于 2022-5-6 00:04 | 只看該作者
謝謝樓主的無私奉獻(xiàn)!
回復(fù)

使用道具 舉報(bào)

20#
ID:768534 發(fā)表于 2022-5-6 00:25 | 只看該作者
樓主的程序讓我學(xué)到了很多
回復(fù)

使用道具 舉報(bào)

21#
ID:64178 發(fā)表于 2023-5-21 23:41 | 只看該作者
謝謝樓主分享的代碼,正好用上
回復(fù)

使用道具 舉報(bào)

22#
ID:1042484 發(fā)表于 2023-5-25 21:28 來自觸屏版 | 只看該作者
別人沒有模擬成功的?
回復(fù)

使用道具 舉報(bào)

23#
ID:825270 發(fā)表于 2023-6-3 18:48 | 只看該作者
試了一下,沒任何反應(yīng),不知為何!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表