单片机串口初始化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机串口初始化:TMOD=0X20;
TH1=0Xfd;
TL1=0xfd;
PCON=0x00;
TR1=1;
SCON=0x50;
EA=0;
模数转换子程序:
MOV R0,#30H ;设立数据存储区指针
MOV R2, #08H ;设置 2 路采样计数值
SETB IT0 ;设置外部中断 0 为边沿触发方式SETB EA ;CPU 开放中断
SETB EX0 ;允许外部中断 0 中断
MOV DPTR,#FEF8H ;送入地址并指向 IN0
LOOP: MOVX @DPTR, A ;启动 A/D 转换,A 的值无意义HERE: SJMP HERE ;等待中断
中断服务程序:
MOVX A, @DPTR ;读取转换后的数字量
MOV @R0, A ;存入片内RAM 单元
INC DPTR ;指向下一模拟通道
INC RO ;指向下一个数据存储单元DJNZ R2, INT0 ;8 路未转换完,则继续
CLR EA ;已转换完,则关中断
CLR EX0 ;禁止外部中断 0 中断
RETI ;中断返回
INT0: MOVX @DPTR, A ;再次启动 A/D 转换
RETI ;中断返回
判断比较子程序:
CLR C ;清进位位
MOV A, 30H ;取气体传感器值
SUBB A,#90H ;与阀值比较
JNC BAOJIN ;超过值转报警
发送 AT 命令子程序:
for (i=0;i<4;i++)
{hh=&doc0[0] ;发送 ATE0 SBUF=doc0[i];
while(TI==0);TI=0;
delay();
for (j=0;j<4;j++)
{ while(RI==0);RI=0 ;接收 OK mnk[j]=SBUF;
if ((mnk[j]^0x4b)==0)
{ hh=mnk[j];
break;}