单片机原理及应用A答案_第1页
单片机原理及应用A答案_第2页
单片机原理及应用A答案_第3页
单片机原理及应用A答案_第4页
单片机原理及应用A答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、页眉内容单片机原理及应用模拟卷 1除非特别声明,编程题可以使用汇编语言编写,也可以使用c语言编写1、分析程序的执行结果,将结果填写到空格中。ORG0000HMOV30H,#50HMOVR0,#30HMOVA,R0;(A= 50H)MOVA,#79HMOVB,#20H;(A= 79HB= 20H)DIVAB;(A= 03HB= 19H)PUSHBMOVB,#0AHMULAB;(A= 1EHB= 0)POPBADDA,B;(A=37HB=19H)MOV30H,A;(30H单元的内容=37H)MOV20H,30HCLR01H;(20H单元的内容=37H)MOVA,20H;(PSW中P的内容=1)CP

2、LARRA;(PSW中C的内容=0)SWAPA;(A= 46H)ADDCA,#0F0H;(A=36H);(PSW中P的内容=0);(PSW中C的内容=1)RLA;(A= 6CH);(PSW中P的内容=0);(PSW中C的内容=0)LOOP: AJMPLOOP2、将MCS51内部RAM60H65H单元存放的12个16进制数变为ASCII码, 放到0090H单元开始的外部RAM中。使用汇编语言编写ORG 0000HAJMP MAINORG 0030HMIAN:MOV R0,#50HMOV R1,#06HMOV R2,#02HMOV DPTR,#2800HMOV A,R0MOV B,ACH:ANL

3、A,#0FHPUSH ACCSUB A,#0AHJNC AD37POP ACCADD A,#30HJMP SAVAD37:POP ACCADD A,#37HSAV:DJNZ R2,LLMOVX DPTR,A INC DPTR SWAP BMOV B,AJMP CHLL:INC R0DJNZ R1,DONE DONE:HLT END3、某一故障检测系统,当出现故障1时,线路1上出现上升沿;当出现故障2 时,线路2上出现下降沿。没有故障时,线路1为低电平,线路2为高电平。 出现故障时,相应的指示灯变亮。故障消失后,指示灯熄灭。试用MSC1211 为单片机实现该故障检测功能,画出电路原理图,并写出相

4、应程序。解答:如下图所示:故障1从P32输入,利用INT0,故障2从P33输入,利用 INT1,使用L1作为故障1的指示灯,L2作为故障2的指示灯。页脚内容PIOP11AMCUP32P33 人竝程序清单:ORG 0000HAJMP MIANORG 0003HAJMP GUIORG 0013HAJMP GU2ORG 1000HMAIN: MOV TCON,#05HMOV IE,#85HHERE: SETB P1.0SETB P1.1GU1:CLR P1.0JB P3.2,GU1RETIGU2: CLR P1.1JB P3.3,GU2RETIEND4、利用MSC1211或8051设计应答方式下的多

5、机通讯程序。通讯参数:晶振 为11.0592MHz, 9600, n, 8,1。通讯过程如下:主机首先发送从机地址, 从机收到地址后进行比较,如果地址相符,则将从机地址回发给主机作为应 答信号。主机收到从机的地址应答信号后,将内存单元中的120个数据发送 给从机,并进行数据块校验(将各个数据进行异或),若校验正确,则从机发送00H给主机,否则发送OFFH给主机,主机重新发送数据。(应在适当 的地方加程序注释)解:主机程序如下:ORG0000HLJMPMAINT :跳至主程序入口地址ORG0023H:串行口中断服务程序入口LJMPINTSTMOVSCON,#90H:置工作方式 2,并允许接收MO

6、VTMOD,#20H:置T1工作方式2MOVTH1,#0FDHMOVTL1,#0FDHMOVDPTR,#ADDR :设置数据块首址 ADDR的地址指针MOVR0,#120:设置发送字节数MOVR1,#00H:设置校验和的初值MOVR2,#NAMESETBTB8:置位TB8位,作为发送地址桢信息特征SETBTR1SETBEA : CPU开中断SETBES :允许串行口中断MOVA,R2 :发送地址桢信息MOVSBUF, ASJMP$MAINT :;中断服务程序INTST : MOV A,TB8 ;判断是发送地址还是数据,若为数据则转 LOOPOCJNE A,01H,LOOPOCLR TI ;地址

7、桢信息发送完后清发送中断LOOPO : JBRI,LOOP1 ;检查是否是接受中断?若 RI=1则转入接受乙机发送应答信息CLR TI ;因RI=0,表明是甲机发送中断数据的中断请求。CPU响应MOVA,TB8 :CJNEA,#01H,继续发送数据LOO3 :右为发送数据中断则转LOOP3LJMPENDT:甲机发送一数据完毕跳至中断返回程序CLRRI:清接受中断标志MOVA,TB8 :判断是发送地址还是数据,若为数据则转LOOP2CJNEA,#01H,LOOP4 :若TB8为0则接受的为乙机数据校验应答MOVA,SBUF:取乙机的应答数据中断,在中断服务程序中应清中断标志LOOP1 :CJNE

