1…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………姓名学号专业班级学院武汉理工大学考试试卷(A卷)2015~2016学年1学期单片机原理与应用课程闭卷时间120分钟,40学时,学分,总分100分,占总评成绩80%2015年12月19日题号一二三四五六七八九十合计满分102020101525100得分一、填空题(每空1分,共10分)1.51单片机从指令分类上看,其存储空间分为程序存储器ROM、片内RAM和(),对应的传送指令的助记符分别是MOVC、MOV和()。2.51单片机的片内RAM存储器的寻址地址为()位,其特殊功能寄存器的起始地址是()。3.51系列单片机片内数据存储器中,用户“位”地址范围为00H~7FH,位地址0FH位于()字节地址中的第()位。4.在51单片机中,开机或复位后,R0对应的物理地址是(),但若设置PSW中的RS1和RS0为“01”后,R0对应的物理地址则是()。5.在51单片机中,开机或复位后程序的起始地址是(),INT1的中断入口地址是()。二、问答题(每小题5分,共20分)1.在51系列单片机的程序存储器ROM和片外随机存储器RAM的寻址空间都是64K,为什么寻址都可以从0000H到FFFFH?请举例。2.中断技术中,保护现场中的“现场”指的是什么?为什么要保护现场?得分得分23.51单片机中断响应后,其断点和现场通常被保存在哪里?对通用寄存器组的保护有更快的途径吗?请举例?。4.51单片机中,并行I/O端口的使用,分为直接片上地址和通过总线扩展两种模式,试说明这两种模式的特点。三、51单片机汇编指令应用与分析(每题5分,共20分)1.试将ROM空间上2000H单元中的内容传送到2001H的I/O地址上。2.试将R3R2(R2为低八位)中的内容乘2,结果存入R4R3R2中。3.读入2100H的I/O地址内容除2后,整数部分存入外部RAM的4100H单元。得分34.试将P1.0与P1.1“异或”的结果,通过P1.2输出。四、程序设计(10分)设ROM中有一起始地址为DTATAB的数据表格,表格中存放有256个数据,每个数据占一个字节。请编写程序实现:根据从2000H为地址的I/O口中获得一个字节的数据,查DTATAB数据表格,并将查表结果从2001H的I/O口输出。五、电路与驱动程序程序设计(15分)试作如下设计:记录一个按键的按下次数,记录从0到99,循环计数(99后归零)。请利用51单片机设计一个按键,两位七段数码管(7分)。驱动程序要求:每按下一次按键,两位数码管显示器累计显示按键按下的次数。(8分)。得分得分4…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………5六、综合题(共25分)下图是一个正弦波信号发生器电路以及驱动程序,请完成如下任务:1.51单片机的晶振频率为12MHz,按提供的驱动程序,分析正弦波周期是多少?(5分)2.正弦波的周期受什么因数的影响?如果要延长正弦波的周期可采用什么办法?(2分)3.修改驱动程序,利用定时器中断来控制正弦波的周期。(10分)4.定时器的最短定时时间不得短于多少?为什么?(3分)5.增设两个按键,“+”,“-”。用来控制定时器的定时时间,从而控制正弦波的周期,完成按键的驱动程序。(5分)提示:中断及定时计时器控制器的格式如下:IE:TCON:D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TMOD:D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1MOT1方式字段T0方式字段得分D7D6D5D4D3D2D1D0EA--ESET1EX1ET0EX0WRP0P2.58XX51~D0D7XFERCSWR1WR2RFBIOUT1IOUT2AGNDDGNDV0RW+5V-5VDAC0832VCCVREFILE6ORG0000HLOOP1:MOVA,R0;(1机器周期)MOVDPTR,#DATA;(2机器周期)MOVCA,@A+DPTR;(2机器周期)MOVDPTR,#0DFFFH;(2机器周期)MOVX@DPTR,A;(2机器周期)INCR0;(1机器周期)AJMPLOOP1;(2机器周期)DATA:DB80H,83H,86H……共256个数据。…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………7A卷参考答案:一、1外部RAM/IO、MOVX28、80H321H、7400H、08H50000H、0013H二、1因为51单片机中的这两个空间是独立编址的,各自拥有自己的访问指令,故可以地址重叠。如ROM空间使用MOVCA,@A+DPTR指令,而外部RAM空间则使用MOVXA,@DPTR指令。2“现场”指的是中断服务程序中所用到的地址资源,只有进行了现场保护才能保证中断服务程序在任何时候被执行后,不影响主程序的运行。3通常保存在堆栈区,但对于通用寄存器组的保护可通过切换通用寄存器组的映射区来保护,这样做保护速度快。如主程序中用0组,中断服务程序中通过设置RS1、RS0=01,来使用1组空间。4直接片上地址,使用的是片内RAM中地址单元,8位寻址,端口地址固定,具有位地址,使用MOV指令。而总线扩展模式使用外部RAM/IO空间,16位寻址,端口地址依设计而定,使用MOVX指令。三、1.MOVDPTR,#2000H;(1分)CLRA;(1分)MOVCA,@A+DPTR;(1分)INCDPL;(1分)MOVX@DPTR,A;(1分)2.CLRC;(1分)MOVR4,#00H;(1分)MOVA,R2RLCA;(1分)MOVR2,A;(1分)MOVA,R3RLCAMOVR3,AMOVA,R4;(1分)RLCAMOVR4,A3.CLRCMOVDPTR,#2100H;(1分)MOVXA,@DPTR;(1分)RRCA;(1分)MOVDPH,#41H;(1分)8MOVX@DPTR,A;(1分)4.MOVC,P1.0ANLC,/P1.1;(1分)MOVF0,C;(1分)MOVC,P1.1;(1分)ANLC,/P1.0;(1分)ORLC,F0;(1分)MOVP1.2,C四、ORG0000H;(1分)MOVDPTR,#2000H;(1分)MOVXA,@DPTR;(1分)MOVDPTR,#DTATAB;(2分)MOVCA,@A+DPTR;(2分)MOVDPTR,#2001H;(2分)MOVX@DPTR,A;(1分)五、ORG0000HMOVA,#00HMOVP2,ALOOP1:JBP1.0,$ACALLMSADDA,#01HDAAMOVP2,AAJMPLOOP1MS:MOVR0,#0FFHLOOP2:NOPDINZR0,LOOP2RET9六、ORG0000HLOOP1:MOVA,R0;(1机器周期)MOVDPTR,#DATA;(2机器周期)MOVCA,@A+DPTR;(2机器周期)MOVDPTR,#0DFFFH;(2机器周期)MOVX@DPTR,A;(2机器周期)INCR0;(1机器周期)AJMPLOOP1;(2机器周期)DATA:DB80H,83H,86H……共256个数据。1.正弦波的周期=(1+2+2+2+2+1+2)*256us=12*256us=3072us5分2.正弦波的周期受晶振频率和波形输出程序的影响,256个值的输出速度决定正弦波的周期,延长每个输出值的间隔时间即可延长正弦波的周期。2分3.ORG0000H评分(10分):1.能正确分配各段程序的地址得3分AJMPBEGIN2.正确初始化程序3分ORG000BH3.正确中断服务程序3分AJMPCTC04.主程序“AJMP$”1分ORG0030HBEGIN:MOVR0,#00HMOVTMOD,#02H;T0;定时,8位自动重装。MOVTH0,#-20MOVTL0,#-20MOVIE,#82HSETBTR0AJMP$CTC0:MOVA,R0;(1机器周期)MOVDPTR,#DATA;(2机器周期)MOVCA,@A+DPTR;(2机器周期)MOVDPTR,#0DFFFH;(2机器周期)MOVX@DPTR,A;(2机器周期)INCR0;(1机器周期)RETI;(2机器周期)DATA:DB80H,83H,86H……共256个数据。4.定时器的最短定时时间不得短于20个机器周期的时间,因为中断服务程序每执行一遍需要12机器周期,加上中断响应时间为5至8个机器周期,故定时器的最短定时时间=12+8=20个机器周期。3分105.将上面程序中的“AJMP$”替换成如下程序:SUBJ:JBP1.0,ADDJACALL延时子程序CLRCMOVA,TH0SUBBA,#-20JNCADDJINCTH0ADDJ:JBP1.1,SUBJACALL延时子程序MOVA,TH0JZSUBJDECTH0AJMPSUBJ延时子程序:省略5小题评分:图1分,两个键的程序段各2分。