求救:有关凌阳61和labview的串口通信
如下是我的下位机的程序:**********************************************定义部分**************************************************
.DEFINE P_ADC_MUX_Ctrl 0x702b
.DEFINE P_ADC_MUX_DATA 0x702C
.INCLUDE hardware.inc
.ISRAM
.PUBLIC chanal_data
chanal_data:
.DW 2 DUP(?)
.RAM
.var AD_RESULT;
*******************************************初始化,主函数***********************************************
.CODE
.PUBLIC _main
_main:
_L_INIT:
int off;
r1=0x0700;
=r1
=r1;
r1=0x0000;
=r1
r1 = 0x0480;
=r1;
r1 = 0x0400;
= r1;
r1 = 0x0000;
= r1;
r1 = 0x0000; //设置波特率为9600bps
= r1;
r1 = 0x0005;
= r1;
r1 = 0x0000;
r4 = 0x00C0; //使能输入和输出
= r1;
= r4;
r1 = 0xefff; //设置定时器2s
= r1;
r1 = 0x0005;
= r1;
r1 = 0x1000;
[ P_INT_Ctrl] = r1;
int IRQ;
loop:
R1 = 0x0001;
= R1 ;
call _F_UART_Read;
goto loop;
***********************************************接受模块********************************************
.public _F_UART_Read
_F_UART_Read:
L_Check_RxRDY:
R1 = 0x0001;
= R1 ;
r2 = ; //检测是否有数据接收
r2 &= 0x0080;
JZ L_Check_RxRDY;
r1 = ; //接收数据
cmp r1,0x0000;
je out;
cmp r1,0x0001;
je out1;
cmp r1,0x0002;
je out2;
jne out3;
out:
r3=0x0100;
=r3; //做动作
retf;
out1:
r3 = 0x0200;
=r3; //做动作
retf;
out2:
r3=0x0400;
=r3; //做动作
retf;
out3:
r3=0x0000;
=r3; //做动作
retf;
****************************************************************发送模块*******************************************
.PUBLIC _F_UART_Write
_F_UART_Write:
L_Check_TxRDY:
R1 = 0x0001;
= R1 ;
r2 = ;
r2 &= 0x0040;
JZ L_Check_TxRDY;
L_Clear:
R2 = 0x0000
R3=chanal_data
L_Chanal:
CMP R2, 0x0002
JE _tiao;
R2+=1
= R2
R1 = 0x0001
= R1
call L_AD
=R1
R1=0
L_DelayLoop:
R4 = 0x0001;
= R4;
R1+=1
JNZ L_DelayLoop
JMP L_Chanal
_tiao:
retf;
*******************************************AD子模块************************************
L_AD: //AD
R1 =
TEST R1,0x8000
JZ L_AD
R1 =
R1 = R1 LSR 4
R1 = R1 LSR 2
= R1
R4 = ;
= r4;
R1 = R1 LSR 4
R1 = R1 LSR 4
R1 &=0x0003
= R1
R4 = ;
= r4;
retf;
*************************************************中断***************************************************
.TEXT
.PUBLIC _IRQ1;
_IRQ1:
int off
push r1,r5 to ;
call _F_UART_Write;
r1 = 0x1000;
= r1;
pop r1,r5 from ;
int irq;
reti;
硬件部分是通过串口电平转换电路连接61单片机的b07和b10口,请问如果用labview做上位机通过串口发送程序,应该怎么写啊?下位机要接受一个四位16进制的数,应该怎么通过串口来实现啊?急用,谢谢!
[此贴子已经被作者于2006-5-29 10:14:16编辑过]
<P>呵呵,不好意思,凌阳的单片机没有用过!</P>
<P>不过相信单片机都差不多原理,可以看看这个书:</P>
<P><a href="http://www.cpubbs.com/old_bbs/dispbbs.asp?boardID=4&ID=14252&page=1" target="_blank" >http://www.cpubbs.com/old_bbs/dispbbs.asp?boardID=4&ID=14252&page=1</A></P>
<P>图片上方有下载链接的,免费下载的!</P>
页:
[1]