| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4322 人关注过本帖, 1 人收藏
标题:单片机实验课 keil 和 protues 采用 AD 测电压一直出不了结果不知问题在哪
只看楼主 加入收藏
风车转风车89
Rank: 2
等 级:论坛游民
帖 子:125
专家分:45
注 册:2014-9-15
结帖率:81.82%
收藏(1)
已结贴  问题点数:20 回复次数:1 
单片机实验课 keil 和 protues 采用 AD 测电压一直出不了结果不知问题在哪
单片机的P2.7和wr引脚采用一个或非门与AD的ALE和START相连,单片机的P2.7和RD与AD的OE相连,EOC通过一个非门与单片机的外部中断相连
调试时  p的指向的地址一直是0,k的值也一直是零;
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit CLOCK=P3^5;//给AD一个时钟信号
uint *p;
uchar code num[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void main()
{
   void delay(uint a);
   void int2(void);
   void int3(void);
   IE=0x8C;
   TH1=(65536-200)/256;
   TL1=(65536-200)%256;
   TMOD=0x10;
   TCON=0x44;
   CLOCK=0;
   p=0x7ff8;//指向AD的地址
   while(1)
   {
   *p=0;  //打开AD转换器
   delay(1);//延时等待执行中断程序
   }

}
void delay(uint a)
{
  uchar j;uint i;
  for(i=0;i<a;i++)
  for(j=0;j<333;j++);
}
void int2(void)    interrupt 2
{
   uint k;uchar i;
   k=*p;//读取转换的值
   k=(uint)k*1.0/255*5000;//把转换电压用毫伏表示
   for(i=0;i<100;i++)
   {
      P1=num[k/1000];P2=0x07;
      P1=num[k/100%10];P2=0x0b;
      P1=num[k/10%10];P2=0x0d;
      P1=num[k%10];P2=0x0e;
   }
}
void int3(void) interrupt 3    //外部中断查询
{
  TH1=(65536-200)/256;
   TL1=(65536-200)%256;
   CLOCK=~CLOCK;
   return;
}
搜索更多相关主题的帖子: include 单片机 
2014-09-30 17:11
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:20 
顶一下
2014-10-07 17:16
快速回复:单片机实验课 keil 和 protues 采用 AD 测电压一直出不了结果不知问题 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017959 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved