下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、6练习与思考题51.用于程序设计的语言分为哪几种?它们各有什么特点?答:51系列单片机的编程语言可以分为汇编语言和髙级语言(如C语言)两种,各自的特 点如下:名称特点缺点优点适用场合汇编语 亠 f=i用符号书写指令 (用助记符表示 操作码,特殊符 号表示操作数)机器不能直接识别:程序员 必须了解机器的结构和指 令系统,不易推广和普及; 不能移植,不具备通用性较易为人们 识别、记忆和 读写实时控制 系统高级语用以英语为基础 的语句编程机器不能直接识别:执行时 间长易于推广和 交流;不依赖 于机器,具有 通用性科学运算 和数据处 理2 说明伪指令的作用。“伪”的含义是什么?常用的伪指令有哪些?英功
2、能是什么?答:伪指令是在“机器汇编”过程中,用来对汇编过程进行某种控制或者对符号和标号进行 赋值。“伪”的含义是指这些指令不属于指令系统中的指令,汇编时也不产生机器代码。常 用伪指令有 ORG. EQU、DATA. DB、DW. DS、BIT、END。功能:ORG 一指岀后而程序块或数据块在程序存储器中存放的起始地址。EQU 一赋值命令DATA-对数据地址或代码地址赋予规左的字符名称DB 泄义字节数据DW 一定义字数据DS从指左的地址单元开始,保留若干单元备用。BIT 一定义位地址符号命令END 汇编结束命令3 设常咼和数据标号的左义为:ORG 2000HDAT1:DB1,2,3,4,5DAT
3、2:DB,ABCD'DAT3:DW1200H, -2TAB:DWDATE DAT3(1)画出上述数据或地址的存储形式。(2)写出各标号的地址。答:(1)2005H内容(H)地址2000H(2) DATl=2000H:DAT2=2005H;4. 编写双字节加法程序。要求:被加数放在内部RAM的30H (高字节)、31H (低字节)答:ORG 0000H单元中,加数存放在内部RAM的32H (髙字节)和33H (低字节)中,运算结果放存 放在30H, 31H中,进位存放在位寻址区的00H位。MOV A, 31HADD A, 33HMOV 31H, AMOV A, 30HADDC A, 32
4、HMOV30H, AMOVOOH, CSJMP $END5. 试编写程序,找出片内RAM 30H5FH单元中无符号数的最大数,并将结果存入60H单元。答:ORG0000HMOVRO,#30HMOVR7,#2FHMOVA,R0AGAIN:INCROMOVB, ACLR CSUBBA,R0JNCLIMOVA,R0AJMPL2L1:MOVA,BL2:DJNZR7,AGAINMOV60H,ASJMP$END6. 试编写程序,统计片内RAM的20H5FH单元中出现55H的次数,并将统计结果送60H 单元。答: TAB EQU 20HORG 0000HSTART:MOV60H, #0MOVRO, STAB
5、L00P2:MOVA, #55HCLRCSUBBA, R0JNZNEXTINC60HNEXT:INCROCJNERO, #60H,L00P2SJMP$END7.编写程序,将片外数据存储区中3000H30FFH单元全部淸零答:ORG0000HSTART:MOVA, #0MOVR7,#0MOVDPTR, #3000HLOOP:MOVXDPTR, AINCDPTRDJNZR7, LOOPSJMP$END8.将外部RAM 8000H开始的20个字节数据传送到外部RAM 8100H开始的地址单元中去° 答:DATA1EQU 8000HDATA2EQUOOHORG0000HSTART:MOVDP
6、TR, SDATAlMOVRO, SDATA2MOVR7,#20LOOP:MOVXA, ©DPTRMOVP2,#81HMOVXR0, AINCROINCDPTRDJNZR7, LOOPSJMPEND$9. 编程统计累加器A中“1”的个数。 答:以下程序将A中“1”的个数放在30H单元。DAT EQU 37HORG 0000HSTART:PUSH ACCMOV A, WATMOV 30H, #0NEXT:JZEXITCLRCRLCAJNCLIINC30HLI:AJMPNEXTPOPACCEXIT:SJMPEND$10. 编写程序,将30H34H单元中压缩的BCD码数(每个字节存放两个B
7、CD码数)转换为 ASCII码数,并将结果存放在片内RAM 60H69H单元。答:ORG0000HSTART:MOVRO,#30HMOVRl,#60HMOVR7,#2AGAIN:MOVA,R0ANLA,#OFOHSWAP AADDA,#30HMOVR1,AMOVA,R0ANLA,#OFHADDA,#30HINCR1MOVR1,AINCROINCR1DJNZR7,AGAINSJMP$END11. 将内部RAM 30H单元的内容转换成三位BCD码(百位.十位、个位),并将结果存入外 部RAM 1000H开始的单元。答:ORG 0000HSTART:MOV A, 30HMOV DPTR, S1000
8、HMOV B, #100DIV ABMOVX ©DPTR, AINC DPTRMOV A, BMOV B, #10DIV ABMOVX ©DPTR, AMOV A, BINC DPTRMOVX ©DPTR, ASJMP $END12请使用位操作指令,编程实现P1.0 = (20H)a(2FH)v(2AH),其中,20H、2FH、2AH都是位地址。答: ORG 0000HMOV C, 20HANL C, 2FHCPL CORL C, 2AHMOV Pl. 0, CSJMP $END13. 简述利用K“1 u Vision调试汇编语言程序的主要步骤。答:利用Keil U Vision调试软件的主要步骤包括:建立工程(project)-编写汇编语言 源程序并保存一在工程中添加源文件一设置工程一编译并连接,创建目标文件一调试程序。14. 如何产生.hex文件?答:编译并连接时,在u Project Workspace °窗口中,右键Target L选择Options ForTarget 4Target 1 * 选项,弹出 uoption for TargetM 对话窗,选 Output 选项卡,选中 CreateHEX File。15在Keil u Vision环境中,如何查看寄存器和数据存储单元内容
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论