信号源参数设置(U2)
(程序)
#include //52系列单片机头文件
#include
#define uchar unsigned char
#define uint unsigned int
sbit st=P2^2; //定义AD的WR端口
sbit oe=P2^3; //定义AD的RD端口
sbit eoc=P2^4;
sbit ale=P2^5;
sbit lcden=P2^1; //液晶使能端
sbit lcdrs=P2^0;
sbit P3_5=P2^7; //液晶数据命令选择端
uchar code td[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,};
uchar code tongdao[]={"TONGDAO:"};
uchar code dianya[]={"DIANYA:"};
uint a;
int number=0;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delaynms(uint x)
{
uchar i;
while(x-->0)
{
for(i=0;i<125;i++)
{;}}}
void write_com(uchar com)
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcden=0;
write_com(0x38);//设置16X2显示,5X7点阵,8位数据接口
write_com(0x0c);//设置开显示,不显示光标
write_com(0x06);//写一个字符后地址指针加1
write_com(0x01);//显示清零,数据指针清零
}
void display(uchar m,uchar bai,uchar shi,uchar ge) //显示子函数
{
write_com(0x80+0x08);
write_data(48+m);
write_com(0x80+0x40+0x07);
write_data(48+bai);
write_data('.');
write_data(48+shi);
write_data(48+ge);
}
void key()
{
if(!P3_5)//P3.5 是否按下
{
delaynms(20);//延时判误
if(!P3_5)//再一次判断 P3。5 是否按下
{
while(!P3_5);//等待P3。5 为高电平
number++;//通道号显示加一
if(number>7)number=0;//八通道
}
}
}
void main() // 主程序
{
uint a1,a2,a3,i;
init();
write_com(0x80);
for(i=0;tongdao[i]!=0;i++)
write_data(tongdao[i]);
write_com(0x80+0x40);
for(i=0;dianya[i]!=0;i++)
write_data(dianya[i]);
while(1)
{
P3=td[number];
ale=1;
oe=0;//以下三条指令为起动 AD0809
st=0;
st=1;
st=0;
delaynms(1);
while(!eoc);//等待转换结束
P1=0xff;
oe=1;//取出读得的数据
a=P1;
a=a*100/51;
a1=a/100;
a2=a%100/10;
a3=a%10;
display(number,a1,a2,a3);
key();
}
}
本文档为【ADC0808Proteus仿真 用1602显示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。