




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.第一章1.5 129=10000001B=81H; 253=11111101B = FDH;21.125=10101.001B=15.2H 18.6=10010.1001,1001,1001B=12.999H (无限循环小数,根据精度确定需要的位数)1.12由题得三者均为正数,所以原码、反码、补码相同,故x1= x2= x3=0101,0111B=57H=871.13 该题与上题不同在均是负数,故原码、反码、补码相同的情况下,原数并不相同。第二章2.6最后一问:如果CPU使用两组寄存器,一般使用第0与第1组,那么剩下的寄存器组对应的地址单元可作一般缓冲用,第0与第1组已用掉地址:00H0FH, 故而堆栈SP的初值可设定在0FH或以上。第三章3.6 (1) A=57H, Cy=1(在符号位产生进位, 进位标志位Cy=1),进位的1是丢掉,累加器只能存8位信息。有同学写成A=157H, Cy=0. (2) A=3BH, Cy=03.8 SP=2FH, DPH=01H, DPL=23H, A=20H注意SP在每次的POP减一,故最终SP=2FH.(30H单元的前一单元不是29H)3.9 堆栈(0AH)=34H, (0BH)=12H, SP=0BH有的同学仅写DPTR的内容,是不够的,这里是将DPTR的内容压入栈中,但DPTR本身不代表堆栈。3.24 Loop循环完成的是24位的加法,每步将带进位位Cy相加,同时影响进位位。故经过loop循环后R0指向22H单元,结果送原R0指向的地址单元。原来:(22H)=A0H (27H)=76H(21H)=90H (26H)=6FH(20H)=80H (25H)=A0HLoop循环:(22H)=17H Cy=1(21H)=00H Cy=1(20H)=20H Cy=1之后,R0=23H, R1=28H。因Cy=1, 故(23H)=01H。所有地址单元只可存八位数,不可(21H)=160H. 3.25 A=10001100=8CH,执行乘以10的功能,因为A*2+A*2*2*2=A*10有的同学没有写出是乘以10的功能。3.26 实现的如下逻辑运算(P1.0 P1.1) P1.2 (P1.3),其中以用户标志位F0来存储(P1.0 P1.1) P1.2的结果。第四章4.5 略有的同学有这样的指令:MOV R0, #2100H. R0只能存八位,故只能指向低位的地址区。有的同学逻辑搞反,不为零应该继续循环,故:DJNZ R2, LOOP就可以了,不需要太复杂。还有的同学传送方向搞反了,程序写成:MOVX A, DPTRMOV R0, A计数器初始值应该为21H.补充习题,有的同学忘做,可以简单回答:LJMP与LCALL的主要区别是未发生保护现场、恢复现场操作。4.8 采用一种子程序的形式实现: ORG 1000H MOV DPTR, #3001H MOVX A, DPTR MOV B, A ; 也可用其它内部存储单元临时存放3001H的内容。 MOV DPTR, #3000H MOVX A, DPTR ACALL SQRSUM CJNE A, #10, EXE1 SJMP SAVEDATAEXE1: JC ADD10 SUBB A, #10 SJMP SAVEDATAADD 10: ADD A, #10SAVEDATA: MOV DPTR, #3002H MOVX DPTR, ADONE: SJMP DONESQRSUM: ADD A, B ;该子程序以寄存器A与B传送参数值 MOV B, A MUL AB RET END该程序没有考虑若a+b255,以及(a+b)2255的情况下,实际的角度应该就这两方面进行放弃操作。但本题未说明出现这种情况如何情况,为简化程序中未写入这些情况的处理。4.9 循环加判断实现 ORG 1000H MOV DPTR, #1000H MOV R2, #99 ;本程序循环的地址指针已经从1001H单元开始,故循环次数减1MOVX A, DPTR MOV 30H, A ;将当前值存入临时的30H单元LOOP: INC DPTRMOVX A, DPTRSUBB A, 30HJB ACC.7, NEXTADD A, 30H ;恢复A中的值,因为最新的值刚才进行了减操作。MOV 30H, ANEXT: DJNZ R2, LOOP MOV A, 30H MOV DPTR, #1100H MOVX DPTR, A END4.10 ORG 1000H MOV DPTR, #2100H MOV R3, #100 ;总计数器 MOV R0, #00 ;0计数器 MOV R1, #00 ; 正数计数器 MOV R2, #00 ; 负数计数器LOOP: MOVX A, DPTRJZ COUNT0 ;以下是两次分支程序实现多分支程序JB ACC.7, CTNEG ;转入负数统计程序段CTPOS: INC R1 SJMP DONECTNEG: INC R2 SJMP DONECOUNT0: INC R0DONE: INC DPTRDJNZ R3, LOOP END 该程序与4.2.7有些类似。4.12 LOOP: MOV R0,#30HMOV R7,#100 ; LOOP1:MOV A,R0 ;JZ LOOP2JNB ACC.7, LOOP2CPL AADD A,#81HMOV R0,A ; LOOP2:INC R0 DJNZ R7,LOOP1 RET ; 4.20 晶振为6MHz,得每个机器周期为12*1/6s=2s, 可以先行计算对于100ms,需要循环50,000个机器周期;对于1s, 需要500,000个机器周期;考虑DJNZ为2个机器周期,故循环次数比刚才的数字减半。对于100ms为简单,以25,000个DJNZ实现,可以250*100故,程序为由程序: ORG 1000H MOV R2, #250DELAY2: MOV R3, #100DELAY1: DJNZ R3, DELAY1 ; 这句将循环25,000次,执行时间最长。 DJNZ R2, DELAY2该程序执行时间:1+250*(1+100*2+2)=50751个机器周期=101.502ms,算对.精确的计算,可以将R3的值设为x,求解。1+250*(1+x*2+2)=50000,故x=98.5,取x=99程序执行时间:50251个机器周期=100.502ms. 对于1s, 由于需要500,000个机器周期, 以250,000个DJNZ实现已不方便。因为两个八位数相乘,最大255*255。故需要NOP指令加长内循环的时间。 ORG 1000H MOV R2, #250DELAY2: MOV R3, #DIMSDELAY1: NOP NOP NOP NOP NOP NOPDJNZ R3, DELAY1 ; 这句将循环62,500次,执行时间最长。 DJNZ R2, DELAY2简便计算:250*8*DIMS=500,000, 故DIMS=250该程序执行时间:1+250*(1+250*8+2)=500751个机器周期=1001.502ms,算对.第五章5.7 2761(1). 0000H1FFFH2761(2). 2000H3FFFH2761(3). 4000H5FFFH2761(4). 6000H7FFFH6264(1). 8000H9FFFH6264(2). A000HBFFFH自测题5.32. 2764(a) C000HDFFFH 2764(b) A000HBFFFH6264 6000H-7FFFH第六章习题略第七章7.3已知8255A的口地址为7FF07FF3H,阅读下述程序,回答问题:执行13条指令后,要求A,B,C三个端口各干什么?答:通过向控制寄存器送82H的数值,可知,A口将工作于方式0,输出状态;C口上半部将工作于方式0,输出状态;B口将工作方式0,输入状态;C口下半部将工作于方式0,输出状态。已A口=FFH,B口=78H,C口=7FH,(30H)=32H,执行49条指令后,A口、B口、C口,(30H)中的值发生了什么变化 ORG 8000H1 MOV DPTR, #7FF3H2 MOV A, #82H3 MOV DPTR, A4 MOV DPTR, #7FF1H5 MOVX A, DPTR6 MOV 30H, A7 MOV DPTR, #7FF0H8 MOV A, #79H9 MOVX DPTR, A答:执行第4-5条指令,将从B口输入数据至累积器A,执行第6条指令,(30H)=78H;执行第7-9条指令,将79H数值从A口输出,因此A口=79H,B口=78H,C口=7FH,(30H)=78H第八章自测题8.3 (1) 定时器0工作于方式1(2) 机器周期1s, 初始值x=0DD0H=3536, 定时时间65536-3536=62000个机器周期,即62ms。(3) 由于定时器/计数器溢出后,其中的值已变为0,不再是所需初始值,而方式1不具有自动装载初值的功能,若不重新赋值,必然达不到预期的定时效果,故需重置初值。补充题设单片机时钟为12MHz,利用定时器T1, 使P1.0引脚输出2.0ms的矩形波,要求占空比为1:2,试编写程序,要求中断方式,请问采用方式2可以吗?为什么?建议采用方式0。解:根据输出波的要求,可知可采用高低电平分别为1ms便能满足。欲满足定时1ms,初始值从最高位13位开始往后取高位八位,即看成:所以TH1=11100000=E0H, TL1=18H. 若采用方式2最大计数量为256,而定时时间需要的计数量为1000,所以一般情况下不可行。主程序: ORG 0000H AJMP MAIN ORG 001BH AJMP TINTMAIN: MOV TMOD, #00H MOV TH1, #0E0H MOV TL1, #18H SETB EA SETB ET1 SETB TR1 SJMP $中断程序:TINT: MOV TH1, #E0H MOV TL1, #18H CPL P1.0 RETI第九章 串行通信补充习题:已知单片机晶振fosc=6MHz。请编制串行通信数据接收程序,将接收的16个字节的数据送入片内505FH单元中。串行接口设定为工作方式3,要求波特率1200 b/s。(采用中断方式实现)解:由晶振fosc=6MHz,得机器周期2s,波特率=,得计数初始值x=256-13=243=F3H ORG 0000H AJMP MAIN ORG 0023H AJMP SINTMAIN: MOV TMOD, #20H ;定时器1工作于方式2 MOV TH1, #0F3H MOV TL1, #0F3HMOV SCON, #0D0H ;串行口工作于方式3,置接收REN有效MOV PCON, #00H ; 设培增位SMOD为0MOV R0, #50H ;存放的目的地址MOV R7, #10H ;存放数据的数量 SETB EA SETB ES1 ;置串行中断有效 SETB TR1 ;启动定时器,产生波特率,方式2自动装载初值,故不需要中断子程序重新装载 SJMP $中断程序:SINT: CLR RIMOV A, SBUF ;将接收的数据送入累加器A JB PSW.0, ONEE ;LOOP1 JB RB8, ERROR ;PSW.0与RB8不一致,转出错处理程序 SJMP RIGHTONEE : JNB RB8, ERROR ;另一种不致,转出错处理 RIGHT: MOV R0, A INC R0 DJNZ R7, CONTIN CLR ES SJMP CONTINERROR: CONTIN: RETI第十章 D/A和A/D转换10.12,去掉其中“采样周期为1s”,为避免调用延时子程序。实际不同通道之间是需要一定延时的。连线参照书10.3.4ORG 0000H AJMP MAIN ORG 0013H AJMP BINT1 ORG 0100HMAIN: MOV R1, #30H ;数据区首地址 MOV R4, #08 ;8路模拟信号计数器 MOV R2, #0 ;R2确定哪个通道A/D转换 SETB EA ;开中断总允许 SETB EX1 ;开外部中断1 SETB IT1 ;外部中断边沿触发 MOV DPTR, #0BFFFH ;送ADC0809地址 MOV A, R2 MOVX DPTR, A ;输出有效信号,启动A/D转换 SJMP $ ;等待中断 ORG 0200HBINT1: MOV DPTR, #0BFFFH ;ADC0809地址 MOVX A, DPTR ;输出有效信号,输入转换结果 MOV R1, A ;A/D转换结果送入R1指向的单元 LCALL DELAY ; 本题没有延时要求,若有可以在此加上 INC R1 ;目的单元指针增1 INC R2 ;修改模拟通道地址 MOV A, R2 ;下一个模拟通道 MOVX DPTR, A ;由中断子程序启动第1次以后的A/D转换 DJNZ R4, LOOP ; 8路未采集完,准备返回 CLR EX1 ;8路已采集完,通过关中断的形式结束LOOP: RETIEND 10.6 试进行程序设计,利用DAC0832输出一个锯齿波信号START: MOV DPTR,#7FFFH ;置DAC0832地址;LOOP1: MOV R7,#00H ;置初值;LOOP2: MOV A,R7 ;读输出值; MOVX DPTR,A ;输出 INC R7 CJNE R7, #40H, LOOP2 ;判断是否达到峰值 SJMP LOOP1 ;进入新的一轮输出11.2 用图11.1.3的动态显示接口电路编写显示Goodby的程序此题,可以在表中放入“日”字LED显示器可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年青岛科技大学辅导员考试真题
- 提升在职外语能力的计划
- 福建省福州十九中学2025年数学七下期末联考试题含解析
- 逆全球化趋势中的政治经济学研究试题及答案
- 2024年甘肃临夏博智电力安装有限公司招聘真题
- 2025届山东省潍坊市昌邑市数学七下期末调研模拟试题含解析
- 操作系统与网络集成试题与答案
- 计算机科学在其他领域的应用的试题及答案
- 未来市场动态与战略应对试题及答案
- 2025届重庆市江津区数学七下期末质量跟踪监视试题含解析
- 单层钢结构厂房施工组织设计方案
- 项目尽职调查清单模板
- 唯物主义和经验批判主义研读课件
- 环境保护和水土保持保证体系框图
- 【审计工作底稿模板】FH应付利息
- 眼部健康检测与分析课件
- 专业硕士学位论文修改报告(二)
- 苏州市建设工程造价计价解释
- 煤矿机电设备春季预防性检修计划
- 2017年山东、临沂爆炸事故案例分析
- 工贸企业安全管理台账资料
评论
0/150
提交评论