找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3267|回復: 1
打印 上一主題 下一主題
收起左側(cè)

一款單片機+TLC2543數(shù)字電壓表仿真+源程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:500848 發(fā)表于 2019-3-29 20:51 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
一款簡單編寫的數(shù)字電壓表,可供參考
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)



單片機源程序如下:
  1. #include <stc12c5a60s2.h>
  2. #include <intrins.h>
  3. #include "lcd1602.h"
  4. #include "AD_2543.h"

  5. #define uchar unsigned char
  6. #define uint  unsigned int
  7. /*---------------------------------------
  8. AD芯片采集定義I/O口
  9. -----------------------------------------  */
  10. sbit dout=P1^0;
  11. sbit din=P1^1;
  12. sbit cs=P1^2;
  13. sbit clk=P1^3;

  14. uchar dat2[]={"TL2543 ADC"};  
  15. uchar dat3[]={"Voltage="};
  16. uchar tab[] = {'0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9'};

  17. uint  ad;
  18. uint  Ad_value;

  19. /*--------------------------------------------------
  20. 函數(shù)名:read
  21. 輸入?yún)?shù):void
  22. 功能:          進行AD采集并把采集的數(shù)據(jù)傳輸給單片機
  23. ---------------------------------------------------*/
  24. void delay(uchar N)
  25. {
  26.         while(N--);
  27. }
  28. uint AD_2543(uchar CON_WORD)
  29. {
  30.         uchar i;
  31.         clk=0;
  32.         cs=0;
  33.         CON_WORD<<=4;
  34.         for(i=0;i<12;i++)
  35.         {
  36.                 if(dout==1)
  37.                         Ad_value|=0x01;
  38.                 if(CON_WORD&0x80)
  39.                         din=1;
  40.                 else
  41.                         din=0;
  42.                 clk=1;
  43.                 delay(10);
  44.                 clk=0;
  45.                 delay(10);
  46.                 CON_WORD<<=1;
  47.                 Ad_value<<=1;
  48.         }
  49.         cs=1;
  50.         Ad_value>>=1;
  51.         return Ad_value;
  52. }

  53. ///**********************************************
  54. //函數(shù)名:display()
  55. //參數(shù):  無
  56. //功能:  時鐘顯示函數(shù)
  57. //**********************************************/
  58. void display1()       
  59. {
  60.     uchar  m0=0,m1=0,m2=0,m3=0;       
  61.         ad=(Ad_value/4.095)*5;

  62.         m0=ad/1000;
  63.         m1=ad%1000/100;
  64.         m2=ad%1000%100/10;
  65.         m3=ad%10;
  66.         lcd_write_string(0,0,dat2);        //整數(shù)顯示部分
  67.     lcd_write_string(1,0,dat3);        //整數(shù)顯示部分
  68.         lcd_write_char(1,8, tab[m0]);
  69.         lcd_write_char(1,10, tab[m1]);
  70.         lcd_write_char(1,9, '.' );
  71.         lcd_write_char(1,11, tab[m2]);          //小數(shù)顯示部分
  72.         lcd_write_char(1,12, tab[m3]);
  73.         lcd_write_char(1,13, 'V');
  74. }
復制代碼

所有資料51hei提供下載:
電壓表.rar (135.49 KB, 下載次數(shù): 43)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:303735 發(fā)表于 2019-4-3 15:51 | 只看該作者
仿真怎么沒顯示呢,把HEX文件加載進去就是不顯示數(shù)字。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表