直流稳压源 的程序及仿真图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include //头文件,可使用其中定义的宏来访问绝对地址

#define dac0832 XBYTE[0X7fff] //DAC位置定义,跟据实际原理图而定unsigned char code shu[]=; //数码管码值表

float s;

/*******************DAC0832控制位的定义,视实际原理图而定*************/ 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;

unsigned int b;

void delay(unsigned char t)

{ while(t--);

}

void display() //静态数码管的显示

{

j=0x01;

for(i=0;i<8;i++)

{ if((shu[m]&j)==0)

else

SHCP=1;

SHCP=0;

j<<=1;

}

P12=0;

P11=1;

STCP=0;

STCP=1;

delay(200);

j=0x01;

for(i=0;i<8;i++)

{ if((shu[n]&j)==0)

else

SHCP=1;

SHCP=0;

j<<=1;

}

P11=0;

P12=1;

STCP=0;

STCP=1;

delay(200);

}

void main()

{

P2=0X87;

/////////定时器1初始化//////////////// TMOD=0X20;

TH1=0X06;

TL1=0X06;

EA=1;

ET1=1;

TR1=1;

while(1)

{

//DAC0832地址锁存脉冲

ALE=1;

ALE=0;

//DAC0832 开始转换脉冲

START=1;

START=0;

while(EOC==0); //等待转换完毕

OE=1; //开始读

k=P1; //读数据

a=P1; //读数据

b=a*6;

m=b/1000; //取千位数

n=b%1000/100; //取百位数

dac0832=k;

display(); //数码管显示

}

}

void time() interrupt 3 //DAC0932脉冲{

clk=!clk; //位取反

相关文档
最新文档