好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机原理07-082(练习)参考答案.pdf

7页
  • 卖家[上传人]:飞***
  • 文档编号:47428057
  • 上传时间:2018-07-02
  • 文档格式:PDF
  • 文档大小:88.59KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 试卷第 1 页(共 7 页)《单片机原理与应用》练习题专业年级班学号姓名题号一二三四五六七八总得分得分得分一、选择题 每小题2 分,共 20 分)1、1971 年首次宣布4004 的 4 位微处理器的公司是【A】A.Intel B.Fairchild C.Motorola D.sony 2、执行 LDA #$F0 COMA 语句后, A寄存器的内容为【B】A.#$00 B.#$0F C.#$F0 D . #$FF 3、MC68HC908GP32 单片机具有选择上拉电阻的并口是【C】A. PTA口、 PTB口 B.PTB口、 PTC口C. PTC 口、 PTD口 D.PTD口、 PTE口4、MC68HC08 系列单片机CPU位数是【B】A. 4 位B. 8位C.16 位 D. 32位5、CPU08中位数为16 位的寄存器个数是【A】A. 3 B.4 C.5 D.6 6、MC68HC908G32CB单片机 ROM 存储器类型为【D】A. EPROM B. EEPROM C.OTP ROM D.FLASH ROM 7、与键盘中断模块复用的引脚是【A】A. A 脚 B.B脚 C. C脚 D.D 脚8、GP32的 AD转换模块最多能同时采集模拟信号数量为【D】A. 2 B. 4 C.6 D.8 9、异步串行通信SCI 接口模块中的SCBR 寄存器名称是【D】A.控制寄存器 B.状态寄存器 C.数据寄存器 D.波特率寄存器10、一电压表量程为0-5V,与十进制数0-255 一一对应,若电压为3V时,请问其十进制数的值为【C】A. 3 B. 100 C. 153 D. 255 得分二、填空题。

      (每空 1 分,共 10 分)1. GP32 存储器组织中,512 字节片内RAM ,32K 字节 Flash ROM2. 实现计数与定时的基本方法有: 完全硬件方法,完全软件方法,可编程计数定试卷第 2 页(共 7 页)时方法3. ASM08编译器能接受的伪指令有存储区定义伪指令,字节常数定义伪指令,双字节常数定义伪指令,赋值伪指令,定位伪指令4. 通用 I/O 口中,表示数据流向的寄存器名称是数据方向寄存器,表示从其读出与写入数据值的寄存器名称是数据寄存器5. 串行通信中, 其传输格式 “9600,N,8,1“, 其中“9600” 表示传输速率为9600bps ,“8”表示一次传输8 位数据CONVERT: PSHA ;INH ADD #$40 ;IMM STA !1,SP ;SP1 LOOP: ADD $40 ;DIR ADD ,X ;IX STA $40,X ;IX1 MOV $3D,X+ ;DIX+CBEQ $40, X+,LOOP;IX1+MOV $40, $3D ;DD BRA LOOP ;REL 得分四、程序分析。

      (每小题为4 分,共 12 分)1、LDA #$05 PSHA LDA #!200 DBNZA * ;A=$00 ,C=0 PULA ;A=$05 ,Z=1 2、CLC LDA #$ A C ADD #$D B ; A=$87 ,C=1 LDA #$09 ADC #$00 ; A= $0A ,C=03、MOV #$00,$140 MOV #$01,$141 LDHX #$0140 得分三、写出下列各语句(指令)的寻址方式每格 1分,共 10 分)试卷第 3 页(共 7 页)MOV X+,$40 ;HX=$0141 ,($40)= $00 MOV X+,$41 ;HX=$0142 ,($41)= $01 得分五、程序设计题 (每小题10 分,共 30 分)1、如图所示 试用面向对象方法编写程序要求:开关K合上,则点亮指示灯LED ;开关断开,则熄灭指示灯LED include “GP32ASM.h“ Light_P = PTA ; 灯(Light)接在 PTB口Light_D = DDRA ;相应的方向寄存器Light_Pin = 1 ;所在的引脚//[开关所接引脚定义] Switch_P = PTB ;开关 (Switch)接在 PTA口Switch_D = DDRB ;相应的方向寄存器Switch_Pin = 1 ;所在的引脚//[两个起始地址名] RAMstartAddr = $0040 ;RAM的起始地址FlashStartAddr = $8000 ;程序开地址.org FlashStartAddr //程序起始地址MainInit:: //复位后程序从此开始执行//[系统初始化 ] SEI //禁止所有中断LDHX #$0240 //堆栈初始化为RAM 最高端TXS JSR GP32Init //系统初始化,初学时跳过此处//[Switch开关初始化 ] BCLR #Switch_Pin,Switch_D //定义开关引脚为输入引脚//[Light指示灯初始化] BSET #Light_Pin,Light_D //定义指示灯引脚为输出引脚BSET #Light_Pin,Light_P //初始时,指示灯“ 暗“ //[程序总循环入口] MainLoop: K LED PTA1 PTB1 Vcc GND 试卷第 4 页(共 7 页)BRCLR #Switch_Pin,Switch_P,LIGHTON //当开关合上,转到点亮指示// 灯 PTA.1 子程序 LIGHTON BSET #Light_Pin,Light_P //否则,开关断开,指示灯PTA.1 灭JMP MainLoop //循环判断开关状态:合上或断开LIGHTON: BCLR #Light_Pin,Light_P //点亮指示灯PTA.1 循环JMP MainLoop //[外部子程序存放处,这些子程序都在当前目录中] .include “GP32init.s“ .include “vectors08.s“ 2、某传感器与MCU 的 AD 模块通道1 相连,经多次实验总是无法采集所需的理想值。

      试编写一子程序,若所需数据采集成功(假设此数据为$13) ,则经SCI 向外发送“ISUCCESS! ”,否则,继续采集MainLoop: LDA #$01 STA ADSCR BRCLR #7,ADSCR,. LDA ADR CMP #$13 BNE MainLoop JSR SendBuffers JMP MainLoop SendBuffers:: LDHX #$00 LOOP: LDA Buffers,X BRCLR #7,SCS1,. STA SCDR AIX #1 CPX #10 BNE LOOP RTS Buffers:: .ASCⅡ “ISUCCESS!”3、试编写一键值处理子程序操作要求:以“#”键为开启键键盘开启后,当键值为字符“0-7 ”时,将键值转为实际数字值;其余键值无效 已知键值存在变量KB_Value 里// 入口地址: KB_Value // 出口地址:寄存器A Dowith:: PSHA LDA KB_ValueCMP #” #”BNE Dowith LOOP: 试卷第 5 页(共 7 页)LDA KB_ValueCMP #$30 BLO LOOP CMP #$37 BHI LOOP //AND #%00001111 SUB #$30 PULA RTS 得分六、综合题。

      (共 18 分)下面程序是MCU 与 PC 机通过串口联合编程的程序,其VB 界面如下图所示请根据要求回答下列问题1、试简要说明此程序的功能4 分) MCU 每隔 1 秒产生 1 次溢出中断,秒数减1,形成评估时间倒计数,在VB 界面里显示; VB将接收 MCU 发来的数据进行处理,并按时间格式要求在文本框里显示; 由于 MCU 里的倒计时的初始值是固定的,与实际不同,为了克服这个缺点,在 VB上设置一个校正时间按键, 在校正时间下框输入具体的值,就可使 MCU 的值 为当前正确值2、芯片复位时,MCU 向 PC机发送数据,请问在“距离本科教学评估时间”下面文本框显示多少天几小时几分钟几秒钟?(4分) 答:18 天 12:59:59 3、试比较在主循环或中断子程序里发送数据在PC机上显示的特点?(2 分) 答: (1)在主循环里发送数据,每循环一次则向PC机发送一次数据,速度极快, 在 VB界面上显示的只是闪烁数据,看不清数据 (2)在中断子程序里发送数据,只有每次中断产生时,才向PC机发送数据试卷第 6 页(共 7 页)4、补充完整MCU 方程序( 1)中的程序和PC方( 2)中的程序。

      8 分)附一: MCU 方程序MainInit:: SEI //关总中断LDHX #RAMendAddr + 1 TXS JSR MCUinit JSR SCIinit JSR T1init MOV #18,*Time MOV #12,*Time + #1 MOV #59,*Time + #2 MOV #59,*Time + #3 JSR EnableSCIreInt JSR EnableT1OVInt CLI MainLoop: CMP *Time + #3 BEQ MainLoop LDA #4 LDHX #Time JSR SCIsendN LDA *Time+#3 JMP MainLoop //定时溢出中断子程序isrT1OV:: SEI PSHH //保护 H //1s 到,递减时 ,天,分 ,秒缓冲区的值JSR SecDec1 LDA T1SC BCLR #TOFBit,T1SC PULH //恢复 H CLI RTI //秒减 1 子程序SecDec1:: PSHA //保护 A DEC *Time + #3 //秒数减 1 LDA *Time + #3 CMP #$FF BNE SecAdd1_Exit LDA #59 STA *Time + #3 DEC *Time + #2 LDA *Time + #2 CMP #$FF BNE SecAdd1_Exit LDA #59 STA *Time + #2 DEC *Time + #1 LDA *Time + #1 CMP #$FF BNE SecAdd1_Exit(1)在下面完成小时数减1,当倒计数数为零时,则所有数为0 的程序段。

      MOV #$00,*Time MOV #$00,*Time + #1 MOV #$00,*Time + #2 MOV #$00,*Time + #3 LDA #%00100110 STA T1SCSecAdd1_Exit: PULA //恢复 A RTS试卷第 7 页(共 7 页)附二、 PC 方 VB 程序Option Explicit '检查未经声明的变量Dim SendData( ) 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.