单片机串口初始化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;}

相关文档
最新文档