|
大佬們,想問(wèn)一下關(guān)于上位機(jī)lab傳輸數(shù)據(jù)給51單片機(jī),單片機(jī)進(jìn)行DA轉(zhuǎn)換的問(wèn)題。DA單獨(dú)調(diào)試的時(shí)候可以成功,換成上位機(jī)發(fā)送數(shù)據(jù)存進(jìn)數(shù)組,數(shù)組里的數(shù)據(jù)DA轉(zhuǎn)換示波器就沒(méi)反應(yīng)了。想著可能是數(shù)組里面的元素是十六進(jìn)制的問(wèn)題,之前單獨(dú)調(diào)試DA轉(zhuǎn)換常規(guī)十進(jìn)制數(shù)的時(shí)候,示波器上面可以顯示波形。(單片機(jī)用的是stc8、工作頻率22.1184M、DA轉(zhuǎn)換用的是TLC5620)在此想請(qǐng)教大佬們幾個(gè)問(wèn)題:1、DA轉(zhuǎn)換不能轉(zhuǎn)換十六進(jìn)制的數(shù)嗎?比如說(shuō)0X55?
2、如何要將數(shù)組類型進(jìn)行轉(zhuǎn)換,十六進(jìn)制數(shù)組怎么轉(zhuǎn)換為十進(jìn)制數(shù)組呢?比如 unsigned char a[]={0X55,0X44,0X33,0X22}轉(zhuǎn)為unsigned char b[]={85,68,51,34}。
3、這里想要實(shí)現(xiàn)2ms從上位機(jī)實(shí)時(shí)發(fā)送數(shù)據(jù)單片機(jī),單片機(jī)實(shí)時(shí)進(jìn)行DA轉(zhuǎn)換2 ms輸出連續(xù)波形,該怎么做呢? Labview 需要安裝類似rt 驅(qū)動(dòng)嗎?
希望大佬們能幫忙解答一下。非常感謝
單片機(jī)部分代碼貼上。
#include <STC8.H>
#include<intrins.h>
#include "delay.h"
#include "uart.h"
unsigned int count,state;
//定義I/O端口
sbit CLK=P1^0; //串行輸數(shù)據(jù)
sbit DAT=P1^1; //串行時(shí)鐘,
sbit LOAD=P1^2; //串行數(shù)據(jù)裝載,下降沿有效
sbit LDAC=P1^3; //DAC更新鎖存控制,下降沿有效
void Timer0Init(void)
{
AUXR |= 0x80; |
|