《川大学单片机讨论课题目(含答案).ppt》由会员分享,可在线阅读,更多相关《川大学单片机讨论课题目(含答案).ppt(22页珍藏版)》请在三一办公上搜索。
1、(1)LDA$52(A)=_$27_ AND#$0F(A)=_$07_(CCR)=_$69_ ORA#30(A)=_$37_(CCR)=_$69_ TAX(A)=_$37_(X)=_$37_(2)LDA#$69 ADD$00C1(A)=_$6D_ CCR=_$68_(PC)=_$1425_,1、执行前($50)=$C0,($51)=$30,($52)=$27,($C1)=$04,($C2)=$D5,($C9)=$9F,CCR=$E9,(PC)=$1420,2、执行前($50)=$C0,($51)=$30,($52)=$27,($C1)=$04,($C2)=$D5,($C9)=$9F,CCR=$
2、E9,(PC)=$1420(1)LDA#$20(A)=_$20_ LSRA(A)=_$10_ SEC ROL$51($0051)=_$61_(2)LDA$51(A)=_$30_ ASRA ASRA ROLA ROLA(A)=_$30_,3、执行前($50)=$C0,($51)=$30,($52)=$27,($C1)=$04,($C2)=$D5,($C9)=$9F,CCR=$E9,(PC)=$1420(1)LDA#$69 LDX#$58 ADC$6A,X(A)=_$3F_ CCR=_$69_(PC)=_$1426_(2)LDX$50(X)=_$C0_ LDA$09,X(A)=_$9F_ COMA
3、(A)=_$60_(CCR)=_$69_ BIT$01,X(A)=_$60_(CCR)=_$6B_,4.已知MC68HC908GP32的TIM2通道1的输入捕捉的中断服务程序入口地址为$8098,为了在响应输入捕捉请求后能转到其中断服务程序执行,应该怎样设置这个入口地址?查表P24,TIM2通道1的向量地址是$FFEE$FFEF所以将$80放在$FFEE单元中,将$98放在$FFEF单元中,5、每个程序执行前寄存器中数据存放情况:(PC)=$8200(A)=$55(X)=$66(SP)=$00E0(CCR)=$E9 每个程序执行前RAM中数据存放情况:($0050)$20($0051)$21(
4、$0052)$23($0053)$71($0054)$25($0055)$27($0056)$29($0070)=$06($0071)=$80($0072)=$93($0073)=$E6($0074)=$D2($0075)=$C5(1)LDA#$78 STA$50 LDX$50 LDX,X(A)=_$78_(X)=_($78)_ RAM($0050)=_$78_(CCR)=_$69_,5、每个程序执行前寄存器中数据存放情况:(PC)=$8200(A)=$55(X)=$66(SP)=$00E0(CCR)=$E9每个程序执行前RAM中数据存放情况:($0050)$20($0051)$21($005
5、2)$23($0053)$71($0054)$25($0055)$27($0056)$29($0070)=$06($0071)=$80($0072)=$93($0073)=$E6($0074)=$D2($0075)=$C5(2)LDA#$85 SEC RORA;此时的(A)=$C2 RORA;此时的(A)=$E1 AND#$88 LDX$70;此时的(X)=$06 STA$50,X(A)=_$80_(X)=_$06_ RAM($0056)=_$80_,6、ORG$0A00BUFF FCB$26,$71NUM EQU 3ARY FDB$5679BCD FCC 3A4BCRE RMB 1 ORG$
6、8000LDHX#BUFFLDA$02,XCMP BUFFBLO Q1JMP R1Q1:LDA#0FFR1:STA RE,单元$0A00-$0A0B内容?以及(A)=_$71_(X)=_$00_,0A000A010A020A030A040A050A060A070A080A090A0A0A0B,7、ORG$8100 该程序的目标程序自_$8100_单元开始存放。CLRXLTB1:INCX CMP TABX,X BNE LTB2 LSLX 该程序使用LSLX指令的含义是_逻辑左移,X乘以2_。JMP TABY-2,X 此处用TABY-2而不用TABY的原因是 BRA指令本身自己所占字节为2_,如果
7、累加器A的内容为C,则程序将转至PROC(填写转到 处的标号)。LTB2:CPX TABX BNE LTB1 TABX:FCB 4 FCC ABCD TABY:BRA PROA BRA PROB BRA PROC BRA PROD该程序的意图是_查找和累加器A中内容相同的单元,并跳转到PROA/B/C/D相应的地方_,8.自DATA开始的n字节16进制数转换成2n字节ASCII码子程序(改错和优化)ORG$8000 D2 LDX COUNT2 CLR COUNT1 STA ASCII,X CLR COUNT2 INC COUNT2LOP LDX COUNT1 LDX COUNT1 CPX#(n
8、-1)LDA DATA,X BHI END AND#$0F LDA DATA,X CMP#$09 AND#$F0 BLS D3 LSRA SUB#$0A LSRA ADD#41 LSRA D3 ADD#30 LSRA D4 LDX COUNT2 CMP#$09 STA ASCII,X BLS D1 INC COUNT2 SUB#$0A INC COUNT1 ADD#41 BRA LOP D1 ADD#30 END RTS,错误:16进制的表示,以及JMP的使用优化:高4位的右移处理 对A-F的ASCII的处理ASCII码:09 是$30$39 AF 是$41$46思路:可以直接或$30,然后比
9、较和$39的大小,大于$39的再 加上$07。,8.自DATA开始的n字节16进制数转换成2n字节ASCII码子程序(改错和优化)ORG$8000 D2 LDX COUNT2 CLR COUNT1 STA ASCII,X CLR COUNT2 INC COUNT2LOP LDX COUNT1 LDX COUNT1 CPX#(n-1)LDA DATA,X BHI END AND#$0F LDA DATA,X CMP#$09 AND#$F0;此句可省略 BLS D3 LSRA ADD#$37 LSRA JMP D4 LSRA D3 ADD#$30;错误,16进制 LSRA D4 LDX COUNT
10、2 CMP#$09 STA ASCII,X BLS D1 INC COUNT2 ADD#$37 INC COUNT1 JMP D2 BRA LOP D1 ADD#$30;错误,16进制 END RTS,进一步优化,ORG$8000 CLR COUNT1 CLR COUNT2LOP LDX COUNT1 CPX#(n-1)BHI END;大于转移 LDA DATA,X LSRA LSRA LSRA LSRA ORA#$30 CMP#$39 BLS D1;小于等于转移 ADD#$07D1 LDX COUNT2 STA ASCII,X INC COUNT2 LDX COUNT1 LDX DATA,X
11、,AND#$0F ORA#$30 CMP#$39 BLS D2 ADD#$07 D2 LDX COUNT2 STA ASCII,X INC COUNT2 INC COUNT1 BRA LOP END RTS,9.DATA单元存有一个字节的有符号数,请用尽可能多的方法判断这个数的正负,如果是负数就将其绝对值存于DATA中,写出程序段。LDA DATA CMP#0 BLE L RTSL:NEGA STA DATA RTS,LDA DATA ASLA BCC M NEGA STA DATAM:RTS,CLRX LDA#$80 AND DATA,X BPL N LDA DATA NEGA STA DA
12、TAN:RTS,10、程序填空:查表求数字 0 9的显示字模子程序 功能:将ACC中存放的0 9的数字的字模从表中查出,存入 RESULT单元中。DISP _ _ STA RESULT RTSTAB _ FCB$6D,$7D,$07,$7F,$6F,程序填空答案:查表求数字 0 9的显示字模子程序 功能:将ACC中存放的0 9的数字的字模从表中查出,存入 RESULT单元中。DISP LDX ACC LDA TAB,X STA RESULT RTSTAB FCB$3F,$06,$5B,$4F,$66 FCB$6D,$7D,$07,$7F,$6F,1.段码表,$3F,$06,$5B,2.查段码表
13、,DISTA:FCB$3F,FCB$06,FCB$5B,FCB$4F,FCB$66,FCB$6D,FCB$7D,FCB$07,FCB$6F,FCB$7F,FCB$77,FCB$7C,FCB$39,FCB$5E,FCB$79,FCB$71,FCB$00,FCB$40,FCB$38,灭,中间,11、改错:将存于OPR1单元中的两位十进制整数转换为二进制数存于OPR1+1开始的单元中DTOB:LDAOPR1 ASLAASLAASLAASLALDX#10MUL PSHA,LDA OPR1 AND#$0F STA OPR1 PULAADDOPR1STAOPR1+2 TAX ADC#0 STAOPR1+1
14、 RTS,改错答案:将存于OPR1单元中的两位BCD码十进制整数转换为二进制数存于OPR1+1开始的单元中DTOB:LDAOPR1 LSRALSRALSRALSRALDX#10MUL PSHA,LDA OPR1 AND#$0F STA OPR1 PULAADDOPR1 STA OPR1+1RTS,12.从DATA单元开始,有100个单字节有符号数,分别统计出正数负数的个数放在COUNT1和COUNT2中,并将正数相加的结果放在PLUS开始的单元中,负数相加的结果放在MIN开始的单元中,再将正数累加的结果转换为ASCII码存放在RESI开始的单元中。,程序流程图如下:,正,一个班分三组,一组8个人4道题,最好分工每人都能讲一部分第一组1578;第二组24910;第三组361112,这是每组的题目,