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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8202|回復: 2
打印 上一主題 下一主題
收起左側

基于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)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:567677 發表于 2019-6-20 11:34 | 只看該作者
給的代碼都不對應好不好
回復

使用道具 舉報

板凳
ID:493455 發表于 2019-6-21 14:02 | 只看該作者
本帖最后由 捂耳聽風 于 2019-6-22 09:12 編輯

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

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表