




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机学习第四章第1页,共17页,2022年,5月20日,2点45分,星期二汇编语言程序设计中的数计算机只能识别二进制数机器指令,它原本是不认识常用的十六进制数和十进制数的。机器指令/目标代码: 由0/1代码组成的操作码与操作数。十六进制数:便于读写记忆的二进制数的简写形式。 (09,AF 后缀:H/h)BCD码:用二进制数表达的十进制数。 (09表示为:00001001B 后缀:B/b,H/h)二进制数 :由0/1组成、“逢2进1”的数制。 如:01011110B (01 后缀:B/b)2第2页,共17页,2022年,5月20日,2点45分,星期二汇编语言编程基本规则汇编语言:用助记符描述的
2、指令的集合。指令中以 AF 开头的十六进制数前必须添一个 “0”。二进制数必须带后缀“B”或“b”;十六进制数必须带后缀“H”或“h”;十进制数的后缀是“D”或“d”或无.标号:操作码 目的操作数,源操作数;注释汇编程序:汇编语言编写的程序借助编译工具编译成为目标代码,计算机才能识别。这个编译工具称为汇编程序。3第3页,共17页,2022年,5月20日,2点45分,星期二汇编程序的伪指令汇编程序 软件 工具工具软件: 将程序员用汇编语言编写的程序翻译成机器码 (真)指令:告诉计算机如何操作以及做何种操作用汇编语言编写的程序在此被称为应用程序伪指令:告诉汇编程序在翻译应用程序时有何具体约定。伪指
3、令不进行具体的操作,那是真指令的事。 比如:从何处开始,何处结束,某些编程者自己规定的表述代表什么意思 4第4页,共17页,2022年,5月20日,2点45分,星期二汇编程序的常用伪指令ORG addr16ASM51程序中一定要写!规定编译后的机器代码存放的起始位置。END ASM51程序中一定要写!表示翻译到此结束,其后的任何内容不予理睬。符号名称 EQU 表达式将表达式的值赋予符号名称。程序中凡出现该符号名称就等同于该表达式。$ “当前PC值”也叫位置计数器 代表正在执行的指令所在位置。5第5页,共17页,2022年,5月20日,2点45分,星期二符号名称 BIT 位地址将位地址的值赋予符
4、号名称。程序中凡出现该符号名称就代表该位地址。DW 双字节数据或双字节数据组将双字节数据或双字节数据组顺序存放在此后的存储单元中。占据相应存储空间。DB 8位数据或8位数据组将8位数据或8位数据组顺序存放在此后的存储单元中。占相应数量的存储空间。6第6页,共17页,2022年,5月20日,2点45分,星期二程序的顺序/分支/循环三种基本结构 ORG 2000HBCD2B:MOV A, R2 ;取入口数据 ANL A, #0F0H ;取出十位 SWAP A ;高4位 低4位 MOV B, #0AH MUL AB ;十位乘10 MOV R3,A ;积暂存进R3 MOV A, R2;再取入口数据 A
5、NL A, #0FH ;取出个位 ADD A, R3 MOV R2,A ;结果 R2 RET ;若不是子程序可用END 例:将R2中BCD码数转为二进制数存进R2(此子程序在下一例中还要用到)7第7页,共17页,2022年,5月20日,2点45分,星期二编程要点: 两字节 BCD码数范围为: 0000H9999H 相应2进制/16进制数为: 0000H270FH 调用 BCD2B子程序实现“千位,百位”转为二进制, 并乘100; 再调 BCD2B子程序实现“十位,个位”转为二进制; 最后,对位相加。例:将R5R4中的双字节BCD码数转为 二进制数存于R5R4中。8第8页,共17页,2022年,
6、5月20日,2点45分,星期二例: 将R5R4中的两字节BCD码数转为二进制数存于R5R4中X 100千 百十 个二进制+Cy+(R5)(R4)(R5)(R4)(R6)(A)(R5)(A)二进制二进制二进制二进制二进制调 BCD2B调 BCD2B9第9页,共17页,2022年,5月20日,2点45分,星期二 ORG 2000H VAR EQU 30H ;定义缓存单元 FUNC EQU 31HBR1: MOV A,VAR ;取出变量“X” JZ COMP ;若=0,就赋 0 JNB ACC.7,POS1 ;判断 = 正? MOV A,#0FFH ;(-1 = +1取反加1) SJMP COMP
7、;输出 -1POS1:MOV A,#01H ;输出 +1COMP:MOV FUNC,A ;赋给函数“Y”HERE:AJMP HERE END例3:1 (X0) 0 (X=0) 1(X0)Y=10第10页,共17页,2022年,5月20日,2点45分,星期二任务一:控制一盏灯点亮 任务二:红灯周期性亮/灭 任务三:红外防盗报警 0RG 0000H AJMP MAIN ORG 0003H RL A ACALL DELAY RETIMAIN:MOV A,#80H SETB EX0 SETB EAWAIT:JB ACC.0,JOB1 JB ACC.1,JOB2 JB ACC.2,JOB3 AJMP W
8、AITJOB1: CLR P1.0 ;亮红灯HERE: AJMP HEREJOB2: CPL P1.0 ;亮/灭 ACALL DELAY ;延时1秒 AJMP JOB2 ;重复JOB3: CLR P1.1 ;亮绿灯REDO: SETB P1.3 CHECK:JNB P1.3,CHECK LOOP: ;报警! AJMP REDO ;再检测11第11页,共17页,2022年,5月20日,2点45分,星期二 ORG 1000HDELAY:MOV R6,#200 ; 1TmLOOP1:MOV R7,#248 ; 1Tm NOP ; 1TmLOOP2:DJNZ R7,LOOP2 ; 2Tm DJNZ R
9、6,LOOP1 ; 2Tm RET ; 1Tm例:软件循环延时100mS(晶振12MHz) 1Tm =1uS 100mS = 100000 uS MOV Rn #data 和 NOP 是单机器周期指令 DJNZ Rn,rel 是双机器周期指令 200 = 0C8H ; 248 = 0F8H1+1+ 248x2 =498(498+2)x20012第12页,共17页,2022年,5月20日,2点45分,星期二 ORG 1000HDL1S:MOV R7,#10DL1: MOV R6,#200DL2: MOV R5, #250 DL3: DJNZ R5, DL3 DJNZ R6,DL2 DJNZ R7
10、,DL1 RET例:软件循环延时1S(晶振12MHz) 1Tm =1uS 1S = 1000000 uS MOV Rn #data 是单机器周期指令 DJNZ Rn,rel 是双机器周期指令1+ 250 x21+ (1+250 x2) +2)x2001+ (1+250 x2+2) x200+2x1013第13页,共17页,2022年,5月20日,2点45分,星期二 ORG 2000HH2ASC: MOV A,R2 ;取待转换的数据(入口) ADD A,#0F6H ;判此数是否10 ? 若10,则C=1;10,则C=0 MOV A,R2 ;重取待转换的数据 JNC AD30H ;小于10就跳去加
11、30H ADD A,#07H ;10就先加7 再去加30H AD30H: ADD A,#30H MOV R2,A ;存结果(出口) RET例:16进制数(00H0FH)转ASCII码子程序算法:凡10的十六进制数加37H;凡10的 十六进制数加 30H。(ASCII码表09 30H39H, AF 41H46H 14第14页,共17页,2022年,5月20日,2点45分,星期二TABL: DW 050FH,0E89H,0A695H,1EAAH,0D9BH,7F93H DW 0373H,26D7H, 2710H,9E3FH,1A66H,22E3H DW 1174H,16EFH, 33E4H,6CA
12、0H例:根据16个双字节数的序号查表找出对应数据表地址#TABL#TABL+1#TABL+2#TABL+3#TABL+30#TABL+31数据YY0高Y0低Y1高Y1低Y15高Y15低序号X00H01H0FH编程思路:以表格首地址(TABL)为基址,以序号(的2倍)为偏移量,查找对应的数据15第15页,共17页,2022年,5月20日,2点45分,星期二 ORG 2000HSTA1: MOV A,R2 ;取待查数据的序号 X (入口) RL A ;每数占2个单元,序号要乘2 MOV R4,A ;R4 序号 x2 (即偏移量) MOV DPTR,#TABL ;DPTR 表格首地址 MOVC A,A+DPTR ;(A) 查到数据高8位 XCH A,R4 ;数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019-2025年一级建造师之一建市政公用工程实务提升训练试卷A卷附答案
- 2025年初级经济师之初级建筑与房地产经济模考预测题库(夺冠系列)
- 2025年度二月份建筑装饰工程AI设计施工协同协议
- 2025新版城市建设用地使用权转让合同
- 2025年度购销合同模板
- 农资销售合同样本
- 机场急救飞行通讯稿
- 2025年个人抵押借款合同模板
- 国际视野社团培养全球思维计划
- 2025个人借款抵押合同范本
- 蓝豆云:2024酒店质检SOP及质检报告
- 云南省昭通市镇雄县2024年小升初数学自主招生备考卷含解析
- 车间划线执行标准
- 2023学校幼儿园怀旧“六一儿童节”(时光不老追忆童年)主题游园活动策划案-47P
- 幼儿园课件《胆小先生》
- 校服供货服务方案
- 2024年湖南省怀化市中考数学一模试卷(含解析)
- 内镜检查穿孔的应急预案
- TB10001-2016 铁路路基设计规范
- 2024年上海市中考语文备考之现代文阅读作家明前茶及梁晓声相关阅读训练
- 形势与政策:“一国两制”与祖国统一系列专题智慧树知到期末考试答案2024年
评论
0/150
提交评论