欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 基于51單片機的DAC0832的D/A轉換Proteus仿真實驗 [打印本頁]

作者: 18690210461    時間: 2019-6-15 22:14
標題: 基于51單片機的DAC0832的D/A轉換Proteus仿真實驗
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


實驗要求
    單片機輸出的數字量D0~D7加到DAC0832的輸入端,用虛擬直流電壓表測量DAC0832的電流輸出經運放LM358N的IV轉換后的電壓值,并使用虛擬直流電壓表查看輸出電壓的變化。仿真運行,可看到虛擬直流電壓表測量的電壓在-2.5V~0V范圍內變化。如果由于電壓表太小顯示的電壓值不清楚,可用鼠標滾輪放大電路原理圖。
    實驗目的
    掌握單片機與DAC0832的接口設計和軟件編程。知識點
    DA轉換器DAC0832的性能、內部結構以及工作原理。DAC0832是采用先進的CMOS工藝制成的單片機電流輸出型8位DA轉換器。它采用的是R-2R電阻梯型網絡完成DA轉換。電平
    接口與TTL兼容,具有兩級輸入數字量緩存。
源程序代碼:
#include "reg52.h"    //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16;   //對數據類型進行聲明定義
typedef unsigned char u8;
//--定義使用的IO口--//
sbit PWM=P2^1;
bit DIR;
//--定義一個全局變量--//
u16 count,value,timer1;
/*******************************************************************************
* 函 數 名         : Timer1Init
* 函數功能     : 定時器1初始化
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void Timer1Init()
{
TMOD|=0X10;//選擇為定時器1模式,工作方式1,僅用TR1打開啟動。
TH1 = 0xFF;
TL1 = 0xff;   //1us
  
ET1=1;//打開定時器1中斷允許
EA=1;//打開總中斷
TR1=1;//打開定時器   
}

/*******************************************************************************
* 函 數 名       : main
* 函數功能   : 主函數
* 輸    入       : 無
* 輸    出      : 無
*******************************************************************************/
void main()
{
Timer1Init();  //定時器1初始化
while(1)
{
  if(count>100)      
  {  
   count=0;
   if(DIR==1)        //DIR控制增加或減小
   {
     value++;
   }   
   if(DIR==0)
   {
     value--;
   }
   
  }
  if(value==1000)
  {
    DIR=0;
  }
  if(value==0)
  {
    DIR=1;
  }
   
  if(timer1>1000)  //PWM周期為1000*1us
  {
   timer1=0;
  }
  if(timer1 <value)
  {
   PWM=1;
  }
  else
  {
   PWM=0;
  }  
}  
}
/*******************************************************************************
* 函 數 名       : Time1
* 函數功能   : 定時器1的中斷函數
* 輸    入       : 無
* 輸    出       : 無
*******************************************************************************/
void Time1(void) interrupt 3    //3 為定時器1的中斷號  1 定時器0的中斷號 0 外部中斷1 2 外部中斷2  4 串口中斷
{
TH1 = 0xFF;
TL1 = 0xff;   //1us
timer1++;
    count++;

}



全部資料51hei下載地址:
新建 WinRAR ZIP 壓縮文件.zip (18.34 KB, 下載次數: 73)

作者: zhaozichu    時間: 2019-6-20 11:34
給的代碼都不對應好不好
作者: 捂耳聽風    時間: 2019-6-21 14:02
本帖最后由 捂耳聽風 于 2019-6-22 09:12 編輯

大佬們,我剛用這個軟件。那個總線怎么畫的啊,我百度找了好久也不知道怎么畫。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1