3超详细TL2543测电压实例说明带电路图2014727_第1页
3超详细TL2543测电压实例说明带电路图2014727_第2页
3超详细TL2543测电压实例说明带电路图2014727_第3页
3超详细TL2543测电压实例说明带电路图2014727_第4页
3超详细TL2543测电压实例说明带电路图2014727_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3、超详细TL2543测电压实例说明(带电路图) By 即墨天21、 电路图/-/读2543AD转换程序/-#include <reg51.h>#include <intrins.h>#include <lcd1602.c> /使用了LCD1602封装程序,代码见附件一#define uchar unsigned char#define uint unsigned intsbit Tlc_Sdo = P10; /2543输出sbit Tlc_Sdi = P11; /2543输入sbit Tlc_Cs = P12; /2543片选sbit Tlc_Clk =

2、P13; /2543时钟sbit Tlc_Eoc = P14;uchar code LCD_DSY1 = "2543 A/D Result:"/第一行显示的字符uchar LCD_DSY2 =" 0.00V " /第二行显示结果/-/读2543AD转换值子程序,输入参数:Port通道号,输出参数:AD转换值/-uint read_2543(uchar port)uint Ad_Result = 0; /用于存放采集的AD转换值uchar i;Tlc_Clk = 0;Tlc_Cs = 0;port <<= 4; /选择数据长度为12位,高位在前

3、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);void main()uint Tmp;Initialize_LCD1602();LCD1602_Display(0,0,LCD_DSY1); /显示第一行的字符rea

4、d_2543(0); /启动AD转换,选中通道0,转换结果无意义。while(1)while(!Tlc_Eoc); /等待AD转换结束Tmp = read_2543(0)*500.0/4095;/读取0通道AD转换结果*500.0/4095为电压值 LCD_DSY26= Tmp / 100 % 10 + '0'/百位LCD_DSY28= Tmp % 100 / 10 + '0'/十位LCD_DSY29= Tmp % 10 + '0'/个位LCD1602_Display(0,1,LCD_DSY2);附件一/-/LCD1602显示驱动程序/-/-/1

5、602液晶的驱动程序 调用前请按接线自行更改液晶接口的位定义;/在主程序中输入:Initialize_LCD1602();进行1602液晶的初始化/显示需调用函数:LCD1602_Display(x,y,z)/ 其中x为字符的列位置,取值范围0-32,y为字符的行位置,取值范围为/ 0第一行,1第二行;z为待显示的字符串数组名/-#define uchar unsigned char#define uint unsigned intsbit RS = P20; /液晶数据/命令选择端sbit RW = P21; /液晶读写选择端sbit EN = P22; /液晶使能信号/-/延时/-void

6、 LCD1602_DelayMS(uint ms)uchar i;while(ms-) for(i = 0; i < 120; i+);/-/忙检查/-uchar LCD1602_Busy_Check()uchar LCD_Status;RS = 0;RW = 1;EN = 1;LCD1602_DelayMS(1);LCD_Status = P0;EN = 0;return LCD_Status; /-/写LCD命令/-void LCD1602_Write_Cmd(uchar cmd)while(LCD1602_Busy_Check() & 0x80) = 0x80); /忙等待

7、RS = 0;RW = 0;EN = 0;P0 = cmd;EN = 1;LCD1602_DelayMS(1);EN = 0;/-/发送数据/-void LCD1602_Write_Data(uchar dat)while(LCD1602_Busy_Check() & 0x80) = 0x80); /忙等待RS = 1;RW = 0;EN = 0;P0 = dat;EN = 1;LCD1602_DelayMS(1);EN = 0; /-/LCD初始化/-void Initialize_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);/-/显示字符串/-void LCD1602_Display(uchar x,uchar y,uchar *str)uchar i = 0;if(y = 0) LCD1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论