標(biāo)題: 一款單片機+TLC2543數(shù)字電壓表仿真+源程序 [打印本頁]

作者: JONK    時間: 2019-3-29 20:51
標(biāo)題: 一款單片機+TLC2543數(shù)字電壓表仿真+源程序
一款簡單編寫的數(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. 功能:          進(jìn)行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. }
復(fù)制代碼

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



作者: liqingyong    時間: 2019-4-3 15:51
仿真怎么沒顯示呢,把HEX文件加載進(jìn)去就是不顯示數(shù)字。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1