版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SETBTB8SETBTB8;置位TB8位,作为发送地址桢信息特征单片机原理-答案一、问答题1、利用MSC1211或8051设计应答方式下的多机通讯程序。通讯参数:晶振为11.0592MHz,9600,n,8,1。通讯过程如下:主机首先发送从机地址,从机收到地址后进行比较,如果地址相符,则将从机地址回发给主机作为应答信号。主机收到从机的地址应答信号后,将内存单元中的120个数据发送给从机,并进行数据块校验(将各个数据进行异或),若校验正确,则从机发送00H给主机,否则发送0FFH给主机,主机重新发送数据。(应在适当的地方加程序注释)解:主机程序如下:ORG0000HLJMPMAINT;跳至主程序入口地址ORG0023H;串行口中断服务程序入口LJMPINTSTMAINT:MOVSCON,#90H;置工作方式2,并允许接收MOVTMOD,#20H;置T1工作方式2MOVTH1,#0FDHMOVTL1,#0FDHMOVDPTR,#ADDR;设置数据块首址ADDR的地址指针MOVR0,#120;设置发送字节数MOVR1,#00H;设置校验和的初值MOVR2,#NAMESETBTR1SETBEA;CPU开中断SETBES;允许串行口中断MOVA,R2;发送地址桢信息MOVSBUF,ASJMP$中断服务程序INTST:MOVA,TB8;判断是发送地址还是数据,若为数据则转LOOP0CJNEA,01H,LOOP0CLRTI;地址桢信息发送完后清发送中断LOOPO:JBRl,LOOP1;检查是否是接受中断?若RI=1则转入接受乙机发送应答信息CLRTI;因RI=0,表明是甲机发送中断数据的中断请求。CPU响应中断,在中断服务程序中应清中断标志MOVA,TB8;CJNEA,#01H,LOO3;若为发送数据中断则转LOOP3继续发送数据LJMPENDT;甲机发送一数据完毕跳至中断返回程序LOOP1:CLRRI;清接受中断标志MOVA,TB8;判断是发送地址还是数据,若为数据则转LOOP2CJNEA,#01H,LOOP4;若TB8为0则接受的为乙机数据校验应答MOVA,SBUF;取乙机的应答数据CJNEA,@R2,LOOP2;若乙机应答信息不是从机地址,则地址传送不正确,则转LOOP2程序重新发送地址信息,否则清TB8,发送数据CLRTB8LOOP3:MOVXA,@DPTR;取下一个数MOVSBUF,A;启动串行口,发送新的数据XRLA,@R1MOV@R1,AINCDPTR;修改地址指针DECR0;修改发送字节数记数值CJNER0,#00H,ENDT;判别120个字节数据都发送完没有。如果没有发送完则跳至中断返回程序。继续发送MOVA,@R1MOVSBUF,A;数据全部发送完毕则发送校验和LJMPENDTLOOP4:MOVA,SBUF;取乙机的应答数据CJNEA,#00H,LOOP5;若数据发送不正确,则转LOOP5重新发送CLRES;全部发送完毕,禁止串行口中断LOOP5:MOVDPTR,#ADDR;设置数据块首址ADDR的地址指针MOVR0,#120;设置发送字节数MOVR1,#00H;设置校验和的初值LJMPLOOP2LOOP2:MOVA,R2;发送地址桢信息MOVSBUF,ARETIENDT:RETIEND从机程序如下ORG0000HLJMPMAINR;跳至主程序入口地址ORG0023H;串行口中断服务程序入口
LJMPINTSRMAINR:MOVSCON,#0B0H;置工作方式2,并允许接收MOVTMOD,#20H;置「工作方式2MOVTH1,#0FDHMOVTL1,#0FDHMOVDPTR,#ADDR;设置数据块接收首址为ADDRMOVR0,#120;设置接收字节数MOVR2,#NAMEMOVR1,#00H;设置校验和的初值SETBRB8;置位RB8位,作为接受地址信息特征SETBTR1SETBEA;CPU开中断SETBES;允许串行口中断SJMP$中断服务程序INTSR:MOVA,RB8;判断是接收地址还是数据,若为数据则转LOOP0CJNEA,01H,LOOP0CLRRI;地址桢信息接受完后清接收中断MOVA,SBUFXRLA,@R2JZLOOP;若地址相符则转LOOP,否则中断返回LJMPENDRLOOP:CLRSM2CLRRB8MOVAMOVA,@R2MOVMOVSBUF,A;想主机发送从机地址LJMPENDRLOOPO:JB据RI,LOOP1;检杳是否是接受中断?若RI=1则转入接受甲机发送的数CLRTI;因RI=O,表明是乙机发送中断数据的中断请求。CPU响应中断,在中断服务程序中应清中断标志LJMPENDR;甲机发送一数据完毕跳至中断返回程序LOOP1:CLRRI;清接受中断标志DEC@ROJZLOOP2;数据未接收完则中断返回,若接收完则转LOOP2,校验MOVA,SBUF;取甲机发送的数据MOVX@DPTR,AXRLA,@R1MOV@R1,ALOOP2:MOVA,SBUF:取甲机发送的校验和XRLA,@R1JZRIGHTLJMPWRONGRIGHT:MOVA,#OOHMOVSBUF,ALJMPENDRWRONG:MOVA,#OFFHMOVSBUF,AMOVDPTR,#ADDR;设置数据块接收首址为ADDRMOVRO,#12O;设置接收字节数LJMPENDRENDR:RETIEND2、某一故障检测系统,当出现故障1时,线路1上出现上升沿;当出现故障2时,线路2上出现下降沿。没有故障时,线路1为低电平,线路2为高电平。出现故障时,相应的指示灯变亮。故障消失后,指示灯熄灭。试用MSC1211为单片机实现该故障检测功能,画出电路原理图,并写出相应程序。3、某一故障检测系统.当出现故障I时.戟路I上出现上升沿;当出现故障2时.线路2上出现下降沿“没冇故障时.线路】为低电平,线路2为高电平口出现故障时,相应的指示灯变亮"故障消失后,抬亦灯熄灭"试用MSCI21IA单片机实现该故障检測功能,画出电路8(理BB,井写出相应程解注如卜用所示’故障1从P史输入.利mJNT(\故障2输入,利mINTJ/SfflLI作为故障I的捋示灯・L2作为故陣2的捋示灯"程序清取:ORG000011AJMPM1ANORG0003HAJMPGUIORG0013HAJMPGU2ORGI000HMAIN:MOVTCONt#05HMOVIE,#85HHERE:SETHPLOSETBPL1GUI:CLRPLOJBP3.2.GU!RETIGU2:CLRPl」JBP33.GU2RETIRND3、用MSC1211的TO定时/计数器,设计程序,实现在P1.0输出周期为200ms的占空比为1:1的方波,输出500个方波后停止输出。
LJMPMAINoRG000BH;T0口中断服务程序入口地址LJMPINT_T0MoVTMoD,#00H;T0工作于方式0定时MoVTL0,#0CHMoVTH0,#1EH;设定秒中断周期为1MSMoVA,200;设定输出周期为200msMoVR2,1000;输出500个方波SETBTR0SETBET0SETBEASETBP1.0SJMP$MoVTL0,#0CHMoVTH0,#1EH;T0重装时间常数CPLP1.0P1.0位取反DECR2JZENDP;若只2为0,则结束程序,否则返主程序继续输出RETI;返主程序MAIN:INT_T0:答:org答:org0000HENDP:END4、变量k从0变到300,变化步长为20。对于每一个值,使用整形数算术运算计算40*k,k*k*k和(50*k/120+60)A3。这三个值通过MSC1211的D/A转换后同步输出(均使用电压输出模式)。试编写程序实现。(5分include<Reg1211.h>dataunsignedintk,j,i;voidmain(void){PDCON&=~0X48;ADCON0=0X30;DACSEL=6;DACSEL=4;DACL=0X24;DACSEL=5;DACH=0x24;while(1){DACSEL=0;DAC=0x8000;for(j=0;j<100;j++)DAC=0;for(k=0;k<301;k+=20){DACSEL=1;DAC=40*k;DACSEL=2;DAC=k*k*k;DACSEL=3;i=50*k/1200+60;DAC=i*i*i;DACSEL=6;DACL=0Xfc;}二、程序设计5、用MSC1211的T1定时/计数器,定时0.1S中断,使P1口的8个发光二极管每隔1S循环点亮。设系统主频为6MHZ。解:ORG0000HLJMPMAIN;转主程序ORG001BH;T1中断服务程序入口地址LJMPT1-ISRORG0100HMAIN:MOVSP,#60H;设置堆栈指针MOVP1,#01H;设置P1.1发光MOVTMOD,#10H;T1初始化MOVTL1,#B0HMOVTH1,#3CHSETBTR1;启动T0计数SETBET1;允许T0中断SETBEA;CPU开中断SJMP$;等待T1_ISR:MOVTL1,#B0HMOVTH1,#3CHMOVA,P1;P1口循环左移RLAMOVP1,AEXIT:RETIEND
6、某一故障检测系统,当出现故障时,线路出现下降沿;没有故障时,线路为高电平。出现故障时,相应的指示灯变亮。故障消失后,指示灯熄灭。试用MSC1211为单片机实现该故障检测功能,画出电路原理图,并写出相应程序。答:[参考答案]:电路说明:当出现故障1时,线路1上出现上升沿,并将P1.3口置0,二极管亮,当故障清除后,P1.3口置1,二极管灭MIAN:ORG0000HLJMPMIANORG0043HLJMPINT_2SETBEX2;使能外部中断2SETBEA;CPU开中断SETBP1.3;P1.3置位,使二极管灭SJMP$INT_2:CLRIE2;清外部中断2的中断标志CPLP1.3;P1.3取返,使二极管点亮MOVA,P1DELAY1:ANLA,10H;检测.P1..4口,为高电平时故障未排除,JNZDELAY1CPLP1.3;故障排除,P1.3置位,使二极管灭RETI转DELAY1等待7、设有甲、乙两台单片机,以工作方式3进行串行通讯,设晶振为11.0592MHz,波特率为9600,甲机将内存单元中的120个数据作补偶校验后发送给乙机,乙机对接收到的数据进行奇偶校验,若校验正确,则从机发送00H给甲机,甲机继续发送数据,校验不正确,则发送OFFH给甲机,甲机重新发送原数据,编写乙机的接收程序。(应在适当的地方加程序注释)答:ORG0000HAJMPMAINORGOO23HLJMPSE2_INTMAIN:MOVSP,#6OHMOVTMOD#2OHMOVTH1,#OFDH;设置波特率为9600bpsMOVTL1,#OFDHMOVSCON,#90H;串行口工作方式3,允许接收MOVDPTR,#2000H;接收数据区MOVR1,#120SETBTR1SETBEASETBESSJMP$;等待接收中断SE2_INT:JBRI,LOOPACLRT1LJMPENDRLOOPA:CLRRIMOVA,SBUFMOVC,P;奇偶校验JCLOOP1;如8位数是奇,则转LOOP1再检测RB8位ORLC,RB8;女吒位数为偶,再检测RB8位,RB8=1,则9位数据为奇,补偶JCLOOP2;错,转LOOP2LJMPLOOP3;补偶正确,转LOOP3LOOP1:ANLC,RB8;8位数为奇,再检测RB8位JCLOOP3;RB8=1,补偶正确,转LOOP3LOOP2:MOVA,#0FFH;检测不正确发送FF给甲机MOVSBUF,AJMPENDRLOOP3:MOVX@DPTR,AMOVA,#00HMOVSBUF,A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届镇远县数学三年级下学期期末统考模拟试题含答案解析
- 2026年山东省邹城市高三数学下册期末考试模拟试卷及完整答案一套
- 2026年山东省章丘市高三数学下册期末考试模拟试卷及参考答案【综合题】
- 2026年河南省卫辉市高三数学下册期末考试模拟卷附参考答案(达标题)
- 2026年吉林省榆树市高三数学下册期末考试模拟考试卷(巩固)附答案
- 2026年河北省任丘市高三数学下册期末考试模拟卷及答案(考点梳理)
- 2026年云南省宣威市高三数学下册期末考试模拟考试卷附答案(培优A卷)
- 2026年四川省华蓥市高三数学下册期末考试模拟卷带答案(巩固)
- 2026年江西省瑞昌市高三数学下册期末考试模拟测试卷及一套答案
- 2026年河南省永城市高三数学下册期末考试模拟卷附答案(典型题)
- 2026年秋招:重庆三峡银行试题及答案
- 2026年济南市烟草专卖局人员招聘考试备考题库及答案详解
- 中国心肺复苏指南(2026年更新版)
- 屋面防水翻新工程质量评估报告
- 江苏省2025年中职职教高考文化统考数学试题
- 2024年人教版六年级语文上册《第4单元语文园地四》教学课件
- 春季中学田径运动会开幕式议程
- 2024年上半年教师资格证《初中化学》真题及答案
- SH∕T 3097-2017 石油化工静电接地设计规范
- DB 3406T 022-2024市政道路建筑垃圾填筑 路基施工技术规范
- 急诊科护理典型案例分析
评论
0/150
提交评论