大佬们,想问一下关于上位机lab传输数据给51单片机,单片机进行DA转换的问题。DA单独调试的时候可以成功,换成上位机发送数据存进数组,数组里的数据DA转换示波器就没反应了。想着可能是数组里面的元素是十六进制的问题,之前单独调试DA转换常规十进制数的时候,示波器上面可以显示波形。(单片机用的是stc8、工作频率22.1184M、DA转换用的是TLC5620)在此想请教大佬们几个问题:1、DA转换不能转换十六进制的数吗?比如说0X55?
2、如何要将数组类型进行转换,十六进制数组怎么转换为十进制数组呢?比如 unsigned char a[]={0X55,0X44,0X33,0X22}转为unsigned char b[]={85,68,51,34}。
3、这里想要实现2ms从上位机实时发送数据单片机,单片机实时进行DA转换2 ms输出连续波形,该怎么做呢? Labview 需要安装类似rt 驱动吗?
希望大佬们能帮忙解答一下。非常感谢
单片机部分代码贴上。
#include <STC8.H>
#include<intrins.h>
#include "delay.h"
#include "uart.h"
unsigned int count,state;
//定义I/O端口
sbit CLK=P1^0; //串行输数据
sbit DAT=P1^1; //串行时钟,
sbit LOAD=P1^2; //串行数据装载,下降沿有效
sbit LDAC=P1^3; //DAC更新锁存控制,下降沿有效
void Timer0Init(void)
{
AUXR |= 0x80; |