pc計算機與微控制器串列埠通訊源程式下面是乙個微控制器與pc機通訊的程式,pc機程式用c語言來編寫,微控制器程式用組合語言來編寫1.pc機程式設計pc採用toubrc進行編寫。程式如下:#include#defineport0x3f8/*利用串列埠1進行通訊*/intch[15];main();charc;clrscr();outportb(port+3,0x80);/*準備設定波特率*/outportb(port,0x0c);/*波特率設定為9600bps*/outportb(port+1,0x00);outportb(
pc計算機與微控制器串列埠通訊源程式
下面是乙個微控制器與pc機通訊的程式,pc機程式用c語言來編寫,微控制器程式用組合語言來編寫
1. pc機程式設計
pc採用toubr c 進行編寫。程式如下:
#include
#define port 0x3f8 /*利用串列埠1進行通訊*/
int ch[15];
main ()
;char c;
clrscr();
outportb(port+3,0x80); /*準備設定波特率*/
outportb(port,0x0c); /*波特率設定為9 600 bps*/
outportb(port+1,0x00);
outportb(port+3,0x03); /*8位資料位,奇偶檢驗,1位停止位*/
outportb(port+1,0x00); /*關中斷*/
inportb(port+5); /*讀一次線路狀態暫存器,使其復位*/
delay(10);
for(j=0;j<8;j++) /*顯示接收的回送資料*/
printf("n%dn",ch[j]);
getch();
break;
}case』r』: /*接收資料*/
case』r』:
for(j=0;j<9;j++)
printf("n %dn",ch[j]);
getch();
break;}}
}}2. 微控制器與pc機通訊之微控制器程式
list p=16f876
#include p16f876.inc
cblock 0x24
count
temp
endc
org 0x0000
nopstart goto main
org 0x020
main movlw 0x30 ;將ram單元初始化
movwf fsr
bcf status,rp0
movlw 0x22
movwf count
intram movf count,0
movwf indf
incf count,1
incf fsr,1
btfss fsr,7
goto intram
banksel txsta ;波特率設定為9 600 bps
movlw 0x19
movwf spbrg ;非同步高速方式
movlw 0x04
movwf txsta
bcf status,rp0
movlw 0x80 ;序列口使能
movwf rcsta
movlw 0x30
movwf fsr
bsf rcsta,cren ;接收允許
bsf status,rp0
bsf txsta,txen ;傳送允許
bcf status,rp0
wait btfss pir1,rcif ;接收pc機命令
goto wait
movf rcreg,0
movwf temp
movwf indf
incf fsr
decfsz temp ;接收到的資料為1,則接收
goto txw ;否則傳送資料
movlw 0x06
movwf temp
wait1 btfss pir1,rcif ;接收乙個資料
goto wait1
movf rcreg,0
movwf count
movwf txreg
looptx btfss pir1,txif ;將接收到的資料送回pc機
goto looptx
movf count,0
movwf indf
incf fsr
decfsz temp
goto wait1
goto over ;處理完畢
txw movlw 0x09 ;向pc機傳送9個資料
movwf temp
movlw 0x30
movwf fsr
txw0 movf indf,0
movwf txreg
incf fsr
txw1 btfss pir1,txif
goto txw1
decfsz temp
goto txw0
over bcf rcsta,cren ;通訊任務完成,關接受和傳送允許
bsf status,rp0
bcf txsta,txen
bcf status,rp0
call led ;呼叫顯示子程式,將傳送(或接收)的資料顯示出來
end ;程式完
微控制器中段程式 微控制器程式的存放
1 對於燒錄在微控制器裡面的程式,程式的 段,data段,bss段,rodata段等都存放在微控制器的flash中。當微控制器上電後,初始化彙編 將data段,bss段,複製到微控制器的ram中,並建立好堆疊,開始呼叫程式的main函式。以後,便有了程式儲存器和資料儲存器之分,程式執行時從flash...
微控制器中段程式 51微控制器中斷程式大全
例項 用定時器 t0查詢方式p2口 位控制led 閃爍 include 包含微控制器暫存器定義的標頭檔案 void main void ea 1 開總中斷 et0 1 定時器t0 中斷允許 tmod 0x01 使用定時器 t0的模式 th0 65536 46083 256 定時器t0 的高位賦初值 ...
PC端微控制器監視系統
我用的是串列埠傳輸,其實如果做成usb應該會更方便一點。我監視的點並不多,輸入16個,輸出16個,這樣我用了兩個16位變數就行了。uint16 t xstatus uint16 t ystatus 針對輸入的話我們可以直接讀,輸出呢?如果需要輸出的話就對ystatus進行位賦值,然後在乙個定時器1m...