MAX197的带液晶显示源程序

include
#include
#include
#define uint unsigned int
#define uchar unsigned char
#define max197 xbyte[0xefff]
sbit en=p2^0;
sbit rs=p2^1;
sbit cs=p2^2;
sbit hben=p2^3;
sbit duan=p2^6;
uchar templ,temph,flag;
float dianya;
uint temp,temp1[25];
unsigned long voltage;
void delay(uint i)
{
while(i--);
}
void delay1(uint z)
{
int x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
void write_com(uchar com)
{
rs=0;
p1=com;
delay1(5);
en=1;
delay1(5);
en=0;
}
void write_data(uchar date)
{
rs=1;
p1=date;
delay1(5);
en=1;
delay1(5);
en=0;
}
void initial()
{
en=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void printc(uchar lcd_data) //输出一个字符到lcd
{
write_data(lcd_data);
}
void prints(uchar *lcd_string) //输出一个字符串到lcd
{
uchar i=0;
while(lcd_string[i]!=0x00)
{
write_data(lcd_string[i]);
i++;
}
}
void setposition(uchar x) //lcd光标定位到x处
{
write_com(0x80+x);
}
uchar tempbuffer[7];
void inttostr(uint temp, uchar *str, uchar n)
{
uchar a[7]; char i, j; //取得整数值到数组
dianya=temp/4096.0;
voltage=dianya*100000;
a[0]=voltage/10000;
a[1]=voltage%10000/1000;
a[2]=voltage%1000/100;
a[3]=voltage%100/10;
a[4]=voltage%10;
for(i=0; i<5; i++) //转成ascii码
a[i]=a[i]+'0';
for(i=0; a[i]=='0' && i<=5; i++);
for(j=5-n; j { *str=' '; str++; }
for(; i<5; i++)
{ *str=a[i]; str++; } //加入有效的数字
*str='\0';
}
void initial_max197()
{
//uchar *ad;
// ad=&max197;
//单片机初始化
ea=1;
it1=1;
ex1=1;
duan=0;
//初始化max197
//*ad=0x40;
}
void main()
{
uchar i;
initial();
initial_max197();
//cs=0;
max197=0x40;
setposition(0x00);
prints(the voltage is :);
while(1)
{
//采集15次;
for(i=0;i<15;i++)
{
flag=0;
max197=0x40;
while(!flag);
hben=1;
temph=max197;
_nop_();
hben=0;
templ=max197;
temp=temph;
temp<<=8;
temp1[i]=temp|templ;
}
temp=0;
for(i=0;i<15;i++)
{
temp=temp+temp1[i];
}
temp=temp/15;//取平均值
inttostr(temp,&tempbuffer[0],5);
setposition(0x40);
printc(tempbuffer[0]);
printc(tempbuffer[1]);
printc('.');
printc(tempbuffer[2]);
printc(tempbuffer[3]);
printc(tempbuffer[4]);
prints(mv);
delay1(500);
max197=0x40;
}
}
void convert() interrupt 2 using 2
{
flag=1;
}

数字货币交易平台Gemini和Flexa达成合作将共同促进数字货币支付的发展
ADI数字步进衰减器可以实现接近直流操作的性能
详解Cypress公司的 Cypress S6BP501A/S6BP502A集成电路
PLC数学运算综合应用
循环格雷码VHDL源程序
MAX197的带液晶显示源程序
人工气候室由中心控制室、试验培养室和人工能源室组成
了解肖特基二极管的具体作用
光纤损耗包括哪些_光纤损耗的分类
MXC抹茶科技成为中国软件行业协会区块链分会“首批共识理事成员”
“隐秘拍摄”实战:用树莓派制作一台可穿戴摄像机
SGM8196 荣获 2023 全球电子成就奖“年度创新产品奖”
国产功放哪个牌子好_国产功放排名
Accel Telecom推出首款终极互连车载智能电话设备VOYAGER
12月25日华为Mate9曜石黑开售:低调奢华有内涵,足以和mate9保时捷相媲美!
LCR-6000系列数字电桥的性能特点及功能实现
健身房中应用的智能魔镜带你“智”享健身时刻
特大好消息:ARM Cortex-M0/M3免收授权费了
AM011408LN-P1低噪声放大器模块AMCOM
OFDR技术光纤传感解调原理详解