|
精密數控直流電流源仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- #include<reg51.h>
- #include<absacc.h> //頭文件,可使用其中定義的宏來訪問絕對地址
- #define dac0832 XBYTE[0X7fff] //定義dac端口地址,P0口為地址的低8位,P2口為地址的高8位,0x7fff讓P2.7=0,其余為1
- unsigned char code shu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f}; //數碼管段碼
- unsigned char code sho[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x7f}; //帶小數點的七段碼
- float s;
- sbit ALE=P3^0; //DAC0832 ALE腳工作脈沖位定義
- sbit START=P3^1; //DAC0832 START位定義
- sbit EOC=P3^2; //轉換結束標志位
- sbit OE=P3^3; //輸出允許位
- sbit SHCP=P2^0; //數碼管驅動芯片(如595)位定義
- sbit DS=P2^1; //同上
- sbit STCP=P2^2; //同上
- sbit P11=P3^5;
- sbit P12=P3^7;
- sbit clk=P2^6; //DAC0832 工作脈沖
- unsigned char j,k,m,n,i,a,l; //定義變量
- unsigned int b;
- void delay(unsigned char t) //延時程序
- {
- while(t--);
- }
- void display() //靜態數碼管顯示程序
- {
-
-
-
- j=0x01; //74HC595 把數據從串口導入輸出,點亮數碼管過程。
- for(i=0;i<8;i++)
- {
- if((sho[m]&j)==0) //帶小數點數組輸出數碼管七段碼。
- {
- DS=0; //移位寄存器的內容到達保持寄存器并從并口輸出,空移位寄存器到輸出寄存器
- }
- else
- {
- DS=1; //邏輯高電平移入移位寄存器狀態0,包含所有的移位寄存器狀態 移入
- }
- SHCP=1;
- SHCP=0;
- j<<=1; //j的數值左移一位
- }
- P12=0; //RD 低電平
- P11=1; //T1 高電平
- STCP=0; //STCP置為上升沿
- STCP=1;
- delay(200);
- j=0x01;
- for(i=0;i<8;i++)
- {
- if((shu[n]&j)==0)
- {
- DS=0; //清空移位寄存器,并行輸出為高阻狀態
- }
- else
- {
- DS=1;
- }
- SHCP=1; //端口下降沿,下降沿移位寄存器數據不變
- SHCP=0;
- j<<=1;
- }
- P11=0; //T1 高電平
- P12=1; //RD 低電平
- STCP=0; //STCP置為上升沿
- STCP=1;
- delay(200); //調用延時程序
- }
-
- void main() //主函數
- {
- P2=0X87;
- TMOD=0X20; //定時器1初始化
- TH1=0X06;
- TL1=0X06;
- EA=1; //總中斷允許
- ET1=1;
- TR1=1;
- while(1) //循環程序
- {
- ALE=1; //DAC0832地址鎖存脈沖
- ALE=0;
- //DAC0832 開始轉換脈沖
- START=1; //ADC0808脈沖,置 START引腳為下降沿。
- START=0; //ST下降沿,開始進行模數轉換。
- while(EOC==0); //等待轉換完畢, A/D轉換結束信號,輸出,當A/D轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。
- OE=1; //開始讀,數據輸出允許信號,輸入,高電平有效。當A/D轉換結束時,此端輸入一個高電平,才能打開輸出三態門,輸出數字量。
- k=P1; //讀數據,數據從ADC0808 讀入 AT89C51
- a=P1; //讀數據, 轉換好的數據存放在P1口。
- b=a*3.9; //平衡模數轉換輸出的數值用來通過單片機進行給數碼管顯示。
- m=b%1000/100; //取千位數
- n=b%100/10; //取百位數
- //l=b%1000/100/10 //取十位數
- dac0832=k;
-
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
數控直流穩壓電源proteus仿真 程序資料.zip
(108.47 KB, 下載次數: 224)
2017-5-24 13:34 上傳
點擊文件名下載附件
|
|