无线数据传输微机原理与接口技术专用周报告册.doc_第1页
无线数据传输微机原理与接口技术专用周报告册.doc_第2页
无线数据传输微机原理与接口技术专用周报告册.doc_第3页
无线数据传输微机原理与接口技术专用周报告册.doc_第4页
无线数据传输微机原理与接口技术专用周报告册.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无线数据传输微机原理与接口技术专用周报告册第一章 课题介绍1.1专用周目的专用周的开设以锻炼和提高我们的单片机应用能力为目的,在实际的课题设计中以锻炼我们以下方面的能力:l 单片机硬件电路的基本设计方法;l 单片机简单接口电路的设计(A/D接口、按键显示器接口、通信接口、功率接口和传感器接口等);l 简单应用程序的编写和调试;l 简单控制方法的设计和相应程序的设计方法;l 培养我们的专业创新能力;l 培养我们的专业创新能力;1.2课题要求1.2.1基本内容1) 利用两个小车以及无线传输模块实现点对点的无线数据传输;2) 具体功能:利用一个小车作为主控机,另一个小车作为操作执行机, 用户通过利用主控机上的按键实现控制信号的设定,利用无线模块进行数据的发送和传输,执行小车完成相应的动作。1.2.2扩展内容1) 利用小车上配置的编码盘实现运动速度的控制,可以实现定点位置 到达。2) 加载GPS模块,实现导航控制。第二章 系统分析2.1 硬件分析2.1.1无线数传模块无线数据传输广泛地运用在车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信、数字音频、数字图像传输等领域中。 1) 载波频率:433MHz, 450MHz, 470NHz以及2.4G 等ISM 频点;2) 多种可选的通讯接口:RS-232, TTL, RS-485, USB;3) 传输速率:1200,,2400,4800, 9600, 19200, 38400bps;4) 收发一体,半双工方式;5) 数据格式:8N1/8E1/8O1等;6) 提供方波传输功能,方便非标的编码客户使用;7) 低功耗,本具有休眠功能;8) 8个通讯信道,也可改变;9) 工作温度:-35 +75(工业级);10) 符合EN 300220 and ARIB STD-T67标准;11) 天线阻抗:50(标配为SMA,可定制)。图1是无线数传模块包括无线通信电路部分和接口控制部分。图1无线数传模块实物图2.1.2小车编码盘为实现小车运行状态的检测在车轮上安装如图2所示编码盘。 使用黑白条纹进行检测的方式,可以使用反射式光电传感器进行检测;对于通孔式结构可以使用对射式进行检测。原理是:将编码盘安装在小车的车轮上,车轮运行中,编码盘输出对应的脉冲个数n,根据编码盘原理的条纹数K(通孔数),车轮的周长L,计算运算数度和距离。图2小车编码盘示意图2.2 系统硬件结构2.2.1系统基本硬件结构如图按键与显示主控制小车无线数传模块无线数传模块执行小车编码盘图3系统硬件结构图课题包含两个硬件部分,主控小车包含按键信息输入和显示输出、小车以及无线数传模块,用于用户信息的输入设定。执行小车包含无线数传模块和编码盘输出,实现设定任务的执行和执行情况反馈。2.2.2硬件电路图a电源功能说明:给8051提供电源图b编码盘检测传感器电路图功能说明:通过此电路检测编码盘黑白相间的条纹,输出对应的脉冲个数n,一个编码盘有的条纹数N,编码盘的周长l。通过小车在一段时间内走的路程可以计算出小车的速度。在通过PWM调速,可以控制小车每次前进的距离。图c小车驱动电路图与8051功能说明:控制小车的转动,通过与8051的四个端口相连,可以各置为高、低电平,让小车前进、后退、左转、右转。但不能同时置为低电平,会短路。当8051提供的高电平和低电平占空比不同时,轮子转动速度会跟随着变化。图d按键与显示电路图功能说明:在发射模块中通过按键加减设置发射的信号,使接收端收到不同的信号,执行不同的动作。图e 8051电路图功能说明:单片微型计算机简称为单片机,又称为微型控制器,是微型计算机的一个重要分支。单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O接口和中断系统于同一硅片的器件。80年代以来,单片机发展迅速,各类新产品不断涌现,出现了许多高性能新型机种,现已逐渐成为工厂自动化和各控制领域的支柱产业之一。2.3软件设计2.3.1 程序框图该软件包含两方面的内容,一个是控制主机的管理程序,另一个是执行主机的管理程序。控制主机的程序主要包含数据读取、显示输出、控制数据发送以及执行结果反馈接收等程序模块。执行主机包含执行数据接收、速度与位置信息检测与计算,小车运行控制等程序模块。控制主机与执行主机的流程框图如下图:初始化读入设定数据生成控制信息数据发送初始化接收主机数据检测位置与速度运动控制控制主机、执行主机程序框图第三章 程序设计3.1 发射1.主程序流程图: 开始ORG0000H ;程序入口LJMPMAIN;上电,转主程序ORG0013H;外部中断1入口地址LJMPSERINT1;调用中断子程序ORG0030H;主程序MAIN:MOVSCON,#50H;串行控制寄存器设置MOVPCON,#00H;波特率不倍增MOVTMOD,#20H;定时器T1工作方式2MOVTH1,#0FDH;TH1赋初值MOVTL1,#0FDH;TL1赋初值SETBTR1;定时器T1的启动SETBIT1;开外部中断1的端口SETBEX1;允许外部中断1SETBEA;中断总允许SJMP$;原地等待 SERINT1:LCALLDEL10MS;调用延时JBP2.6,EXIT;判断按键是否按下,是,顺序执行,反之否LCALLDEL10MS;调用延时JNBP2.6,$;判断按键是否弹起,是,顺序执行,反之否MOVDPTR,#TAB;数据指针指向段码表MOVR0,#00H;寄存器R0清零LCALLDISP;调用显示DISP:MOVR1,#50;扫描50次MOVA,R0;R0的值赋给AANLA,#0FH;抹去A的高四位MOVCA,A+DPTR;查表SETBP1.0;关此位选CLRP1.1;开此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐MOVA,R0;R0的值给ASWAPA;高低半字节交换ANLA,#0FH;抹去高四位MOVCA,A+DPTR;查表CLRP1.0;开此位选SETBP1.1;关此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐DJNZR1,KEY;判断R1是否为0,是顺序执行,反之跳转RET;结束 KEY:JBP2.4,KEY1 ;按键按下顺序执行,否跳转到KEY1LCALLDEL10MS;调用延时JNBP2.4,$;判断按键是否弹起,是顺序执行,否等待INCR0;自加CJNER0,#05,DISP;R0等于5顺序执行,否跳转MOVR0,#00H;清零SJMPDISP;显示RET;结束KEY1:JBP2.5,KEY2;按键按下顺序执行,否跳转到KEY2LCALLDEL10MS;调用延时JNBP2.5,$;按键弹起顺序执行,否等待DECR0;自减1CJNER0,#0FFH,DISP;R0=#0FFH,顺序执行,否跳转到显示程序MOVR0,#04H;R0赋值4SJMPDISP;跳转到显示RET;结束KEY2:JBP2.7,DISP;发送键判断LCALLDEL10MS ;调用延时JNBP2.7,DISP ;再次判断MOVA,R0 ;R0的值赋给ALCALLFASHERET ;结束FASHE:MOVSBUF,A;接收到的值赋给AJNBTI,$ ;TI=1顺序执行,否等待CLRTI ;TI置零RET ;结束EXIT:RETI ;中断结束DEL10MS:MOVR4,#2 ;R4赋值2DEL0:DJNZR4,DEL0 ;R4为零顺序执行,否跳转RET;结束TAB:DB03H,9FH,25H,0DH,99H,49H;段码表DB41H,1FH,01H,09H,11H,0C1H;段码表DB63H,85H,61H,71H;段码表DELAY:MOVR5,#50;R5赋值50DEL1:MOVR3,#48;R3赋值48DEL2:DJNZR3,DEL2;R3为0顺序执行,否跳转DJNZR5,DEL1;R5为0顺序执行,否跳转RET;结束END;程序结束调用主程序0000H ;程序入口LJMPMAIN;上电,转主程序ORG0013H;外部中断1入口地址LJMPSERINT1;调用中断子程序ORG0030H;主程序MAIN:MOVSCON,#50H;串行控制寄存器设置MOVPCON,#00H;波特率不倍增MOVTMOD,#20H;定时器T1工作方式2MOVTH1,#0FDH;TH1赋初值MOVTL1,#0FDH;TL1赋初值SETBTR1;定时器T1的启动SETBIT1;开外部中断1的端口SETBEX1;允许外部中断1SETBEA;中断总允许SJMP$;原地等待 SERINT1:LCALLDEL10MS;调用延时JBP2.6,EXIT;判断按键是否按下,是,顺序执行,反之否LCALLDEL10MS;调用延时JNBP2.6,$;判断按键是否弹起,是,顺序执行,反之否MOVDPTR,#TAB;数据指针指向段码表MOVR0,#00H;寄存器R0清零LCALLDISP;调用显示DISP:MOVR1,#50;扫描50次MOVA,R0;R0的值赋给AANLA,#0FH;抹去A的高四位MOVCA,A+DPTR;查表SETBP1.0;关此位选CLRP1.1;开此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐MOVA,R0;R0的值给ASWAPA;高低半字节交换ANLA,#0FH;抹去高四位MOVCA,A+DPTR;查表CLRP1.0;开此位选SETBP1.1;关此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐DJNZR1,KEY;判断R1是否为0,是顺序执行,反之跳转RET;结束 KEY:JBP2.4,KEY1 ;按键按下顺序执行,否跳转到KEY1LCALLDEL10MS;调用延时JNBP2.4,$;判断按键是否弹起,是顺序执行,否等待INCR0;自加CJNER0,#05,DISP;R0等于5顺序执行,否跳转MOVR0,#00H;清零SJMPDISP;显示RET;结束KEY1:JBP2.5,KEY2;按键按下顺序执行,否跳转到KEY2LCALLDEL10MS;调用延时JNBP2.5,$;按键弹起顺序执行,否等待DECR0;自减1CJNER0,#0FFH,DISP;R0=#0FFH,顺序执行,否跳转到显示程序MOVR0,#04H;R0赋值4SJMPDISP;跳转到显示RET;结束KEY2:JBP2.7,DISP;发送键判断LCALLDEL10MS ;调用延时JNBP2.7,DISP ;再次判断MOVA,R0 ;R0的值赋给ALCALLFASHERET ;结束FASHE:MOVSBUF,A;接收到的值赋给AJNBTI,$ ;TI=1顺序执行,否等待CLRTI ;TI置零RET ;结束EXIT:RETI ;中断结束DEL10MS:MOVR4,#2 ;R4赋值2DEL0:DJNZR4,DEL0 ;R4为零顺序执行,否跳转RET;结束TAB:DB03H,9FH,25H,0DH,99H,49H;段码表DB41H,1FH,01H,09H,11H,0C1H;段码表DB63H,85H,61H,71H;段码表DELAY:MOVR5,#50;R5赋值50DEL1:MOVR3,#48;R3赋值48DEL2:DJNZR3,DEL2;R3为0顺序执行,否跳转DJNZR5,DEL1;R5为0顺序执行,否跳转RET;结束END;程序结束串行通信设置0000H ;程序入口LJMPMAIN;上电,转主程序ORG0013H;外部中断1入口地址LJMPSERINT1;调用中断子程序ORG0030H;主程序MAIN:MOVSCON,#50H;串行控制寄存器设置MOVPCON,#00H;波特率不倍增MOVTMOD,#20H;定时器T1工作方式2MOVTH1,#0FDH;TH1赋初值MOVTL1,#0FDH;TL1赋初值SETBTR1;定时器T1的启动SETBIT1;开外部中断1的端口SETBEX1;允许外部中断1SETBEA;中断总允许SJMP$;原地等待 SERINT1:LCALLDEL10MS;调用延时JBP2.6,EXIT;判断按键是否按下,是,顺序执行,反之否LCALLDEL10MS;调用延时JNBP2.6,$;判断按键是否弹起,是,顺序执行,反之否MOVDPTR,#TAB;数据指针指向段码表MOVR0,#00H;寄存器R0清零LCALLDISP;调用显示DISP:MOVR1,#50;扫描50次MOVA,R0;R0的值赋给AANLA,#0FH;抹去A的高四位MOVCA,A+DPTR;查表SETBP1.0;关此位选CLRP1.1;开此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐MOVA,R0;R0的值给ASWAPA;高低半字节交换ANLA,#0FH;抹去高四位MOVCA,A+DPTR;查表CLRP1.0;开此位选SETBP1.1;关此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐DJNZR1,KEY;判断R1是否为0,是顺序执行,反之跳转RET;结束 KEY:JBP2.4,KEY1 ;按键按下顺序执行,否跳转到KEY1LCALLDEL10MS;调用延时JNBP2.4,$;判断按键是否弹起,是顺序执行,否等待INCR0;自加CJNER0,#05,DISP;R0等于5顺序执行,否跳转MOVR0,#00H;清零SJMPDISP;显示RET;结束KEY1:JBP2.5,KEY2;按键按下顺序执行,否跳转到KEY2LCALLDEL10MS;调用延时JNBP2.5,$;按键弹起顺序执行,否等待DECR0;自减1CJNER0,#0FFH,DISP;R0=#0FFH,顺序执行,否跳转到显示程序MOVR0,#04H;R0赋值4SJMPDISP;跳转到显示RET;结束KEY2:JBP2.7,DISP;发送键判断LCALLDEL10MS ;调用延时JNBP2.7,DISP ;再次判断MOVA,R0 ;R0的值赋给ALCALLFASHERET ;结束FASHE:MOVSBUF,A;接收到的值赋给AJNBTI,$ ;TI=1顺序执行,否等待CLRTI ;TI置零RET ;结束EXIT:RETI ;中断结束DEL10MS:MOVR4,#2 ;R4赋值2DEL0:DJNZR4,DEL0 ;R4为零顺序执行,否跳转RET;结束TAB:DB03H,9FH,25H,0DH,99H,49H;段码表DB41H,1FH,01H,09H,11H,0C1H;段码表DB63H,85H,61H,71H;段码表DELAY:MOVR5,#50;R5赋值50DEL1:MOVR3,#48;R3赋值48DEL2:DJNZR3,DEL2;R3为0顺序执行,否跳转DJNZR5,DEL1;R5为0顺序执行,否跳转RET;结束END;程序结束定时器T1设置0000H ;程序入口LJMPMAIN;上电,转主程序ORG0013H;外部中断1入口地址LJMPSERINT1;调用中断子程序ORG0030H;主程序MAIN:MOVSCON,#50H;串行控制寄存器设置MOVPCON,#00H;波特率不倍增MOVTMOD,#20H;定时器T1工作方式2MOVTH1,#0FDH;TH1赋初值MOVTL1,#0FDH;TL1赋初值SETBTR1;定时器T1的启动SETBIT1;开外部中断1的端口SETBEX1;允许外部中断1SETBEA;中断总允许SJMP$;原地等待 SERINT1:LCALLDEL10MS;调用延时JBP2.6,EXIT;判断按键是否按下,是,顺序执行,反之否LCALLDEL10MS;调用延时JNBP2.6,$;判断按键是否弹起,是,顺序执行,反之否MOVDPTR,#TAB;数据指针指向段码表MOVR0,#00H;寄存器R0清零LCALLDISP;调用显示DISP:MOVR1,#50;扫描50次MOVA,R0;R0的值赋给AANLA,#0FH;抹去A的高四位MOVCA,A+DPTR;查表SETBP1.0;关此位选CLRP1.1;开此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐MOVA,R0;R0的值给ASWAPA;高低半字节交换ANLA,#0FH;抹去高四位MOVCA,A+DPTR;查表CLRP1.0;开此位选SETBP1.1;关此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐DJNZR1,KEY;判断R1是否为0,是顺序执行,反之跳转RET;结束 KEY:JBP2.4,KEY1 ;按键按下顺序执行,否跳转到KEY1LCALLDEL10MS;调用延时JNBP2.4,$;判断按键是否弹起,是顺序执行,否等待INCR0;自加CJNER0,#05,DISP;R0等于5顺序执行,否跳转MOVR0,#00H;清零SJMPDISP;显示RET;结束KEY1:JBP2.5,KEY2;按键按下顺序执行,否跳转到KEY2LCALLDEL10MS;调用延时JNBP2.5,$;按键弹起顺序执行,否等待DECR0;自减1CJNER0,#0FFH,DISP;R0=#0FFH,顺序执行,否跳转到显示程序MOVR0,#04H;R0赋值4SJMPDISP;跳转到显示RET;结束KEY2:JBP2.7,DISP;发送键判断LCALLDEL10MS ;调用延时JNBP2.7,DISP ;再次判断MOVA,R0 ;R0的值赋给ALCALLFASHERET ;结束FASHE:MOVSBUF,A;接收到的值赋给AJNBTI,$ ;TI=1顺序执行,否等待CLRTI ;TI置零RET ;结束EXIT:RETI ;中断结束DEL10MS:MOVR4,#2 ;R4赋值2DEL0:DJNZR4,DEL0 ;R4为零顺序执行,否跳转RET;结束TAB:DB03H,9FH,25H,0DH,99H,49H;段码表DB41H,1FH,01H,09H,11H,0C1H;段码表DB63H,85H,61H,71H;段码表DELAY:MOVR5,#50;R5赋值50DEL1:MOVR3,#48;R3赋值48DEL2:DJNZR3,DEL2;R3为0顺序执行,否跳转DJNZR5,DEL1;R5为0顺序执行,否跳转RET;结束END;程序结束中断初始化原地等待2.中断流程图设定键按下是数据指针指向段码表寄存器R0清零设置动态扫描次数R0的值赋给A查表显示A中低四位高低半字节交换查表显示高四位扫描50次是否KEY按下中断入口R0自加1清0R0=05KEY1按下R0自减1R0=0KEY2按下发射结束否中断结束R0赋值4是否是是是否否否发射程序清单ORG0000H ;开始LJMPMAIN;上电,转主程序ORG0013H;外部中断1入口地址LJMPSERINT1;调用中断子程序ORG0030H;主程序MAIN:MOVSCON,#50H;串行控制寄存器设置MOVPCON,#00H;波特率不倍增MOVTMOD,#20H;定时器T1工作方式2MOVTH1,#0FDH;TH1赋初值MOVTL1,#0FDH;TL1赋初值SETBTR1;定时器T1的启动SETBIT1;开外部中断1的端口SETBEX1;允许外部中断1SETBEA;中断总允许SJMP$;原地等待 SERINT1:LCALLDEL10MS;调用延时JBP2.6,EXIT;判断按键是否按下,是,顺序执行,反之否LCALLDEL10MS;调用延时JNBP2.6,$;判断按键是否弹起,是,顺序执行,反之否MOVDPTR,#TAB;数据指针指向段码表MOVR0,#00H;寄存器R0清零LCALLDISP;调用显示DISP:MOVR1,#50;扫描50次MOVA,R0;R0的值赋给AANLA,#0FH;抹去A的高四位MOVCA,A+DPTR;查表SETBP1.0;关此位选CLRP1.1;开此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐MOVA,R0;R0的值给ASWAPA;高低半字节交换ANLA,#0FH;抹去高四位MOVCA,A+DPTR;查表CLRP1.0;开此位选SETBP1.1;关此位选SETBP1.2;关此位选SETBP1.3;关此位选MOVP0,A;显示LCALLDELAY;调用延时MOVP0,#0FFH;消隐DJNZR1,KEY;判断R1是否为0,是顺序执行,反之跳转RET;结束 KEY:JBP2.4,KEY1 ;按键按下顺序执行,否跳转到KEY1LCALLDEL10MS;调用延时JNBP2.4,$;判断按键是否弹起,是顺序执行,否等待INCR0;自加CJNER0,#05,DISP;R0等于5顺序执行,否跳转MOVR0,#00H;清零SJMPDISP;显示RET;结束KEY1:JBP2.5,KEY2;按键按下顺序执行,否跳转到KEY2LCALLDEL10MS;调用延时JNBP2.5,$;按键弹起顺序执行,否等待DECR0;自减1CJNER0,#0FFH,DISP;R0=#0FFH,顺序执行,否跳转到显示程序MOVR0,#04H;R0赋值4SJMPDISP;跳转到显示RET;结束KEY2:JBP2.7,DISP;发送键判断LCALLDEL10MS ;调用延时JNBP2.7,DISP ;再次判断MOVA,R0 ;R0的值赋给ALCALLFASHERET ;结束FASHE:MOVSBUF,A;A的值赋给SBUFJNBTI,$ ;TI=1顺序执行,否等待CLRTI ;TI置零RET ;结束EXIT:RETI ;中断结束DEL10MS:MOVR4,#2 ;R4赋值2DEL0:DJNZR4,DEL0 ;R4为零顺序执行,否跳转RET;结束TAB:DB03H,9FH,25H,0DH,99H,49H;段码表DB41H,1FH,01H,09H,11H,0C1H;段码表DB63H,85H,61H,71H;段码表DELAY:MOVR5,#50;R5赋值50DEL1:MOVR3,#48;R3赋值48DEL2:DJNZR3,DEL2;R3为0顺序执行,否跳转DJNZR5,DEL1;R5为0顺序执行,否跳转RET;结束END;程序结束3.2接收主程序流程图开始串行通信设置中断初始化定时器T1设置设定扫描次数A值赋给R0显示低四位显示高四位扫描50次是否原地等待中断流程图中断入口接收数据接收数据为04接收数据为01接收数据为03接收数据为02调用GO调用BACK调用LEFT调用RIGHT中断结束是是是是否否否否接收程序清单ORG0000H;开始LJMPMAIN ;调用主程序ORG0023H;串口地址LJMPJIE ;中断服务程序ORG 0030H;主程序MAIN:MOV SCON,#50H;串行口方式1,REN=1MOVPCON,#00H;波特率不倍增MOVTMOD,#20H;定时器T1工作方式2MOVTH1,#0FDH;TH1初值MOVTL1,#0FDH;TL1初值SETBTR1;启动定时 SETBEA;中断总允许SETBES;允许串口申请中断SETBEX0;允许外部中断0SETBIT0;外部中断INT0工作方式SJMPDISP;动态显示程序SJMP$;原地等待DISP:MOVR1,#50 ;扫描50次MOVA,R0;R0赋值AANLA,#0FH;保留A中的低四位MOVDPTR,#TAB;数据指针指向段码表MOVCA,A+DPTR ;查表SETBP1.0 ;开位选CLRP1.1;关位选MOVP0,A;显示LCALLDEL05S;调用延时子程序MOVP0,#0FFH ;消隐MOVA,R0;R0的值再次给ASWAPA;高低半字节交换ANLA,#0FH;抹去高四位MOVDPTR,#TAB;数据指针指向段码表MOVCA,A+DPTR;查表CLRP1.0;开位选SETBP1.1;关位选MOVP0,A;显示LCALLDEL05S;调用延时子程序MOVP0,#0FFH;消隐DJNZR1,JIE ;判断扫描是否完成,是顺序执行,否跳转到接收RET;结束JIE:MOVA,SBUF;接收数据JNBRI,$;RI为0等待,RI为1顺序执行CLRTI;RI置0LCALLL0;调用L0子程序CPLP0;P0置0RETI;中断结束L0:MOVA,20H;判断接收数据ANLA,#03H;抹去D2-D7CJNEA,#01H,L1;A等于01向下执行,否跳转到L1LCALLGO;调用GO子程序LCALLDEL5S;延时5SSJMPEXIT;中断结束L1:CJNEA,#02H,L2;A等于02向下执行,否跳转到L2LCALLBACK;调用BACK子程序LCALLDEL5S;延时5SSJMPEXIT;中断结束L2:CJNEA,#03H,L3;A等于03向下执行,否跳转到L3LCALLLEFT;调用LEFT子程序LCALLDEL5S;延时5SSJMPEXIT;中断结束L3:CJNEA,#04H,$;A等于04向下执行,否等待LCALLRIGHT;调用RIGHT子程序LCALLDEL5S;延时5SEXIT:RETI;中断结束GO:SETBP1.5;前进SETBP1.7;置1LCALLDEL05S;调用延时5msCLRP1.4;置0CLRP1.6;置0RET;结束BACK:SETBP1.4;后退SETBP1.6;置1LCALLDEL05S调用延时5msCLRP1.5;置0CLRP1.7;置0RET;结束LEFT:SETBP1.4;左转SETBP1.7;置1LCALLDEL05S;调用延时5msCLRP1.5;置0CLRP1.6;置0RET;结束RIGHT:SETBP1.5;右转SETBP1.6;置1LCALLDEL05S调用延时5msCLRP1.4;置0CLRP1.7;置0RET;结束TAB:DB03H,9FH,25H,0DH,99H,49H;段码表DB41H,1FH,01H,09H,11H,0C1H;段码表DB63H,85H,61H,71H;段码表DEL5S:MOVR3,#10;R3赋值10DEL3:LCALLDEL05S;延时5msDJNZR3,DEL3;R3=0顺序执行,否跳转RET;结束DEL05S:MOVR4,#5;R4赋值5DEL0:MOVR5,#200;R5赋值200DEL1:MOVR6,#123;R6赋值123DJNZR6,$;R6=0顺序执行,否等待DJNZR5,DEL1;R5=0顺序执行,否跳转到DEL1DJNZR4,DEL0;R4=0顺序执行,否跳转到DEL0RET;子程序结束END;程序结束附录执行模块控制模块总结1 两周的单片机实训很快就结束了,在这两周里我学到很多知识,对以前不懂得知识有更多的了解,学会了自己独立思考,解决各种问题。这次实训不仅教会了我很多东西,还加强了我的动手能力,学会了团结协作。理论结合实际,让我们进一步了解到了知识的重要性,更进一步拉近了同学与同学之间友好的关系。在实训期间,我们以小组的形式来完成老师交给我们的任务,在专用周中有五个课题可供我们选择,根据实际情况,老师的要求,我们很不幸的选择了课题四这个让我们头疼的题目,这个题目是无线数据传输,刚开始我们什么都不知道,只是浅显的了解到无线数据传输就是利用两个小车以及无线数传模块实现点对点的无线数据传输,到后来并不是我们想象的么简单。无线数据传输是利用一个小车作为主控机,另一个小车作为操作执行机,用户通过利用主控机上的按键实现控制信号的设定,利用无线模块进行数据的发送和传输,执行小车完成相应的动作。这个课题在之前我们是没有接触到的,所以说对我们只学了基本知识的人来说,简直就是难上难,但是通过老师的一番讲解,还有老师的指导,在各种帮助下我们还是很顺利的完成了老师交给我们的任务。实训的前两天老师要求我们把本次实验所用到的所有电路原理图画出来,刚开始,我们根本不知道画什么,经过一段时间的思考,还有老师、同学的帮助下,我们知道该画什么了。首先,我们把所有要用到的电路原理图找出来,归纳在一起,就开始着手画硬件电路图,这次画硬件电路图对我们来说其实很简单,因为在之前我们也用了两周的专用周学习了Protel 99se这个软件功能,所以对于我们来说还是挺有用的。经过我们的努力,我们完成了硬件电路图这一小部分,接下来的这几天里,老师交给我们的任务就是编写程序,对于我来说

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论