8、 A , R2,LOOP2;若乙机应答信息不是从机地址,则地址传送不正确,则转 LOOP2程序重新发送地址信息,否则清 TB8,发送数据LOOP3 : MOVXA,DPTRMOVSBUF, AXRLA,R1CLR TB8;取下一个数;启动串行口,发送新的数据MOVINC DECCJNER1,ADPTR;修改地址指针RO ;修改发送字节数记数值RO, #00H,ENDT;判别120个字节数据都发送完没有。如果没有发送完则跳至中断返回程序。继续发送MOV A,R1MOV SBUF,A ;数据全部发送完毕则发送校验和LJMP ENDTLOOP4 : MOVA,SBUF ;取乙机的应答数据CJNE寺L

9、 /、V-新发送A,#00H,LOOP5;若数据发送不正确,则转LOOP5重CLR ES ;全部发送完毕,禁止串行口中断LOOP5 : MOVDPTR,#ADDR ;设置数据块首址 ADDR的地址指针MOV R0, #120;设置发送字节数MOV R1,#00H;设置校验和的初值LJMPLOOP2 : MOVMOVRETILOOP2A,R2 ;发送地址桢信息SBUF, AENDT : RETIEND从机程序如下:ORG 0000HLJMPMAINR ;跳至主程序入口地址ORG0023H ;串行口中断服务程序入口LJMPINTSR_ 一 _ . . . .iiii i r r . 、. r、 _

10、 、/ z. r . t . t rMAINR : MOVSCON,#0B0H;置丄作方式 2,开允许接收MOVTMOD,#20H;置T1工作方式2MOVTH1,#0FDHMOVTL1,#0FDHMOVDPTR,#ADDR;设置数据块接收首址为 ADDRMOV R0, #120;设置接收字节数MOVR2,#NAMEMOVR1,#00H;设置校验和的初值SETBRB8;置位RB8位,作为接受地址信息特征SETBTR1SETBEA;CPU开中断SETBES;允许串行口中断SJMP$;中断服务程序INTSR : MOVCJNECLRMOVXRLJZLJMPLOOP: CLRCLRMOVMOVLJMP

11、LOOP0 : JB送的数据A , RB8 ;判断是接收地址还是数据,若为数据则转LOOP0A,01H,LOOP0RI ;地址桢信息接受完后清接收中断A,SBUFA,R2LOOP;若地址相符则转 LOOP,否则中断返回ENDRSM2RB8A,R2SBUF,A ;想主机发送从机地址ENDRRI,LOOP1 ;检查是否是接受中断?若 RI=1则转入接受甲机发CLR TI ;因RI=0,表明是乙机发送中断数据的中断请求。CPU响应中断,在中断服务程序中应清中断标志LJMP ENDR ;甲机发送一数据完毕跳至中断返回程序DECR0JZLOOP2 ;数据未接收完则中断返回,MOVA,SBUF;取甲机发送

12、的数据MOVXDPTR,AXRLA,R1MOVR1,ALOOP2 : MOVA,SBUF:取甲机发送的校验和LOOP1 : CLR RI ;清接受中断标志若接收完则转LOOP2,校验XRL A,R1JZRIGHTLJMP WRONGRIGHT : MOV A,#00HMOV SBUF, ALJMPENDRWRONG : MOVA,#0FFHMOVSBUF, AMOVDPTR,#ADDR ;设置数据块接收首址为 ADDRMOVRO, #120;设置接收字节数LJMPENDRENDR : RETIEND5、利用MSC1211的A/D构成数据采集系统。使用模拟通道0进行连续数据采 集,采集8次后取得

13、平均值,存放到预先分配好的 100个内存单元中,这 100个单元存满后,再从第一个单元进行覆盖保存。写出完整的程序清单(应 在适当的地方加程序注释)。解: #include#in cludeextern void autobaud(void);/ 声明外部函数exter n void bipolar(void);float a100=0,w8=0;i nt out=0;lo ng result,temp;i nt j;int AUX in terrupts(void)i nterrupt6 usi ng1 中断服务程序if(PAI=6)处理 AD 中断wout+=bipolar();temp=wout;SUMR0=temp&Oxff;SUMR1=(temp8) &Oxff;SUMR2=(temp16 )&Oxff;SUMR3=(temp24)&Oxff;if(out=8) SUM=SUMR324+SUMR216+SUMR1=100)j=0;min (void)float dummy;int decimati on;decimationg=1440; 抽取因子PDCON&=0x77 ; 打开 ADCACLK=9 ; 模拟采样频率ADMUX=0; 使用通道 0ADCON0=0x30; 内部基准 2.5V,缓冲器关

温馨提示

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

评论

0/150

提交评论