
STC89C52單片機是STC公司生產的一種低功耗、高性能CMOS8位微控制器,具有8K字節系統可編程Flash存儲器。STC89C52使用經典的MCS-51內核,但是做了很多的改進使得芯片具有傳統51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。
具有以下標準功能:8k字節Flash,512字節RAM, 32 位I/O 口線,看門狗定時器,內置4KB EEPROM,MAX810復位電路,3個16 位定時器/計數器,4個外部中斷,一個7向量4級中斷結構(兼容傳統51的5向量2級中斷結構),全雙工串行口。另外 STC89C52 可降至0Hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。
DAC0832是8分辨率的D/A轉換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉換控制容易等優點,在單片機應用系統中得到廣泛的應用。D/A轉換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉換電路及轉換控制電路構成。adc0832與單片機連接會有怎么樣的火花呢?透過單片機控制DAC0832讓LED亮滅分析一下。
單片機控制DAC0832讓LED亮滅
52控制DAC0832芯片輸出電流,讓發光二極管D12由滅均勻變到最亮,再有亮變滅,在最亮和最滅的時候蜂鳴器發出報警聲,完成整個周期的時間是控制在5s左右。
#include
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit dawr=P3^6;
sbit dacs=P3^2;
sbit beep=P2^3;
void delayms(uint xms)
{
uint i,j;
for(i=xms;i》0;i--)
for(j=110;j》0;j--);
}
void main()
{
uchar val,flag;
dula=0;
wela=0;
dacs=0;
dawr=0;
P0=0;
while(1)
{
if(flag==0)
{
val+=5;
P0=val;
if(val==255)
{
flag=1;
beep=0;
delayms(100);
beep=1;
}
delayms(50);
}
else
{
val-=5;
P0=val;
if(val==0)
{
flag=0;
beep=0;
delayms(100);
beep=1;
}
delayms(50);
}
}
}
使能D/A的片選,接著使能寫入端。延時50ms,50*51=2551ms,忽略蜂鳴器占用的100ms,約為2.5s,另外半周期同樣為2.5s,共計5s。


為了方便大家更好的學習,您還可以關注暢學電子和EDA的公眾號,每天推送相關知識,希望能對你的學習有所幫助!

