仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
B9}AX[WT)W[QT323AH1JAW8.png (210.17 KB, 下載次數(shù): 72)
下載附件
2019-6-15 22:03 上傳
實(shí)驗(yàn)要求
單片機(jī)輸出的數(shù)字量D0~D7加到DAC0832的輸入端,用虛擬直流電壓表測(cè)量DAC0832的電流輸出經(jīng)運(yùn)放LM358N的IV轉(zhuǎn)換后的電壓值,并使用虛擬直流電壓表查看輸出電壓的變化。仿真運(yùn)行,可看到虛擬直流電壓表測(cè)量的電壓在-2.5V~0V范圍內(nèi)變化。如果由于電壓表太小顯示的電壓值不清楚,可用鼠標(biāo)滾輪放大電路原理圖。
實(shí)驗(yàn)?zāi)康?/font>
掌握單片機(jī)與DAC0832的接口設(shè)計(jì)和軟件編程。知識(shí)點(diǎn)
DA轉(zhuǎn)換器DAC0832的性能、內(nèi)部結(jié)構(gòu)以及工作原理。DAC0832是采用先進(jìn)的CMOS工藝制成的單片機(jī)電流輸出型8位DA轉(zhuǎn)換器。它采用的是R-2R電阻梯型網(wǎng)絡(luò)完成DA轉(zhuǎn)換。電平
接口與TTL兼容,具有兩級(jí)輸入數(shù)字量緩存。 源程序代碼:
#include "reg52.h" //此文件中定義了單片機(jī)的一些特殊功能寄存器
typedef unsigned int u16; //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;
//--定義使用的IO口--//
sbit PWM=P2^1;
bit DIR;
//--定義一個(gè)全局變量--//
u16 count,value,timer1;
/*******************************************************************************
* 函 數(shù) 名 : Timer1Init
* 函數(shù)功能 : 定時(shí)器1初始化
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Timer1Init()
{
TMOD|=0X10;//選擇為定時(shí)器1模式,工作方式1,僅用TR1打開啟動(dòng)。
TH1 = 0xFF;
TL1 = 0xff; //1us
ET1=1;//打開定時(shí)器1中斷允許
EA=1;//打開總中斷
TR1=1;//打開定時(shí)器
}
/*******************************************************************************
* 函 數(shù) 名 : main
* 函數(shù)功能 : 主函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
Timer1Init(); //定時(shí)器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;
}
}
}
/*******************************************************************************
* 函 數(shù) 名 : Time1
* 函數(shù)功能 : 定時(shí)器1的中斷函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Time1(void) interrupt 3 //3 為定時(shí)器1的中斷號(hào) 1 定時(shí)器0的中斷號(hào) 0 外部中斷1 2 外部中斷2 4 串口中斷
{
TH1 = 0xFF;
TL1 = 0xff; //1us
timer1++;
count++;
}
0.png (12.99 KB, 下載次數(shù): 69)
下載附件
2019-6-16 00:02 上傳
全部資料51hei下載地址:
新建 WinRAR ZIP 壓縮文件.zip
(18.34 KB, 下載次數(shù): 73)
2019-6-15 22:08 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|