全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版

单片机实验课时 AD转换一直出错求大神指点

[复制链接]
1852 0

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
程序显示的一直是乱码,初步调试一下 AD的地址好像没有赋值上,但可以进入中断函数  数码管宣示 但显示的是乱码  求大神指点到底错在哪  附件里有protues接线图
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define        AD 0x7f00
sbit CLOCK=P3^5;//给AD一个时钟信号
//uint *p;
uchar code num[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极
//uchar code num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极
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转换器
   *((uint*)AD)=0;
   delay(10);//延时等待执行中断程序
   }

}
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=*((uint*)AD);//读取转换值
   //k=*p;//读取转换的值
   k=(uint)k*1.0/255*5000;//把转换电压用毫伏表示
   for(i=0;i<10;i++)  //显示转换值
   {
      P1=num[k/1000];P2=0x0e;
      P1=num[k/100%10];P2=0x0d;
      P1=num[k/10%10];P2=0x0b;
      P1=num[k%10];P2=0x07;
   }
}
void int3(void) interrupt 3        //采用定时器给AD一个时钟
{
  TH1=(65536-200)/256;
   TL1=(65536-200)%256;
   CLOCK=~CLOCK;
   return;
}
QQ截图20140930165107.png

dianyabiao.zip

21.45 KB, 下载次数: 0, 下载积分: M币 -5

举报

回复
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

打开支付宝扫一扫,最高立得1212元红包
搜索

图文热点

更多

社区学堂

更多

客服中心

QQ:187196467 服务时间:周一至周日 8:30-20:30

关注我们

关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表