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

標題: tm1638單片機程序+仿真模塊 TM1638.DLL [打印本頁]

作者: sandiyago    時間: 2020-7-23 14:13
標題: tm1638單片機程序+仿真模塊 TM1638.DLL
tm1638仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #ifndef        _TM1638_H
  2. #define        _TM1638_H

  3. #include        <REGX51.H>

  4. #define        DATA_COMMAND        0X40
  5. #define        DISP_COMMAND        0x80
  6. #define        ADDR_COMMAND        0XC0

  7. //TM1638模塊引腳定義
  8. sbit        DIO=P1^0;
  9. sbit        CLK=P1^1;
  10. sbit        STB=P1^2;

  11. //共陰數碼管顯示代碼
  12. unsigned char code tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
  13.                            0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};


  14. void TM1638_Write(unsigned char        DATA)                        //寫數據函數
  15. {
  16.         unsigned char i;
  17.         for(i=0;i<8;i++)
  18.         {
  19.                 CLK=0;
  20.                 if(DATA&0X01)
  21.                         DIO=1;
  22.                 else
  23.                         DIO=0;
  24.                 DATA>>=1;
  25.                 CLK=1;
  26.         }
  27. }
  28. unsigned char TM1638_Read(void)                                        //讀數據函數
  29. {
  30.         unsigned char i;
  31.         unsigned char temp=0;
  32.         DIO=1;        //設置為輸入
  33.         for(i=0;i<8;i++)
  34.         {
  35.                 temp>>=1;
  36.                 CLK=0;
  37.                 if(DIO)
  38.                         temp|=0x80;
  39.                 CLK=1;
  40.         }
  41.         return temp;
  42. }
  43. void Write_COM(unsigned char cmd)                //發送命令字
  44. {
  45.         STB=0;
  46.         TM1638_Write(cmd);
  47.         STB=1;
  48. }
  49. unsigned char Read_key(void)
  50. {
  51.         unsigned char c[4],i,key_value=0;
  52.         STB=0;
  53.         TM1638_Write(0x42);                           //讀鍵掃數據 命令
  54.         for(i=0;i<4;i++)               
  55.                 c[i]=TM1638_Read();
  56.         STB=1;                                                   //4個字節數據合成一個字節
  57.         for(i=0;i<4;i++)
  58.                 key_value|=c[i]<<i;
  59.         for(i=0;i<8;i++)
  60.                 if((0x01<<i)==key_value)
  61.                         break;
  62.         return i;
  63. }
  64. void Write_DATA(unsigned char add,unsigned char DATA)                //指定地址寫入數據
  65. {
  66.         Write_COM(0x44);
  67.         STB=0;
  68.         TM1638_Write(0xc0|add);
  69.         TM1638_Write(DATA);
  70.         STB=1;
  71. }
  72. /*
  73. void Write_oneLED(unsigned char num,unsigned char flag)        //單獨控制一個LED函數,num為需要控制的led序號,flag為0時熄滅,不為0時點亮
  74. {
  75.         if(flag)
  76.                 Write_DATA(2*num+1,1);
  77.         else
  78.                 Write_DATA(2*num+1,0);
  79. }          */
  80. void Write_allLED(unsigned char LED_flag)                                        //控制全部LED函數,LED_flag表示各個LED狀態
  81. {
  82.         unsigned char i;
  83.         for(i=0;i<8;i++)
  84.                 {
  85.                         if(LED_flag&(1<<i))
  86.                                 //Write_DATA(2*i+1,3);
  87.                                 Write_DATA(2*i+1,1);
  88.                         else
  89.                                 Write_DATA(2*i+1,0);
  90.                 }
  91. }

  92. //TM1638初始化函數
  93. void init_TM1638(void)
  94. {
  95.         unsigned char i;
  96.         Write_COM(0x8b);       //亮度 (0x88-0x8f)8級亮度可調
  97.         Write_COM(0x40);       //采用地址自動加1
  98.         STB=0;                           //
  99.         TM1638_Write(0xc0);    //設置起始地址

  100.         for(i=0;i<16;i++)           //傳送16個字節的數據
  101.                 TM1638_Write(0x00);
  102.         STB=1;
  103. }
  104. #endif
