#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit ds=P2^0;//CH595串行数据输入端
sbit ST_CP=P2^1;//CH595锁存器时钟
sbit SH_CP=P2^2;//CH595移位寄存器时钟
sbit rs=P2^3;//LCD1602数据命令端,"H"表示数据,"L"表示命令
sbit lcden=P2^4;//LCD1602使能控制端
sbit ad_cs=P2^7;
sbit adwr=P3^6;//AD的WR端口
sbit adrd=P3^7;//AD的RD端口
uchar table[]=" Voltage: . V";
uchar table1[]=" f: Hz";
void delayms(uint k)//延时k ms
{
uint i,j;
for(i=k;i>0;i--)
for(j=110;j>0;j--);
}
void write_com(uchar com)//LCD写命令
{
uchar i,temp;
rs=1;
ST_CP=0;
temp=com;
for(i=0;i<8;i++)
{
SH_CP=0;
delayms(1);
ds=(bit)(temp&0x80);
temp=temp<<1;
SH_CP=1;
}
ST_CP=1;
delayms(1);
lcden=0;
delayms(1);
lcden=1;
}
void write_data(uchar date)//LCD写数据
{
uchar i,temp;
rs=0;
ST_CP=0;
temp=date;
for(i=0;i<8;i++)
{
SH_CP=0;
delayms(1);
ds=(bit)(temp&0x80);
temp=temp<<1;
SH_CP=1;
}
ST_CP=1;
delayms(1);
lcden=0;
delayms(1);
lcden=1;
}
void lcd_init()//LCD初始化
{
uchar num;
lcden=1;//1602液晶初始化
write_com(0x38);//16*2显示,5*7点阵,8位数据接口
write_com(0x0c);//设置开显示,不显示光标
write_com(0x06);//写一个字符后地址指针加一
write_com(0x01);//显示清0,数据指针清0
write_com(0x80);
for(num=0;num<16;num++)
{
write_data(table[num]);
_nop_();
//delayms(1);
}
write_com(0x80+0x40);
for(num=0;num<16;num++)
{
write_data(table1[num]);
_nop_();
//delayms(1);
}
}
void lcd_voltage_display(uchar addr,uchar date)
{
write_com(0x80+addr);
write_data(0x30+date);
}
void ad_display(uchar addr,uchar date)
{
write_com(0x80+0x40+addr);
write_data(0x30+date);
}
void main()
{
uchar a,ad_data,a1,a2,a3,A1,A2,A3,A4;
lcd_init();
while(1)
{
P0=0xff;
ad_cs=0;
_nop_();
adwr=0;//启动AD转换
_nop_();
_nop_();
_nop_();
adwr=1;
_nop_();
adrd=1;
_nop_();
adrd=0;
_nop_();
_nop_();
for(a=10;a>0;a--)
{
lcd_voltage_display(10,A1);
lcd_voltage_display(12,A2);
lcd_voltage_display(13,A3);
lcd_voltage_display(14,A4);
ad_display(1,a1);
ad_display(2,a2);
ad_display(3,a3);
}
ad_data=P0;
adrd=1;
_nop_();
A1=ad_data/51;
A2=ad_data%51*10/51;
A3=ad_data%51*10%51*10/51;
A4=ad_data%51*10%51*10%51*10/51;
a1=ad_data/100;
a2=ad_data%100/10;
a3=ad_data%100%10;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
ADC0804电压显示.rar (18个子文件)
ADC0804电压显示
signalgenerator_uvopt.bak 55KB
signalgenerator.M51 12KB
signalgenerator.hex 2KB
signalgenerator.OBJ 9KB
signalgenerator.lnp 78B
STARTUP.OBJ 749B
STARTUP.A51 6KB
signalgenerator.plg 227B
signalgenerator.uvproj 13KB
signalgenerator_uvproj.bak 0B
ad0804电压显示.DSN 121KB
Last Loaded ad0804电压显示.DBK 121KB
signalgenerator.uvopt 55KB
STARTUP.LST 14KB
ad0804电压显示.PWI 742B
signalgenerator.LST 7KB
signalgenerator.c 2KB
signalgenerator 9KB
共 18 条
- 1
资源评论
fustar1010
- 粉丝: 2
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功