久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5869|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

[求助]求教51單片機(jī)問題,高人指點!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:17874 發(fā)表于 2009-10-7 01:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 電路的設(shè)想很簡單,就是用51控制ADC0809采集數(shù)據(jù),再將數(shù)據(jù)通過串口傳到電腦里。

附件是設(shè)計的電路圖,從網(wǎng)上載的,沒有串口那一塊電路(因為串口那一路比較簡單):



然后是根據(jù)電路圖寫的程序:
#include"regx52.h"
 
#define uchar unsigned char

sbit ST=P1^1;
sbit EOC=P1^0;
sbit OE=P1^2;
sbit CLK=P1^3;
sbit ADDCS=P1^4;
 
uchar AD_DATA/*,CHECKSEND,CHECKBACK*/;                  //保存IN0和IN1經(jīng)AD轉(zhuǎn)換后的數(shù)據(jù)
//uchar sendflag;                 //發(fā)送許可

xdata uchar sendstr;
 
/**********延時函數(shù)************/
void delay(uchar i)
{
 uchar j;
 while(i--)
 {
  for(j=125;j>0;j--)
  ;
 }
}
 
/*********系統(tǒng)初始化***********/
                       
void init()
{
  EA=1;                     //開總中斷
 
  TMOD=0x22;                //設(shè)定T0、T1定時器工作方式    
 
  TH0=0xff;                 //利用T0中斷產(chǎn)生CLK信號
  TL0=0xff;
  TR0=1;  
  ET0=1;                    //開啟T0中斷
 
  ST=0;
  OE=0;
 
  TH1=0xfa;                    //利用T1產(chǎn)生串口中斷  
  TL1=0xfa;
  TR1=1;                    
  ET1=1;                    //開啟T1中斷

  SCON=0x50;                //串行口工作在方式1
  PCON=0x40;                //bps增倍

  ES=0;                     //禁止串行中斷
  TI=0;                        //串行中斷發(fā)送禁用
  RI=0;                     //串行中斷接收禁用
//  sendflag=1;                //初始允許發(fā)送
}

/*****************通信函數(shù)************/
void send(uchar databuff)
{
  ES=1;  
  SBUF=databuff;            //發(fā)送數(shù)據(jù)
  while(!TI)
   ;                        //等待發(fā)送結(jié)束
  TI=0;
  ES=0;
}

/*void recieve(void)
{
  ES=1;
  CHECKBACK=SBUF;
  while(!RI)
   ;
  RI=0;
  ES=0;
} */

/***********AD轉(zhuǎn)換函數(shù)**********/
void AD()
{
 ST=0;
 ADDCS=0;                  //選擇通道IN0
 delay(5);
 ST=1;                    //啟動AD轉(zhuǎn)換
 delay(5);
 ST=0;
 while(EOC==0)
   ;
 OE=1;
 AD_DATA=P2;
 OE=0;
}

/***********T0、T1中斷服務(wù)程序************/
void timer0(void) interrupt 1
{
  CLK=~CLK;
  AD();
}

void timer1(void) interrupt 2
{
//  recieve();
//  if(CHECKBACK^CHECKSEND==0)
//  {
//   sendflag=1;
//  }
    sendstr=AD_DATA;
    send(sendstr);                                                                                                                           
}


/*****************主函數(shù)**************/

void main()
{
 init();
 while(1)
 {
//   AD();
//   sendstr=AD_DATA;
//   if(sendflag){
//    sendflag=0;
//   send(sendstr);
//   }
/*   else
   {
    sendflag=0;
    send(CHECKSEND);
   }     */
 }
}
================================================
問題在于,上電后,ADC0809壓根不工作,所以c51傳給串口的都是一堆亂碼

不知道是什么原因,有人說是因為多出來的串口通信改變了單片機(jī)某些端口的電平,但是還是一直很疑惑,不知道該怎么改電路...

請各位高人指點!

謝謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:18221 發(fā)表于 2009-10-18 16:11 | 只看該作者

幫你頂一下

 

 

回復(fù)

使用道具 舉報

板凳
ID:18297 發(fā)表于 2009-10-20 11:04 | 只看該作者
建議先仿真再搭電路
回復(fù)

使用道具 舉報

地板
ID:18411 發(fā)表于 2009-10-23 09:49 | 只看該作者
你采用的操作方式是靜態(tài)方式,很麻煩,還要注意時序的問題,而且速度慢,建議采用總線方式,就是獻(xiàn)給AD芯片用XBYTE[]定義一個地址XBYTE[。。。] = 。。。啟動轉(zhuǎn)換,書上這種例子很多的
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91久久| 国产精品99999 | 日韩欧美一区二区三区免费观看 | 亚洲一区二区在线视频 | 精品一区二区三区在线观看国产 | 91色视频在线观看 | 九九av| 黄色播放 | 欧美国产日韩精品 | 伊人伊成久久人综合网站 | 国产亚韩| 免费在线视频a | 日本天堂视频在线观看 | 免费一区 | 精品二区| 天堂在线91 | 欧美日韩一区二区视频在线观看 | 亚洲精品成人在线 | 99精品免费在线观看 | 国产伦一区二区三区 | 国产日韩欧美 | 日韩电影中文字幕 | 特级生活片 | 日韩视频精品 | 国产一区二区在线视频 | 国产精品久久久久久久模特 | 久久久这里都是精品 | 欧美www在线 | 亚洲精品国产电影 | 国产成人免费 | 精品粉嫩aⅴ一区二区三区四区 | 美女在线一区二区 | 中文字幕视频三区 | 在线免费观看黄色av | 麻豆一区二区三区 | 日韩中文在线视频 | 免费毛片网站在线观看 | 一级午夜aaa免费看三区 | 熟女毛片 | 蜜桃av鲁一鲁一鲁一鲁 | 国产96色在线 |