|
問題:首先,程序的目的: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);
}
}
}
}
|
|