首頁(yè) 新聞 > 科技 > 正文

一個(gè)單片機(jī)與PC機(jī)通信的程序

一個(gè)單片機(jī)與PC機(jī)通信的程序,pc機(jī)程序用c語(yǔ)言來(lái)編寫,單片機(jī)程序用匯編語(yǔ)言來(lái)編寫

1. PC機(jī)編程PC采用Toubr C 進(jìn)行編寫。程序如下:#include#defineport0x3f8int ch[15];main (){int a;int i,j;int b[6]={88,15,38,26,20,0};char c;clrscr();outportb(port+3,0x80);outportb(port,0x0C);outportb(port+1,0x00);outportb(port+3,0x03);outportb(port+1,0x00);inportb(port+5);{printf("\t\tsend data or receive data: (s or r?)\n\n\n");c=getchar();switch(c){case ’s’:case ’S’:{while(!(inportb(port+5)&0x20));outportb(port,0x01);for(i=0;i<6;i++){a=b[i];while(!(inportb(port+5)&0x20))delay(100);outportb(port,a);printf("%d\n",a);while(!(inport(port+5)&1));ch[i]=inport(port);}delay(10);for(j=0;j<8;j++)printf("\n%d\n",ch[j]);getch();break;}case’r’:case’R’:{while(!(inportb(port+5)&0x20));outportb(port,0x02);for(j=0;j<9;j++){while(!(inportb(port+5)&1));ch[j]=inportb(port);}for(j=0;j<9;j++)printf("\n %d\n",ch[j]);getch();break;}}}}2. 單片機(jī)與PC機(jī)通信之單片機(jī)程序LISTP=16F876#INCLUDEP16F876.INCCBLOCK 0X24COUNTTEMPENDCORG0X0000NOPSTARTGOTOMAINORG0X020MAINMOVLW0X30;將RAM單元初始化MOVWFFSRBCFSTATUS,RP0MOVLW0X22MOVWFCOUNTINTRAMMOVFCOUNT,0MOVWFINDFINCFCOUNT,1INCFFSR,1BTFSSFSR,7GOTOINTRAMBANKSELTXSTA;波特率設(shè)置為9 600 bpsMOVLW0X19MOVWFSPBRG;異步高速方式MOVLW0X04MOVWFTXSTABCFSTATUS,RP0MOVLW0X80;串行口使能MOVWFRCSTAMOVLW0X30MOVWFFSRBSFRCSTA,CREN;接收允許BSFSTATUS,RP0BSFTXSTA,TXEN;發(fā)送允許BCFSTATUS,RP0WAITBTFSSPIR1,RCIF;接收PC機(jī)命令GOTOWAITMOVFRCREG,0MOVWFTEMPMOVWFINDFINCFFSRDECFSZTEMP;接收到的數(shù)據(jù)為1,則接收GOTOTXW;否則發(fā)送數(shù)據(jù)MOVLW0X06MOVWFTEMPWAIT1BTFSSPIR1,RCIF;接收一個(gè)數(shù)據(jù)GOTOWAIT1MOVFRCREG,0MOVWFCOUNTMOVWFTXREGLOOPTXBTFSSPIR1,TXIF;將接收到的數(shù)據(jù)送回PC機(jī)GOTOLOOPTXMOVFCOUNT,0MOVWFINDFINCFFSRDECFSZTEMPGOTOWAIT1GOTOOVER;處理完畢TXWMOVLW0X09;向PC機(jī)發(fā)送9個(gè)數(shù)據(jù)MOVWFTEMPMOVLW0X30MOVWFFSRTXW0MOVFINDF,0MOVWFTXREGINCFFSRTXW1BTFSSPIR1,TXIFGOTOTXW1DECFSZTEMPGOTOTXW0OVERBCFRCSTA,CREN;通信任務(wù)完成,關(guān)接受和發(fā)送允許BSFSTATUS,RP0BCFTXSTA,TXENBCFSTATUS,RP0CALLLED;調(diào)用顯示子程序,將發(fā)送(或接收)的數(shù)據(jù)顯示出來(lái)END;程序完

關(guān)鍵詞: 單片機(jī)PC機(jī)通

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2018 創(chuàng)投網(wǎng) - mallikadua.com All rights reserved
聯(lián)系我們:33 92 950@qq.com
豫ICP備2020035879號(hào)-12