资源简介
用PCF8591做的一个AD转换程序,通过1206LCD液晶屏显示,其中数据数据转换后处理的数据有三种,程序包含I2C通信协议子程序,可以直接拿来放在工程文件下使用,很方便,程序调试通过,由于本人也是菜鸟,所以每一步都解释的很详细。
代码片段和文件信息
#include
#include
#define PCF8591 0x90 //PCF8591 地址
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P2^7; //LCD使能
sbit rs=P2^6; //LCD数据/命令选择
sbit rw=P2^5; //LCD读/写选择
uchar code table[]=“ . SZGL“;
uchar code table1[]=“ . nw “;
unsigned char AD_CHANNEL;
unsigned int D[5];
/*******************************************************************
延时函数
*******************************************************************/
void delay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=10;y>0;y--);
}
/*******************************************************************
lcd写入指令
*******************************************************************/
void write_com(uchar com)
{
rs=0;
rw=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
/*******************************************************************
lcd写入数据
*******************************************************************/
void write_date(uchar date)
{
rs=1;
rw=0;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
/*******************************************************************
初始化函数,这里指LCD初始化
*******************************************************************/
void init()
{
uchar num;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
for(num=0;num<16;num++)
{
write_date(table[num]);
delay(5);
}
write_com(0x80+0x40);
for(num=0;num<16;num++)
{
write_date(table1[num]);
delay(5);
}
}
/*******************************************************************
显示函数,显示ad转换结果
*******************************************************************/
void write_val(uchar adduchar date)
{
uchar geshibai; //无符号字符型 0-255
uint tmp; //无符号整型 0-65535
uchar qian;
tmp=date*10;
qian=tmp/510; //显示最大5000
tmp=tmp%510;
tmp=tmp*10;
bai=tmp/510;
tmp=tmp%510;
tmp=tmp*10;
shi=tmp/510;
tmp=tmp%510;
tmp=tmp*10;
ge=tmp/510;
/* bai=date/51; //显示最大500
tmp=date%51*10;
shi=tmp/51;
tmp=tmp%51*10;
ge=tmp/51; */
/* bai=date/100; //显示最大值为255
shi=date%100/10;
ge=date%100%10; */
write_com(0x80+add); //写入要输入数字的其实位置,只需写入第一个位置即可,因为每写入一个数字光标自动后移一位
write_date(0x30+qian);
delay(5);
write_date(0x30+bai); //0-9在LCD显示要以ASC码输入,当然也可以直接输入0-9此时需要打‘‘号
delay(5);
write_date(0x30+shi);
delay(5);
write_com(0x80+add+4);
write_date(0x30+ge);
}
/*******************************************************************
DAC 变换 转化函数
*******************************************************************/
bit DACconversion(unsigned char slaunsigned char c unsigned char Val)
{
Start_I2c(); //启动总线
SendByte(sla); //发送器件地址
if(ack==0)return(0);
SendByte(c); //发送控制字节
if(ack==0)return(0);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-06-10 09:27 0605 AD and LCD\
文件 548 2010-06-15 16:10 0605 AD and LCD\I2C.H
文件 8272 2014-06-10 09:27 0605 AD and LCD\I2C.LST
文件 7919 2014-06-10 09:27 0605 AD and LCD\I2C.OBJ
文件 4738 2014-06-08 23:13 0605 AD and LCD\I2C.c
文件 5115 2002-04-16 14:32 0605 AD and LCD\STARTUP.A51
文件 11679 2014-06-10 09:27 0605 AD and LCD\STARTUP.LST
文件 749 2014-06-10 09:27 0605 AD and LCD\STARTUP.OBJ
文件 17633 2014-06-10 09:27 0605 AD and LCD\ad and LCD
文件 10269 2014-06-10 09:27 0605 AD and LCD\ad and LCD.LST
文件 20818 2014-06-10 09:27 0605 AD and LCD\ad and LCD.M51
文件 11461 2014-06-10 09:27 0605 AD and LCD\ad and LCD.OBJ
文件 1583 2014-06-09 21:53 0605 AD and LCD\ad and LCD.Opt
文件 2081 2014-06-05 23:56 0605 AD and LCD\ad and LCD.Uv2
文件 5234 2014-06-09 21:47 0605 AD and LCD\ad and LCD.c
文件 2756 2014-06-10 09:27 0605 AD and LCD\ad and LCD.hex
文件 80 2014-06-10 09:27 0605 AD and LCD\ad and LCD.lnp
文件 401 2014-06-10 09:27 0605 AD and LCD\ad and LCD.plg
文件 1264 2014-06-08 23:13 0605 AD and LCD\ad and LCD_Opt.Bak
文件 0 2014-06-05 12:08 0605 AD and LCD\ad and LCD_Uv2.Bak
- 上一篇:OpenPop.dll,.NET读取邮件类库
- 下一篇:ad7606数据手册
相关资源
- 步进电机实现的悬挂运动控制系统
- 最牛的交通灯proteus仿真附keil程序
- 8255单片机led显示实验
- 宏晶STC单片机常见封装及PCB库
- LCD12864 万年历 单片机 农历 显示 温度
- 056 货车超重监测系统 51单片机 仿真
- 030 矩阵键盘 电子琴 仿真 51单片机
- 025 四路定时开关 51单片机仿真
- 014 电流表 仿真 51单片机 proteus仿真
- 单片机 汇编语言 简易红绿灯
- PIC18单片机 官方所有程序 包含AD TI
- 基于51单片机的16X16点阵电子琴
- 步进电机运行源代码及protues仿真
- 数据结构课程设计——商品货架管理
- MSP430G25534个简单的小程序
- STC单片机触摸C程序
- 光敏电阻测试数码管显示
- 课程设计 51单片机电机PID调速打包k
- 51单片机+Nokia5110 实现点菜收银系统
- 用51单片机产生PWM控制直流小电机
- 单片机激光相位测距仪原理图
- 基于51单片机DHT11温湿度检测和串口通
- 基于51单片机的16*16点阵显示汉字
- 3路智能小车循迹程序
- 51单片机舵机角度控制程序
- 基于51单片机的测量放大电路,简单实
- 12864液晶屏控制器为ks0108的proteus仿真
- 基于单片机的孩子能交通灯系统外文
- 5V量程电压表汇编程序
- 51单片机步进电机正反转调速1602显示
评论
共有 条评论