|
问题:首先,程序的目的:1.通过改变DAC0802输出的电流大小,进而改变LED亮度。2.通过放大器,观察放大后的电压波形。
问题1:程序通过控制val从0到255变化,然后对P0口进行赋值,从而让DAC0832输出可变的电流。但是不知道什么原因,仿真里的电流输出为0。
问题2:此外,关于proteus中的741,我对这个放大器不是很了解,我不知道它的几个端口的作用,在网上也没有搜到这个741的常见解法。我只知道它是一个放大器,可以将电流的变化转换成电压的变化,但是现在的现象是电流保持为0,输出电压接近为4V。
从图中可以看出灯亮完全是因为电流表一边接的地。
下面是程序:
#include <reg51.h>
#include "Delay.h"
#define uint unsigned int
#define uchar unsigned char
sbit dawr = P2^1;
sbit dacs = P2^0;
void main(void)
{
uchar val = 0, flag = 0;
dacs = 0;
dawr = 0;
while (1) {
if (flag == 0) {
val += 5;
P0 = val;
if (val == 255) {
flag = 1;
Delay_ms(100);
}
}
else {
val -= 5;
P0 = val;
if (val == 0) {
flag = 0;
Delay_ms(100);
}
}
}
}
|
|