1樓:天空之城
把轉換後的資料分成兩個位元組,高位元組在前或者低位元組在前你自己定,我習慣用協議,所以習慣用兩個位元組表示一個資料,然後讓微控制器串列埠把這兩個位元組發出去就行。比如你ad轉換後的資料為十進位制256,則要把十六進位制100通過串列埠發出,先發01 ,再發00,最好遵循一種協議,比如modbus協議,然後把資料放入一個陣列,這個陣列就是遵循modbus的陣列,操作微控制器串列埠傳送陣列就行。如果你轉換的資料時浮點數,最簡單的方法是確定好浮點數的小數點位數,然後將這個浮點數*100倍或者乘1000倍,變為整數傳送,發出後在上位機或者另外微控制器再除這個倍數還原。
給你個mega164p傳送的程式。
串列埠0傳送函式傳送1個字元
void usart_transmit0(unsigned char data) //串列埠0傳送資料,查詢方式
串列埠0傳送函式傳送n個字元
void usart0_transmit_array(unsigned char string,unsigned char n)//n為陣列長度}
2樓:
這個問題其實實現起來不難
這裡面涉及到的外設有:ad轉換,uart兩個
你在網上找下mega16的這兩個外設的例程,會有很多,你略微修改下就好了。
高手給個atmega16微控制器的ad轉換程式,轉換的結果由數碼管輸出。
3樓:匿名使用者
#include
#include
#define uchar unsigned char#define uint unsigned int#include "xianshi.c"
uint mega16_ad()
void main()
for(i=0;i<4;i++)}}
#pragma data:code
const table=;
void delay(uint ms)
}void show(uchar j,uchar k){ddra|=bit(3);
ddra|=bit(4);
ddrb=0xff;
porta|=bit(3);
portb=table[j];
porta&=~bit(3);
portb=0xff;
portb&=~bit(k);
porta|=bit(4);
porta&=~bit(4);
delay(1);
微控制器之間如何實現通訊,微控制器與微控制器之間如何進行序列通訊?
兩個單抄片機之間串列埠襲通訊,如果是用proteus 最簡單 bai了,兩個微控制器的rxd,txd交叉連線就行了。du要是實物最zhi好用rs232連線通訊,距離可以達到幾十米。再遠點距離,用rs485連線通訊。總之,方法很多的,dao也很靈活的。1 微控制器的通訊 有抄序列襲通訊和並行通bai信...
微控制器如何與串列埠模組進行通訊,微控制器如何與8個串列埠模組進行通訊
這個東西我做過,使用串轉並的晶片2552,一個2552帶2個串列埠。你這個方案裡需要接4個2552,現實並口轉串列埠。我做過相關的產品設計,有相關的電路圖和源 需要的話,可以找我聯絡。樓主的問題不明。假設說串列埠模組是現成的,那就要加電路,如果模組是你自己做的,那你可以在每次通訊前發一個地址資料出來...
微控制器如何選購及入門,學習微控制器怎麼入門?
電路原理,模電,數電,通訊原理,微控制器,protell99 高頻率電子線路,訊號系統,數字訊號處理,fpga,dsp等等 我覺得 電路原理,模電,數電,微控制器,是自少要學好的.訊號系統看你是準備往什麼方向走了 通訊方向的話,就要求高很多了.單單玩微控制器的話,要求沒那麼高 的 但是 基本的幾個變...