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

專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

MAX5307程序調試中遇到的時鐘問題

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2010年05月21日   【字體:

調試了好久終于調試出來了啊,原來罪魁禍首竟然是一個時鐘的問題:

DAC0(uchar t)
 { uchar i;
   uint x,y;//控制轉換的命令字節(jié)
   uint p_up;
   p_up=0xffff;
   EN138=1;
   A138=0;
   B138=0;
   //DA_CLK=1;//由于在下降沿輸出,故先拉高
   delay(5);
   for(i=0;i<16;i++)
   {
   DA_DIN=(bit)(p_up&0x8000);//取最高位傳送
   DA_CLK=1;
   delay(10); 
   DA_CLK=0;
   delay(10);
   p_up<<=1;
   }
   EN138=1;//將5307的CS端拉高,準備下次的數(shù)據(jù)輸入.
   A138=1;
   B138=1;
   delay(10);
//********************************************以上將全部DA使能輸出
   EN138=1;
   A138=0;
   B138=0;
   //DA_CLK=1;//由于在下降沿輸出,故先拉高
   delay(5);
   for(i=0;i<16;i++)
   {
   DA_DIN=(bit)(dandc&0x8000);//取最高位傳送
   DA_CLK=1;
   delay(10); 
   DA_CLK=0;
   delay(10);
   dandc<<=1;
   }
   EN138=1;//將5307的CS端拉高,準備下次的數(shù)據(jù)輸入.
   A138=1;
   B138=1;
   delay(5);
 
   //**********************以上部分僅僅完成了數(shù)據(jù)的傳送
 x=0x0010;
 x=x<<t;//用1選中要進行轉換的通道.
 y=0xe000;//啟動轉換的命令
 y=y|x;
 EN138=1;
 A138=0;
    B138=0;
    //DA_CLK=1;//由于在下降沿輸出,故先拉高
 delay(10);
   for(i=0;i<16;i++)
   {
   DA_DIN=(bit)(y&0x8000);//取最高位傳送
   DA_CLK=1;
   delay(10); 
   DA_CLK=0;
   delay(10);
   y<<=1;
   }
   delay(10);
   EN138=1;
   A138=1;
   B138=1; 
 }   以上為正確的程序,嘔心瀝血啊。有看的就要回貼啊,哪怕是罵兩句。

下面把錯誤的程序也貼出來,以供參考學習:

 DAC0(uchar t)
 { uchar i;
   uint x,y;//控制轉換的命令字節(jié)
   uint p_up;
   p_up=0xffff;
   EN138=1;
   A138=0;
   B138=0;
   DA_CLK=1;//由于在下降沿輸出,故先拉高
   delay(5);
   for(i=0;i<16;i++)
   {
   DA_DIN=(bit)(p_up&0x8000);//取最高位傳送
   DA_CLK=0;
   delay(10); 
   DA_CLK=1;
   delay(10);
   p_up<<=1;
   }
   EN138=1;//將5307的CS端拉高,準備下次的數(shù)據(jù)輸入.
   A138=1;
   B138=1;
   delay(10);
//********************************************以上將全部DA使能輸出
   EN138=1;
   A138=0;
   B138=0;
   DA_CLK=1;//由于在下降沿輸出,故先拉高
   delay(5);
   for(i=0;i<16;i++)
   {
   DA_DIN=(bit)(dandc&0x8000);//取最高位傳送
   DA_CLK=0;
   delay(10); 
   DA_CLK=1;
   delay(10);
   dandc<<=1;
   }
   EN138=1;//將5307的CS端拉高,準備下次的數(shù)據(jù)輸入.
   A138=1;
   B138=1;
   delay(5);
 
   //**********************以上部分僅僅完成了數(shù)據(jù)的傳送
 x=0x0010;
 x=x<<t;//用1選中要進行轉換的通道.
 y=0xe000;//啟動轉換的命令
 y=y|x;
 EN138=1;
 A138=0;
    B138=0;
    DA_CLK=1;//由于在下降沿輸出,故先拉高
 delay(10);
   for(i=0;i<16;i++)
   {
   DA_DIN=(bit)(y&0x8000);//取最高位傳送
   DA_CLK=0;
   delay(10); 
   DA_CLK=1;
   delay(10);
   y<<=1;
   }
   delay(10);
   EN138=1;
   A138=1;
   B138=1; 
 }  

兩個程序中綠色的部分為不一樣的地方,其實也就是時鐘的下降沿的時間有沒有延時的問題,由于DA轉換和單片機部分用了光藕隔離所以才會出現(xiàn)這種需要延時的情況,如果沒有隔離的話,完全可以不用延時,因為MAX5307的最高可以達到15MHZ的轉換和數(shù)字傳輸頻率。

轉自:http://blog.ednchina.com/wangchangyun/77054/message.aspx 

關閉窗口

相關文章

主站蜘蛛池模板: 黄网在线观看 | 欧美日韩在线一区二区三区 | 欧美男人亚洲天堂 | 一区二区高清 | 国产有码 | 免费成人高清在线视频 | 在线成人www免费观看视频 | 18gay男同69亚洲网站 | 精品久久久久久久久久久 | 欧美精品一区二区三区四区 在线 | 久久精品在线 | 美女黄网| 91亚洲精品在线 | 久久99精品久久久久久国产越南 | 综合久久网 | 中文在线一区二区 | 粉嫩粉嫩芽的虎白女18在线视频 | 国产一区免费视频 | 亚洲成色777777在线观看影院 | 亚洲草草视频 | 性欧美xxxx | jizz中国日本 | 成人性生交大片免费看中文带字幕 | 精品欧美一区二区在线观看欧美熟 | 天天搞天天操 | 麻豆av在线免费观看 | 亚洲毛片| 久久婷婷国产麻豆91 | 亚洲精品久久久久久一区二区 | 综合二区| 亚洲欧洲一区二区 | 亚洲精品视频一区 | 国产高清在线 | 欧美亚洲视频在线观看 | 国内精品视频在线观看 | 欧美日韩中文字幕 | 国产不卡一区 | 久久久高清 | 成人在线免费 | 欧美黄色大片在线观看 | 日日碰狠狠躁久久躁96avv |