標(biāo)題:
一款單片機+TLC2543數(shù)字電壓表仿真+源程序
[打印本頁]
作者:
JONK
時間:
2019-3-29 20:51
標(biāo)題:
一款單片機+TLC2543數(shù)字電壓表仿真+源程序
一款簡單編寫的數(shù)字電壓表,可供參考
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(16.58 KB, 下載次數(shù): 49)
下載附件
2019-3-29 22:25 上傳
0.png
(17.68 KB, 下載次數(shù): 49)
下載附件
2019-3-29 22:25 上傳
單片機源程序如下:
#include <stc12c5a60s2.h>
#include <intrins.h>
#include "lcd1602.h"
#include "AD_2543.h"
#define uchar unsigned char
#define uint unsigned int
/*---------------------------------------
AD芯片采集定義I/O口
----------------------------------------- */
sbit dout=P1^0;
sbit din=P1^1;
sbit cs=P1^2;
sbit clk=P1^3;
uchar dat2[]={"TL2543 ADC"};
uchar dat3[]={"Voltage="};
uchar tab[] = {'0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9'};
uint ad;
uint Ad_value;
/*--------------------------------------------------
函數(shù)名:read
輸入?yún)?shù):void
功能: 進(jìn)行AD采集并把采集的數(shù)據(jù)傳輸給單片機
---------------------------------------------------*/
void delay(uchar N)
{
while(N--);
}
uint AD_2543(uchar CON_WORD)
{
uchar i;
clk=0;
cs=0;
CON_WORD<<=4;
for(i=0;i<12;i++)
{
if(dout==1)
Ad_value|=0x01;
if(CON_WORD&0x80)
din=1;
else
din=0;
clk=1;
delay(10);
clk=0;
delay(10);
CON_WORD<<=1;
Ad_value<<=1;
}
cs=1;
Ad_value>>=1;
return Ad_value;
}
///**********************************************
//函數(shù)名:display()
//參數(shù): 無
//功能: 時鐘顯示函數(shù)
//**********************************************/
void display1()
{
uchar m0=0,m1=0,m2=0,m3=0;
ad=(Ad_value/4.095)*5;
m0=ad/1000;
m1=ad%1000/100;
m2=ad%1000%100/10;
m3=ad%10;
lcd_write_string(0,0,dat2); //整數(shù)顯示部分
lcd_write_string(1,0,dat3); //整數(shù)顯示部分
lcd_write_char(1,8, tab[m0]);
lcd_write_char(1,10, tab[m1]);
lcd_write_char(1,9, '.' );
lcd_write_char(1,11, tab[m2]); //小數(shù)顯示部分
lcd_write_char(1,12, tab[m3]);
lcd_write_char(1,13, 'V');
}
復(fù)制代碼
所有資料51hei提供下載:
電壓表.rar
(135.49 KB, 下載次數(shù): 43)
2019-3-29 20:51 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
liqingyong
時間:
2019-4-3 15:51
仿真怎么沒顯示呢,把HEX文件加載進(jìn)去就是不顯示數(shù)字。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1