|
精密数控直流电流源仿真原理图如下(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)
|
|