超详细TL测电压实例说明带电路图.doc

上传人:b****3 文档编号:2612168 上传时间:2022-11-03 格式:DOC 页数:5 大小:271.50KB
下载 相关 举报
超详细TL测电压实例说明带电路图.doc_第1页
第1页 / 共5页
超详细TL测电压实例说明带电路图.doc_第2页
第2页 / 共5页
超详细TL测电压实例说明带电路图.doc_第3页
第3页 / 共5页
超详细TL测电压实例说明带电路图.doc_第4页
第4页 / 共5页
超详细TL测电压实例说明带电路图.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

超详细TL测电压实例说明带电路图.doc

《超详细TL测电压实例说明带电路图.doc》由会员分享,可在线阅读,更多相关《超详细TL测电压实例说明带电路图.doc(5页珍藏版)》请在冰豆网上搜索。

超详细TL测电压实例说明带电路图.doc

3、超详细TL2543测电压实例说明(带电路图)

By即墨天2

一、电路图

//--------------------------------------------------------------

//读2543AD转换程序

//--------------------------------------------------------------

#include

#include

#include //使用了LCD1602封装程序,代码见附件一

#defineucharunsignedchar

#defineuintunsignedint

sbitTlc_Sdo=P1^0;//2543输出

sbitTlc_Sdi=P1^1;//2543输入

sbitTlc_Cs=P1^2;//2543片选

sbitTlc_Clk=P1^3;//2543时钟

sbitTlc_Eoc=P1^4;

ucharcodeLCD_DSY1[]={"2543A/DResult:

"};//第一行显示的字符

ucharLCD_DSY2[]={"0.00V"};//第二行显示结果

//--------------------------------------------------------------

//读2543AD转换值子程序,输入参数:

Port通道号,输出参数:

AD转换值

//--------------------------------------------------------------

uintread_2543(ucharport)

{

uintAd_Result=0;//用于存放采集的AD转换值

uchari;

Tlc_Clk=0;

Tlc_Cs=0;

port<<=4;//选择数据长度为12位,高位在前

for(i=0;i<12;i++)

{

Ad_Result<<=1;

if(Tlc_Sdo)Ad_Result|=0x01;

//Tlc_Sdi=(bit)(port&0x80);

port<<=1;

Tlc_Sdi=CY;//CY为程序状态字进位标志位

Tlc_Clk=1;//时钟上升沿

Tlc_Clk=0;

}

Tlc_Cs=1;

return(Ad_Result);

}

voidmain()

{

uintTmp;

Initialize_LCD1602();

LCD1602_Display(0,0,LCD_DSY1);//显示第一行的字符

read_2543(0);//启动AD转换,选中通道0,转换结果无意义。

while

(1)

{

while(!

Tlc_Eoc);//等待AD转换结束

Tmp=read_2543(0)*500.0/4095; //读取0通道AD转换结果*500.0/4095为电压值

LCD_DSY2[6] =Tmp/100%10+'0';//百位

LCD_DSY2[8] =Tmp%100/10+'0';//十位

LCD_DSY2[9] =Tmp%10+'0';//个位

LCD1602_Display(0,1,LCD_DSY2);

}

}

附件一

//--------------------------------------------------------------

//LCD1602显示驱动程序

//--------------------------------------------------------------

//--------------------------------------------------------------

//1602液晶的驱动程序调用前请按接线自行更改液晶接口的位定义;

//在主程序中输入:

Initialize_LCD1602();进行1602液晶的初始化

//显示需调用函数:

LCD1602_Display(x,y,z)

//其中x为字符的列位置,取值范围0-32,y为字符的行位置,取值范围为

//0——第一行,1——第二行;z为待显示的字符串数组名

//--------------------------------------------------------------

#defineucharunsignedchar

#defineuintunsignedint

sbitRS=P2^0;//液晶数据/命令选择端

sbitRW=P2^1;//液晶读写选择端

sbitEN=P2^2; //液晶使能信号

//-----------------------------------------------------

//延时

//-----------------------------------------------------

voidLCD1602_DelayMS(uintms)

{

uchari;

while(ms--)for(i=0;i<120;i++);

}

//-----------------------------------------------------

//忙检查

//------------------------------------------------------

ucharLCD1602_Busy_Check()

{

ucharLCD_Status;

RS=0;

RW=1;

EN=1;

LCD1602_DelayMS

(1);

LCD_Status=P0;

EN=0;

returnLCD_Status;

}

//-------------------------------------------------

//写LCD命令

//-------------------------------------------------

voidLCD1602_Write_Cmd(ucharcmd)

{

while((LCD1602_Busy_Check()&0x80)==0x80);//忙等待

RS=0;

RW=0;

EN=0;

P0=cmd;

EN=1;

LCD1602_DelayMS

(1);

EN=0;

}

//-------------------------------------------------------------

//发送数据

//-------------------------------------------------------------

voidLCD1602_Write_Data(uchardat)

{

while((LCD1602_Busy_Check()&0x80)==0x80);//忙等待

RS=1;

RW=0;

EN=0;

P0=dat;

EN=1;

LCD1602_DelayMS

(1);

EN=0;

}

//------------------------------------------------------------

//LCD初始化

//-----------------------------------------------------------

voidInitialize_LCD1602()

{

LCD1602_Write_Cmd(0x38);//显示模式设置

LCD1602_DelayMS

(1);

LCD1602_Write_Cmd(0x01);//显示清屏

LCD1602_DelayMS

(1);

LCD1602_Write_Cmd(0x0C);//开显示,不显示光标

LCD1602_DelayMS

(1);

LCD1602_Write_Cmd(0x06);//屏幕不动,读或写一个字符后地址指针加一

LCD1602_DelayMS

(1);

}

//---------------------------------------------------------

//显示字符串

//---------------------------------------------------------

voidLCD1602_Display(ucharx,uchary,uchar*str)

{

uchari=0;

if(y==0)LCD1602_Write_Cmd(0x80|x);

if(y==1)LCD1602_Write_Cmd(0xC0|x);//设置显示起始位置

for(i=0;i<16;i++)

{

LCD1602_Write_Data(str[i]);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1