标签:准备 芯片 img type 接口 c51 png 输出 image
————————————————————————————————————————————
D/A转换器
工作方式:
DAC0832(2)的输出锁存器地址0BFFFH
两个DAC0832的DAC寄存器地址同为7FFFH
————————————————————————————————————————————
基于DAC0832的三角波发生器实验
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
实验说明:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
接线说明:
DAC0832 |
DI0-DI7 |
89C51 |
P0.0-P0.7 |
8位数据输入输出 |
|
CS |
|
P3.7/RD |
输入寄存器选择信号 |
|
WR1 |
|
P3.6/WR |
输入寄存器写选通信号 |
|
WR2/XFER/GND*2/ |
其他 |
GND |
WR2和XFER始终低电平 |
|
VREF/VCC/ILE |
|
POWER |
ILE始终允许锁存 |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
实现代码:
1 #include <reg52.h> 2 typedef unsigned char uchar; 3 typedef unsigned int uint; 4 sbit cs = P3 ^ 7; 5 sbit wr = P3 ^ 6; 6 void Delay(uchar m) 7 { 8 while(m--); 9 } 10 void main() 11 { 12 uchar k = 0; //设置k的初始值为0 13 cs = 0; //当CS与WR1端置低电平时做好写数据的准备,只要P0口有数据输出,DAC0832将会转换成模拟信号 14 wr = 0; 15 while(1) //通过输出值在 0-255和255-0之间变化,通过示波器可以看到模拟信号的情况 16 { 17 while(1) //输出值在0-255之间变化 18 { 19 P0 = k++; //输出k且k+1 20 Delay(1); 21 if (k == 0xff) //到达255时结束循环 22 break; 23 } 24 while(1) //输出值在255-0之间变化 25 { 26 P0 = k--; //输出k且k-1 27 Delay(1); 28 if (k == 0x00) //到达0时结束循环 29 break; 30 } 31 } 32 }
标签:准备 芯片 img type 接口 c51 png 输出 image
原文地址:http://www.cnblogs.com/hughdong/p/6974143.html