基于8051单片机和DAC0832的可调直流稳压电源设计的汇编语言
发布网友
发布时间:2022-05-20 18:56
我来回答
共1个回答
热心网友
时间:2023-11-13 02:28
51单片机数控直流电源的设计2:
#include <REG52.H>
#include <STDIO.H>
#include <INTRINS.H>
#include <MATH.H>
#define uchar unsigned char
#define uint unsigned int
#define _Nop() _nop_()
#define DAT P0
uchar go;
sbit K1=P3^1;//
第一个键
sbit K2=P3^2;//
第二个键
sbit K3=P3^3;//
第三个键
sbit WR2 = P3^0; //DAC
的控制端
//
位定义
#define Lcd_Data P0 //
定义数据端口
sbit RS = P2 ^ 0; //
定义连接端口
sbit RW = P2 ^ 1;
sbit E = P2 ^ 2;
sbit Busy = P0 ^ 7;
bit hold=0;
bit _Int=0;
bit k =0;
bit m=0; 惠州学院毕业论文bit fushu=0;
bit q=0;
//
全局变量定义
uint DAdat;//
存放送到
DA
的数据 32uint x;
//uchar ADdat;//
存放从
ADC
读出的数据
uchar vol; //
存放输入电压值
uchar keynum;
uchar kyreg;
uchar temp;//
存放功能状态
uchar hh;
///
数组定义
static code uchar Disp[]="0123456789-";
static code uchar Disp2[]="Error! ";
static code uchar Disp3[]="Vol is:";
//
函数声明
uchar keyread(void); //
读键函数
uchar keyread2(void); //
读键函数
2
uchar keyread3(void); //
读键函数
3
void reADC(void); //AD
反馈读数函数
uchar cmp(uchar ADdat,uchar DAdat); //
反馈比较函数基于51单片机数控直流电源的设计void lcdinit(); // LCD
初始化函数
void lcdcmd(uchar cmd); //LCD
写控制字函数
void lcddata(uchar dat); //LCD
写数据函数
void seDAC(uchar DAdata);// DAC
送数函数
void delay(uchar t); //
延时函数
void extint(void);
void volchange(); //
输出电压自增自减函数
/***********************DAC
送数
*********************/
main() //
主程序
{
unsigned int vol;
uchar i,j,l=0,a=0,b=0,e=0; 33 bit dian=0;
bit o=0,p=0;//
负数标志位、确认标志位
delay(255);
EA=1;
EX0=1;
PX0=1;
IT0=1;
//EX1=1;
//IT1=1;
pp:
a=b=0;dian=0;o=p=0,x=0;
P1=0;
lcdinit();
lcdcmd(0x80);
for(j=0;j<7;j++) //
开机送
0V
并显示到
LCD
{
lcddata(Disp3[j]);
}
seDAC(128);
DAdat=128;
lcddata('0');
lcddata('0');
lcddata('.');
lcddata('0');
lcddata('V');
while(1)
{
while(!k)
{ delay(200); 34 i=keyread();
if(!m)
{
lcdcmd(0x1);
for(j=0;j<7;j++)
lcddata(Disp3[j]);
m=1;
}
else if(i==11){m=0;goto pp;} //
复位追问汇编语言,,,,,,谢谢,c语言没学过,看不懂