资源描述:
《最新单片机原理模拟试题3及答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《单片机原理》模拟试题3及答案一.基本概念题1.回答问题(每题2分)1)AT89C51引脚共有多少I/O口线?(32)2)AT89C51的ALE信号功能是什么?(地址锁存)3)决定程序执行顺序的寄存器是那个?(PC)4)AT89C51CPU中那个中断源在CPU响相应后不能自动撤除?(串口)5)AT89C51中断源分为几个优先级?(2)6)AJMP指令的寻址范围是多少(2K)7)-1的补码是多少?(255=FFH)8)AT89C51中的/PSEN引脚作用是什么?(相当于外部程序存贮器“读”)9)机器周期T和Fosc(外加晶振)是什么关系?(T=1/12)10)条件转移指令的转移范围
2、是多少?(-128----127)2.判别下列指令是否合法,(每题2分)如合法,在题后写合法,无需讲理由;如非法请写非法并讲明理由(无理由不得分)1)MOVB,#20H;合法2)MOV@R1,@R0;非法,指令格式错误3)JMP@R0;非法指令格式错误44)JMP@A+DPTR;合法5)DEC@R7;非法,指令格式错误6)DEC@R0,REL;非法,指令格式错误;7)XCHDA,@R1;合法8)CJNE@R1,#30H,REL;合法9)JZB,REL;非法,默认A,不能判别B;10)XRLA,30H;合法3写出下列指令的源操作数寻址方式(每题3分)1)MOVDPTR,#1234H
3、;立即数寻址2)MOVCA,@A+DPTR变址寻址3)MOVC,2BH;位寻址4)CLRPSW.5位寻址5)MOVP0,A寄存器寻址二.编程与应用1.设被加数与加数分别放在以ADR1与ADR2为初址的片内数据存贮区域中,自低字节起,由低到高依次存放;它们的字节数为L,要求加的和放回被加数的单元。请编写子程序,(设L个字节相加后其和为L个字节)ADDSUB:MOVR0,#ADR1MOVR1,#ADR2MOVR2,#LCLRCLOOP:MOVA,@R0ADDCA,@R1MOV@R0,AINCR0INCR1DJNZR2,LOOPRET42、统计自P1口输入的字串中正数、负数、零的个数。
4、设该字符串共20个字符。,(不考虑取数速度匹配问题,即认为每次取出的数都是一个新数)请编写子程序设R0、R1、R2三个工作寄存器分别为统计正数、负数、零的个数。START:CLRAMOVR0,AMOVR1,AMOVR2,AMOVR7,#20ENTER:MOVA,P1JZZEROJBP1.0,NEGINCR0AJMPCK1ZERO:INCR2AJMPCK1NEG:INCR1CK1:DJNZR7,ENTERRET3.设计可多达128路分支出口的转移程序分支出口的首地址设为ADDR00,ADDR01……ADDR127要转移到某分支的信息存放在工作寄存器R2中请编出片段散转程序,MOVD
5、PTR,#TABMOVA,R2RLAJMP@A+DPTRTAB:AJMPADDR00AJMPADDR01……..AJMPADDR1274.将片外RAM首址为DATA1的一个数据块传送到片内RAM首址为DATA2的存贮区。数据块最大长度为20个字节。要求:1.如果数据中取到0,则停止传送,并统计共传送的个数。2.用子程序编写43.子程序出口参数:R6中存放传送个数题目分析:1.如果数据块中无0,则最大传送20个字节2.如果取出的数为0,则停止传送,并记下传送的个数。MOVSUB:MOVR0,#DATA1;片外RAM源数据地址首址MOVR1,#DATA2;片内RAM目的地址首址MOV
6、R7,#20;最大长度MOVR6,#0;R6用于存放传送个数LOOP:MOVXA,@R0;取外部RAM数据JZEND;是零则结束MOV@R1,A;传送INCR0INCR1INCR6;传送个数加1DJNZR7,LOOPEND:RET4