输出控制的C编程 .pptx
- 189****0801个人认证 |
- 2021-11-30 发布|
- 1.45 MB|
- 28页
输出控制的C编程;输入
寄存器; DAC0832由8位输入寄存器、8位DAC寄存器、8位D/A转换器所构成。DAC0832中有两级锁存器,第一级即输入寄存器,第二级即DAC寄存器,因此能够工作在双缓冲方式下,如此在输出模拟信号的同时能够采集下一个数字量,如此能够有效地提高转换速度。另外能够在多个D/A转换器同时工作时,利用第二级锁存信号实现多路D/A的同时输出。;0832引脚功能;二、DAC0832与单片机的接口;锯齿波;三角波;梯形波(1):调用延时程序维持水平部分;梯形波(2):用内部定时器维持水平部分;void intt0() interrupt 1 //定时1ms
{ TH0=-500/256; TL0=-500%256; ms++; if(ms==1000){ms=0;k=1;} //定时1sec
};②双缓冲方式接口电路
将两级寄存器的控制信号分别接,输入寄存器线选译码地址bFFFH,DAC寄存器线选译码地址7FFFH。;+5V; 两片0832的输入寄存器各占一个单元地址,而两个DAC寄存器占用同一单元地址,实现的方法是把两个传送允许信号 相连然后接同一线选端。; 将data1和data2数据同时转换为模拟量的C51函数dacdb、c如下:;8、2 步进电机控制;工作方式(三种):;二、步进电机与单片机的接口;#include <reg51、h>
#define DL 500 //延时时间
#define DR 1 //转动方向
#define uchar unsigned char
#define uint unsigned int
void delayms(uint x); //定义延时函数
void ctrl(bit cf,uint n); //定义电机转动函数
main()
{ ctrl(DR,100);
}
void delayms(uin