资源简介
51单片机ADC0809测电压12864显示程序
代码片段和文件信息
//检测可以在板子上接上一个10K滑动变阻器,将ADC0809 26脚引出测 最大显示5V最小0V
#include
#define lcddata P0 //12864液晶数据口
sbit RS = P2^7;
sbit RW = P2^6;
sbit EN = P2^5;
#define adcdata P1 //adc数据口
sbit start=P3^4; //adc0809引脚
sbit eoc=P3^5;
sbit oe=P3^6;
sbit aa=P3^7; //给adc0809提供时钟信号
sbit ale=P2^3;
sbit d3=P2^2; //adc0809数据口选择
sbit d2=P2^1; //d1d2d3都为0时选中adc数据0口
sbit d1=P2^0;
uint j1j2j3k;
float l; //用来读取数据
void zd() //中断函数 定时计数器0
{
EA=1;
ET0=1;
TH0=0XDC;
TL0=0X00;
TR0=1;
}
void zoushi() interrupt 1
{
TH0=0XDC;
TL0=0X00;
aa=~aa;
}
uchar Lcd_CheckBusy(void)
{
uchar Busy;
lcddata=0xff;
RS=0;
RW=1;
EN=1;
Busy=lcddata&0x80;
EN=0;
return Busy;
}
void Lcd_WriteData(uchar Data)
{
while(Lcd_CheckBusy());
RS=1;
RW=0;
EN=0;
lcddata=Data;
EN=1;
EN=0;
}
void Lcd_WriteCmd(uchar i)
{
while(Lcd_CheckBusy());
RS=0;
RW=0;
EN=0;
lcddata=i;
EN=1;
EN=0;
}
void init()
{
Lcd_WriteCmd(0x38);Lcd_WriteCmd(0x38);
Lcd_WriteCmd(0x38);Lcd_WriteCmd(0x38);
Lcd_WriteCmd(0x08);Lcd_WriteCmd(0x01);
Lcd_WriteCmd(0x06);Lcd_WriteCmd(0x0c);
}
void clear()
{
Lcd_WriteCmd(0x01);
}
void xie(uchar xuchar yuchar *s)
{
uchar i=0;
if(y==0)Lcd_WriteCmd(0x80+x);
else if(y==1)Lcd_WriteCmd(0x90+x);
else if(y==2)Lcd_WriteCmd(0x88+x);
else if(y==3)Lcd_WriteCmd(0x98+x);
else ;
while (*s)
{
Lcd_WriteData(*s);s++;
Lcd_WriteData(*s);s++;i++;
if(i>=8-x)
{
i=x=0;y++;
if(y==0)Lcd_WriteCmd(0x80);
else if(y==1)Lcd_WriteCmd(0x90);
else if(y==2)Lcd_WriteCmd(0x88);
else if(y==3)Lcd_WriteCmd(0x98);
else;
}
}
}
void xianshi()
{
uchar xs1[16]={“ “};
l=l/51;
k=l*100;
j1=k/100;
j2=k%100/10;
j3=k%10;
xs1[0]=j1+‘0‘;xs1[2]=j2+‘0‘;xs1[3]=j3+‘0‘;
xs1[1]=‘.‘;xs1[4]=‘V‘;xs1[5]=‘ ‘;xs1[6]=‘ ‘;xs1[7]=‘ ‘;
xs1[8]=‘ ‘;xs1[9]=‘ ‘;xs1[10]=‘ ‘;xs1[11]=‘ ‘;
xs1[12]=‘ ‘;xs1[13]=‘ ‘;xs1[14]=‘ ‘;xs1[15]=‘ ‘;
xie(00xs1 );
xie(01“ “);
xie(02“ “);
xie(03“ “);
}
void main()
{
zd();init();clear();
oe=0;start=0;ale=0;
d3=d2=d1=0;
eoc=1;
while(1)
{
start=0;ale=1;
ale=0;start=1;
while(eoc==0)
{
oe=1;start=0;ale=0;
l=adcdata;
xianshi();
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9487 2013-11-22 20:02 adc\adc
文件 2464 2013-11-22 20:05 adc\adc.c
文件 4586 2013-11-22 20:02 adc\adc.hex
文件 38 2013-11-22 20:02 adc\adc.lnp
文件 6136 2013-11-22 20:02 adc\adc.LST
文件 12229 2013-11-22 20:02 adc\adc.M51
文件 9617 2013-11-22 20:02 adc\adc.OBJ
文件 13869 2013-11-22 20:02 adc\adc.plg
....... 55179 2013-11-22 20:05 adc\adc.uvopt
....... 13217 2013-11-22 20:05 adc\adc.uvproj
....... 0 2013-11-22 18:20 adc\adc_uvproj.bak
文件 6376 2009-05-07 14:37 adc\STARTUP.A51
目录 0 2013-11-22 20:05 adc
----------- --------- ---------- ----- ----
133198 13
- 上一篇:西安交通大学 数理统计 施雨 版 课后题答案
- 下一篇:解苹果ID助手V3.0
相关资源
- 51单片机超声波测距1602显示
- 51单片机16x16点阵程序
- 基于STC89C51单片机的数字抢答器——毕
- 51单片机智能扫地机器人
- Proteus仿真AD0808
- 基于51单片机的万年历
- 51单片机频率计设计
- 51_I2C模拟通信
- 51单片机资料\\基于单片机的函数信号
- 51单片机串口通信程序 含详细
- 51单片机AD转换程序及仿真图
- 51单片机 矩阵键盘计算器
- 基于51单片机SHT11温湿度传感器检测程
- 8051单片机最小系统电路原理图
- 51单片机和proteus仿真红外遥控
- 51单片机秒表课程设计
- 51单片机PID控制含DAC0832DA转换程序完全
- 51单片机利用传感器测距
- 51单片机PCF8591
- 基于51单片机的交通灯实验报告
- 51单片机多任务编程思想
- 基于单片机的光电计数器设计
- 基于51单片机、PCF8563时钟芯片的智能
- 基于51单片机电子密码锁
- 基于51单片机的直流电机PWM调速系统
- 智能小车-51单片机-红外避障基础版
- 基于51单片机的超声波避障小车AD原理
- 基于51单片机的篮球计分器论文.doc
- 51单片机GY906测量人体测温度,eeprom存
- wifi时钟.zip
评论
共有 条评论