导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→那位大虾帮忙看看我的程序有什么问题?

* 93370: 那位大虾帮忙看看我的程序有什么问题?

   mcliuwen 
mcliuwen发表的帖子 

 那位大虾帮忙看看我的程序有什么问题?
这是一个51单片机连接ADC0809的转换程序,采用0中断方式,传统连接方式,一片74LS373,两个或非门,一个非门,ADC0809的转换完成信号EOC经非门产生下降沿中断信号给P3.2,两个或非门的一个输出端接在ADC0809的ALE,START端,另一个或非门的输出接在OE上,大家应该很熟悉这种接法.但是运行是显示0后就不动了,程序如下: 

#include   <at89x51.h>  
#include   <absacc.h>  
#define unit unsigned int
#define uchar unsigned char
#define ADC 0x7FF8  //ADC0809的端口地址
sbit led1=P2^0;   //三个数码管的位控端
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
unsigned char ad_data,LED1,LED2,LED3;
unsigned char idata led_data[3];
uchar code led_segment[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x0,0x0};
void delay(unsigned int i)

 while(i)i--;
}
void display(void) //显示子程序
{
 
 LED1=ad_data%10;
 LED2=(ad_data/10)%10;
 LED3=ad_data/100;
 P2=0xff;
 delay(2);

 P1=led_segment[LED1];
 led1=0;
 delay(100);
 led1=1;

 if((LED3==0)&&(LED2==0))LED2=10;
 P1=led_segment[LED2];
 led2=0;
 delay(100);
 led2=1;

 if(LED3==0)LED3=10;
 P1=led_segment[LED3];
 led3=0;
 delay(100);
 led3=1;

}
void ad0808(void) interrupt 0
{
    ad_data=XBYTE[ADC];  //存数
  XBYTE[ADC]=0;  //再次启动AD转换
 
}
void main(void)
{
 EA=1;
 EX0=1;
 IT0=1;
 ad_data=0;
    XBYTE[ADC]=0; //启动AD转换
 while(1)
 { 
  display();  //反复显示直到下一次中断
  
 }
}


发表时间:2006年5月24日19:02:30

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:我有CAN资料 我是兰州交通大学的,我的EMAIL:RAILYANGJIN@163.COM&
[下一篇帖子]:jachen02你好,在线吗,能方便上QQ吗?