復制代碼

TM1638.DLL文件要放到MODELS目錄里面才能仿真,還有LIBRARY目錄的文件也要放進去,要用Proteus7.8版本:
TM1638C51仿真和程序.zip (86.13 KB, 下載次數: 216)



作者: wwh2382    時間: 2020-8-3 21:03
將tm1638.dll放到models文件夾,運行仿真文件還是報錯,請問該怎么辦?


作者: shgdd520com    時間: 2021-4-8 23:03
樓主好 最近在學習這個1638芯片,我的按鍵數碼管是 接的GRID5 GRID8 4個數碼管,這個程序該修改哪里呢
作者: perseverance51    時間: 2021-12-14 17:24
這仿真電路,明顯看到短路了。
作者: quyingbiao1982    時間: 2022-1-7 23:12
非常不錯
作者: heicad    時間: 2022-1-7 23:33
wwh2382 發表于 2020-8-3 21:03
將tm1638.dll放到models文件夾,運行仿真文件還是報錯,請問該怎么辦?

需要用Proteus7.5版本才行,我測試了

51hei.gif (40.84 KB, 下載次數: 191)

51hei.gif

51hei.png (30.97 KB, 下載次數: 193)

51hei.png

作者: mengfanhua2022    時間: 2022-2-3 20:55
將tm1638.dll放到models文件夾,運行仿真文件還是報錯,請問該怎么辦?
作者: heicad    時間: 2022-2-4 06:11
mengfanhua2022 發表于 2022-2-3 20:55
將tm1638.dll放到models文件夾,運行仿真文件還是報錯,請問該怎么辦?

需要用Proteus7.5這個版本 其他都不行  你看我在樓上發的動圖
作者: cqjzx    時間: 2022-12-4 10:12
唉,沒首先自己實踐一遍,看了大家的加復就安裝了個7.5版本,后來事實證明8.13版本是可以仿真的!不知道那些說只有7.5能仿真的人是咋操作的
作者: rlz1981    時間: 2023-2-2 14:52
不知道能不能仿真成功?
作者: 734585    時間: 2023-4-19 16:44
仿真出錯誤是為什么

作者: xmcolong    時間: 2024-3-22 22:24
8.7 SP3 仿真成功!
作者: wione1979    時間: 2024-4-19 16:43
tm1638.dll是怎么做出來的?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人网av| 成人3d动漫一区二区三区91 | 免费在线观看一区二区 | 欧美成人精品一区二区男人看 | 国产成人99久久亚洲综合精品 | 久久精品视频12 | 日本精品免费 | 精品国产欧美一区二区 | 91在线精品一区二区 | 久久成人一区 | 亚洲成人一二区 | 国产精品综合网 | 免费艹逼视频 | 国产成人精品午夜 | 日本一区不卡 | 污片在线免费观看 | 午夜天堂精品久久久久 | 天天干狠狠 | 国产黑丝在线 | 午夜免费网 | 一区二区三区在线 | 做a视频 | 成人国产精品久久 | 欧美视频免费 | 久久午夜精品 | 亚洲风情在线观看 | 91丨九色丨国产在线 | 美女精品一区 | 波多野结衣av中文字幕 | 毛片视频网站 | 日韩中文字幕在线免费 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 亚洲精品日韩欧美 | 日韩精品视频中文字幕 | 在线免费观看亚洲 | 久久99精品久久久久久国产越南 | 91精品久久久久久久久中文字幕 | 天天操网 | 久久久爽爽爽美女图片 | h视频在线看 | 中文字幕日韩三级 |