《TLV1544程序》由会员分享,可在线阅读,更多相关《TLV1544程序(5页珍藏版)》请在金锄头文库上搜索。
1、#include #include /库函数头文件,代码中引用了_nop_() 函数#include #define uchar unsigned char #define uint unsigned char /*LCD1602*/ / 定义控制信号端口sbit RS=P30; /P3.0 sbit RW=P31; /P3.1 sbit E=P32; /P3.2 sbit CS_AD=P20; sbit CLK=P21; sbit DATA_IN=P22; sbit DATA_OUT=P23; /sbit CSTART=P25; unsigned int Volt; unsigned cha
2、r Buffer11=“V olt:0.0000“; / 声明调用函数void lcd_w_cmd(unsigned char com); /写命令字函数void lcd_w_dat(unsigned char dat); /写数据函数unsigned char lcd_r_start(); /读状态函数void int1(); /LCD 初始化函数void delay(unsigned char t); /可控延时函数void delay1(); /软件实现延时函数,5 个机器周期void write_1544(unsigned char a); void init_1544(); /* 初
3、始化 1544 口线 */ unsigned int read_1544( unsigned char a); /void Cstart_1544(); void TLV1544(); /函数名: delay /函数功能:采用软件实现可控延时/形式参数:延时时间控制参数存入变量t 中/返回值:无void delay(unsigned char t) unsigned char j,i; for(i=0;i=1; CLK=0; CS_AD=1; DATA_OUT=1; /*void Cstart_1544() /采样与转换的起始控制CS_AD=1; CSTART=1; delay(1); CST
4、ART=0; delay(1); CSTART=1; */ /*选取被读的通道,10 个数据位通过DATA_OUT 发送到主机 */ unsigned int read_1544(unsigned char a) unsigned char i; unsigned char b=0x08; unsigned int r_data=0; /* 返回转换结果*/ CS_AD=0; CLK=0; for(i=0;i=1; CLK=0; /时序if(DATA_OUT=1) r_data+; delay1(); CS_AD=1; DATA_IN=1; return r_data; void shuzic
5、huli_1544() unsigned int m; m=read_1544(0x00); Volt=m*48; /*将电压值扩大了一万倍*/ void Display_V olt() Buffer5=V olt/10000+0;/* 电压值的个位 */ Buffer7=V olt/1000%10+0;/* 电压值小数点后的十分位*/ Buffer8=V olt/100%10+0;/* 电压值小数点后的百分位*/ Buffer9=V olt/10%10+0;/* 电压值小数点后的千分位*/ Buffer10=V olt%10+0;/* 电压值小数点后的万分位*/ void TLV1544() init_1544(); /初始化 TLV1544 write_1544(0x00); / Cstart_1544(); delay(10); read_1544(0x00); shuzichuli_1544(); Display_Volt(); void main() /主函数 unsigned char i; P1=0xff; / 送全 1 到 P1 口int1(); / 初始化 LCD delay(20); while(1) TLV1544(); lcd_w_cmd(0x80); / 设置显示位置for(i=0;i11;i+) / 显示字符串 lcd_w_dat(Bufferi);