proteus仿真0-5V的ADC0808单片机电压表,为什么滑动变阻器滑到中间采样值突变为0,采样最大值为2.5V#include<reg52.h>sbit rs=P2^0;sbit rw=P2^1; sbit en=P2^2; //sbit psb=P1^3;sbit START=P3^4;sbit EOC=P3^3;sbit OE=P3^2;sbi

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 12:58:49
proteus仿真0-5V的ADC0808单片机电压表,为什么滑动变阻器滑到中间采样值突变为0,采样最大值为2.5V#include<reg52.h>sbitrs=P2^0;sbitrw=

proteus仿真0-5V的ADC0808单片机电压表,为什么滑动变阻器滑到中间采样值突变为0,采样最大值为2.5V#include<reg52.h>sbit rs=P2^0;sbit rw=P2^1; sbit en=P2^2; //sbit psb=P1^3;sbit START=P3^4;sbit EOC=P3^3;sbit OE=P3^2;sbi
proteus仿真0-5V的ADC0808单片机电压表,为什么滑动变阻器滑到中间采样值突变为0,采样最大值为2.5V

#include<reg52.h>
sbit rs=P2^0;
sbit rw=P2^1;
sbit en=P2^2;
//sbit psb=P1^3;
sbit START=P3^4;
sbit EOC=P3^3;
sbit OE=P3^2;
sbit ALE=P3^1;
sbit CLK=P3^5;
#define uint unsigned int 
#define uchar unsigned char
uint i;
uchar vol,v;
uchar code table[]={"nit"};
uchar code table1[]={"CO:"};
void delay(uint z)
{
  uint x,y;
  for(x=z;x>0;x--)
   for(y=110;y>0;y--);
}
void write_com(uchar com)    //LCD指令程序
{
  en=0;
  rs=0;
  delay(5);
  P0=com;
  delay(5);
  en=1;
  delay(5);
  en=0;
}
void write_data(uchar dat)   //LCD数据程序
{
  en=0;
  rs=1;
  delay(5);
  P0=dat;
  delay(5);
  en=1;
  delay(5);
  en=0;
}
void write_xianshi(uchar add,int date)
{
 char bai,shi,ge;
 bai=date/100;
 shi=date%100/10;
 ge=date%10;
 write_com(0x80+0x40+add);//显示位置
 write_data(0x30+bai);
 write_data(0x2e);
 write_data(0x30+shi);
 write_data(0x30+ge);
}
void init()
{
  en=0;
  rw=0;          //LCD写操作
  write_com(0x38);//设置16*2显示,5*7点阵,8位数据接口
  write_com(0x0c);//开显示不显示光标
  write_com(0x06);//显示一个数据后光标自动加1
  write_com(0x01);//清屏
for(i=0;i<(sizeof(table)-1);i++)   //第一行输入
{
    write_com(0x80+i);
    write_data(table[i]);
}
for(i=0;i<(sizeof(table1)-1);i++)  //第二行输入
{
    write_com(0x80+0x40+i);
    write_data(table1[i]);
}
}
void start(void)
{
 ALE=1;
 delay(1);
 START=1;
 delay(1);
 ALE=0;
 delay(1);
 START=0;
}
void check(void)
{
 while(EOC==1)
 delay(1);
 while(EOC==0)
 delay(1);
 OE=1;
 delay(1);
 vol=P1;
 OE=0;
}
void deal(void)
{
 if(vol>=251)
  vol=250;
  v=vol*2;
}
void timer0( ) interrupt 1 //定时器0工作方式1
{
  TH0=0xff;   //定时时间高八位初值
  TL0=0xfe;   //定时时间低八位初值
  CLK=!CLK;     //取反
}
void main()
{
 TMOD=0X01;     //定时器中断0
 CLK=0;      //脉冲信号初始值为0
 TH0=0xff;   //定时时间高八位初值
 TL0=0xfe;   //定时时间低八位初值
 EA=1;      //开CPU中断
 ET0=1;      //开T/C0中断
 TR0=1;
  init();
  while(1)
 {
  start();
  check();
  deal();
 write_xianshi(5,v);
 }
}

proteus仿真0-5V的ADC0808单片机电压表,为什么滑动变阻器滑到中间采样值突变为0,采样最大值为2.5V#include<reg52.h>sbit rs=P2^0;sbit rw=P2^1; sbit en=P2^2; //sbit psb=P1^3;sbit START=P3^4;sbit EOC=P3^3;sbit OE=P3^2;sbi
#include
sbit rs=P2^0;
sbit rw=P2^1;
sbit en=P2^2;
//sbit psb=P1^3;
sbit START=P3^4;
sbit EOC=P3^3;
sbit OE=P3^2;
sbit ALE=P3^1;
sbit CLK=P3^5;
#define uint unsigned int
#define uchar unsigned char
uint i;
//uchar vol,v;----把这行,改成下面两行
uchar vol;
uint v;
//---------后面的,都不用改动
uchar code table[]={"nit"};
……
试试看.
------------------------------
说明:
void deal(void)
{
if(vol>=251)
vol=250;
v=vol*2;-----就是这句,超出了 v 的范围.
}

Proteus仿真正负5V电源电源,输出正5V有,没有输出负5V的 proteus 交流电源仿真在哪里的 proteus仿真图的电阻不管调 求220V转5V 3V 直流稳压电源电路图请上传 用proteus 7 做好的 仿真文件 我仿真通过就去买元件做啦!protel99 做的也可以- - 最好是 proteus 7http://zhidao.baidu.com/question/415115512.html 这个图 就可以 你有 超声波测距的 Proteus的仿真程序吗? proteus仿真中电压表显示nan是什么意思就是这样的. proteus 仿真ds18b20读出的温度一直为零 PROTEUS仿真时引脚旁边的灰点是什么意思 proteus 正负5V电源 proteus 正负5V电源 proteus仿真电路中电阻后面的三角形是什么?在proteus中怎样画出来? Proteus使用问题1、使用Proteus仿真,如何设置显示电流 流向?2、Proteus仿真通过,如果不存在人为错误,实际焊接的电路是否绝对可行? 用单片机检测电流的大小(500ma左右),有proteus仿真就更好了.不想对原电流产生太大影响,电压放大成0-5V后给ADC0809.放大电路是什么样的?最好能画出电路图,表明参数,我是新手, proteus仿真过程中器件一端要求接12v电压怎么处理? 用MC34063将5V电压转为6V在线计算器提示“当前输入电压下不适合配置此输出电压”,我用proteus仿真能得到6V但是接负载就掉到4.2V,后来我改变8脚的电阻值,将180欧改为47欧就OK,接负载也是6V,请问 proteus仿真0-5V的ADC0808单片机电压表,为什么滑动变阻器滑到中间采样值突变为0,采样最大值为2.5V#include<reg52.h>sbit rs=P2^0;sbit rw=P2^1; sbit en=P2^2; //sbit psb=P1^3;sbit START=P3^4;sbit EOC=P3^3;sbit OE=P3^2;sbi 在用proteus与keil链接仿真的时候,运行proteus时提示No program code loaded ,不知道是什么原因, proteus中,5v稳压电源怎么找?