谁能帮我解释一下这个单片机程序!急要!!!谢谢!!!

谁能帮我解释一下这个单片机程序!急要!!!谢谢!!!,第1张

由于没有电路,只能猜一下,大概是个智能传感器滑含,通过MAX1240模拟量入口测量某个数据,转换成数字量(2字节)后通过单片机串口以9600波特发送出去。

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:CLR C

MOV SP#60H设置堆栈

MOV SCON,#50H;串口方式判则1,允许接收

MOV PCON,#80H;SMOD=1

MOV TCON,#0

MOV TMOD,#26HT1定时方式2,T0计数方式2

MOV TL1,#0FAH波特率9600

MOV TH1,#0FAH

SETB TR1

SETB EA

CLR TI

MAX1240:MOV A,#00H;MAX1240是12位串行接口ADC,8脚。

MOV R7,#08H;8位

CLR P1.0;应该是接了MAX1240的/CS

CLR P1.1;应该是接了MAX1240的SCLK

NOP

JNB P1.2,$;应该是接了MAX1240的DOUT,此时等待接收数据

SETB P1.0

MSB: CLR P1.0;以下程序段MSB开始接收第一个字节保存在R3

NOP

SETB P1.0

MOV C,P1.2

MOV P1.3,C

RLC A

DJNZ R7,MSB

MOV R3,A

MOV R7,#08H

MOV A,#00H

LSB: CLR P1.0以下程序段LSB开始接收第二个字节保存在R2

NOP

SETB P1.0

MOV C,P1.2

RLC A

DJNZ R7,LSB

MOV R2,A

NOP

SETB P1.1

MOV 41H,R3;收到的测量模拟量转换值转存到41H,40H

MOV 40H,R2

LOOP:MOV A,41H;两字节数据41H40H通过串口发送出去

MOV SBUF,A

ACALL WAIT

ACALL Delay

MOV A,40H这信冲笑句你没有,似乎是少写了

MOV SBUF,A

ACALL WAIT

AJMP MAX1240

WAIT:JNB T1,$

CLR T1

RET

这不培启逗是你的完整程序吧,配卖不完整哦,还有很多地方没有写好!

#include

<stdio.h>

void

main()

{

int

x,y,c

int

max(int

x,int

y)

scanf("%d%d",&x,&y)

c=max(x,y)

printf("%d",c)

}

int

max(int

x,int

y)

{

int

z

if(x>旁知y)

z=x

else

z=y

return(z)

}

插件Maxscript与当前版本3dmax不兼容或者兼容的不好造成的乱模。解决方法:

卸载该斗返插件(必要时手动清除残留文件),然后重启3dmax。 重新安装正确版哗销缓本的插件。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8214199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存