资源简介
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
相关资源
- ADC0809的采样控制电路的实现.doc
- 51单片机通信采样proteus仿真方波转化
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- ADC0809数字电压表 LCD1602显示 汇编程序
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
评论
共有 条评论