Ch 03 8051 的組合語言與系統發展.

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
单片机应用技术 项目一 循环彩灯装置 第7讲 Keil软件的使用 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
Advantage And Disadvantage
第10章 DOS功能调用与BIOS中断调用.
大连理工大学软件学院 软件工程系 赖晓晨 计算机组成与结构 大连理工大学软件学院 软件工程系 赖晓晨
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
A B C D E F 5-2 七段數字顯示控制實習 Input 0H 1H 2H 3H 4H 5H 6H 7H 8H 9H 0AH 0BH
5-3 8x8矩陣LED控制實習.
第四章 指令系统及汇编语言程序设计.
8051 指令.
第四章 指令系统及汇编语言程序设计.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年10月30日.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
单片机原理与应用.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
计算机文化基础 第一章 计算机的基础知识.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
指令集架構 計算機也跟人類一樣,需要提供一套完整的語言讓人們跟它充分溝通,以完成正確的計算工作。
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月05日.
第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 指令、指令系统、机器代码
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
A B C D E F 5-2 七段數字顯示控制實習 Input 0H 1H 2H 3H 4H 5H 6H 7H 8H 9H 0AH 0BH
第2章 单片机的结构原理与 简单应用 (课时:10学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第三章 指令系统.
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程.
单片机系统设计 教师:朱华贵 2016年03月01日
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
5-6 串列埠模式0輸出埠擴充實習.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
第三章 计算机系统的组成与工作原理.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
单片机原理及接口技术 前修课程:数模电、微机原理.
第1章 微型计算机基础.
Presentation transcript:

Ch 03 8051 的組合語言與系統發展

3.1 Instruction Format Instruction content: opcode + operand Label: opcode destination operand , source oprand Example: MOV A, R1 Effect: (A)  (R1) Source operand: R1 Destination operand: A Operand type: memory location, register, constant, Number of operands: NOP 1 INC A 2 MOV R1, A 3 CJNE A,30H,NEXT [Jump to NEXT if (A) ≠ (30H)]

Assembly language vs machine code MOV A, #60H “MOV” is a mnemonic, 給人看的。 74H 60H 74H is the opcode, 給 processsor 看的。

Label opcode operands comment ORG 043H ; Program starts from 0043H START: MOV DPTR,#TABLE MOV R0,#6 N_BYTE: MOV A,#0 MOVC A,@A+DPTR MOV P1,A CALL DELAY INC DPTR DJNZ R0,N_BYTE JMP START DELAY: MOV R7,#0 DL1: MOV R6,#0 DJNZ R6,$ DJNZ R7,DL1 RET TABLE: DB 00H,33H,66H,99H,0CCH,0FFH DS 3 DW 1234H,0ABCDH END

1 ;Label opcode operands comment 2 3 0043 ORG 043H ; Program starts from 0043H 4 0043 START: 5 0043 90 00 5E MOV DPTR,#TABLE 6 0046 78 06 MOV R0,#6 7 0048 N_BYTE: 8 0048 74 00 MOV A,#0 9 004A 93 MOVC A,@A+DPTR 10 004B F5 90 MOV P1,A 11 004D 12 00 55 CALL DELAY 12 0050 A3 INC DPTR 13 14 0051 D8 F5 DJNZ R0,N_BYTE 15 0053 01 43 JMP START 16 0055 DELAY: 17 0055 7F 00 MOV R7,#0 18 0057 DL1: 19 0057 7E 00 MOV R6,#0 20 0059 DE FE DJNZ R6,$ 21 005B DF FA DJNZ R7,DL1 22 005D 22 RET 23 24 005E TABLE: 25 005E 00 33 66 99 CC DB 00H,33H,66H,99H,0CCH,0FFH 0063 FF 26 0064 DS 3 27 0067 1234 ABCD DW 1234H,0ABCDH 28 006B END

3.2 Addressing Modes Example: 中壢市中大路300號 中央大學 Zip code = 32001

Addressing Modes Immediate data: MOV A, #60H (A)  #60H #: constant   “Immediate” means the data is in the instruction and can be accessed by the CPU immediately. The processor: Reads the opcode into the CPU Acts according to the opcode

Addressing Modes Direct addressing: MOV A,60H [ (A)  (60H) ]   60H = memory address E5H opcode 60H Address of data A CPU “Direct” means the data address is contained in the instruction and the CPU can access the data directly with the data address.

Addressing Modes Register addressing: MOV A,R3 [ (A)  (R3) ] MOV A,13H [ (A)  (13H) ]   R3 = register name 13H = register R3’s address (when RS1=1, RS0=0) (Register addressing 是direct addressing的一種) R2 R3 R4 12H 13H 14H

Address of R0 ~ R7 RS1, RS0 0, 0 0, 1 1, 0 1, 1 Register bank, selected RB0 RB1 RB2 RB3 R0 00H 08H 10H 18H R1 01H 09H 11H 19H R2 02H 0AH 12H 1AH R3 03H 0BH 13H 1BH R4 04H 0CH 14H 1CH R5 05H 0DH 15H 1DH R6 06H 0EH 16H 1EH R7 07H 0FH 17H 1FH PSW (Program Status Word) CY AC F0 RS1 RS0 OV P

Addressing Modes Indirect addressing: MOV A,@R0 @: pointer @R0 = an address whose value is stored at R0 Possible pointers: @R0, @R1, @SP, @DPTR   MOV DPTR, #1234H MOV A, @DPTR    MOV SP,#30H PUSH 60H 5FH 28H 60H 3FH Data to be accessed 61H 41H R0 60H (3) (2) E6H opcode (1) A “Indirect” means the data address is not contained in the instruction CPU

Addressing Modes 30H  31H SP before & after pushing Indirect addressing: MOV A,@R0 @: pointer @R0 = an address whose value is stored at R0 Possible pointers: @R0, @R1, @SP, @DPTR 類似: 托人帶來支票   MOV DPTR, #1234H MOV A, @DPTR    MOV SP,#30H PUSH 60H 30H 25H Top of stack before pushing 31H 38H Top of stack after pushing 60H Data to be pushed (3) 75H Opcode of mov SP,#30H 81H 30H C0H Opcode of push 60H 60H “Indirect” means the data address is not contained in the instruction (1) A (2) CPU

Addressing Modes Index addressing (只能用於程式記憶體) MOVC A , @A + DPTR Possible base registers: DPTR, PC Possible index register: A

Addressing Modes 定址法 資料所在 Immediate 程式記憶體 Direct 資料記憶體 Register Indirect Index

(SP) = the content of SP ((SP)) = the content of (SP) 30H SP 2FH 1AH 30H 85H 31H 69H

3-3 8051 指令集 49 one-operand 111 instructions 46 two-operand 3-3 8051 指令集 49 one-operand 111 instructions 46 two-operand 16 three-operand

Instructions that can modify flags

3.4 Program Development 標記 Label 運算碼Opcode 運算元Operand(s) 註解 Comment 32 letters max. Label 加 : Label 不加 (定義data時); 被組譯成記憶體的位址值。 Opcode A mnemonic Operand Comment ;(分號) 之後的文字,給人看,組譯器不看。

5_1_1.asm Pseudo instruction,指示 assembler 的動作。 ORG 000H MOV A,#10000000B NEXT: MOV P2,A CALL DELAY RR A JMP NEXT ;============================== ; DELAY 0.1S DELAY: MOV R6,#200 DL1: MOV R7,#249 DJNZ R7,$ DJNZ R6,DL1 RET END Instruction, 給 processor 執行的。 #10000000B 可寫成 #80H或 #128 A = 10000000B, 01000000B, 00100000B, 00010000B … Pseudo instruction,指示 assembler 不必組譯”END”之後的文字。

MOV A,1H MOV A,2H MOV A,3H . MOV A,99H END “END” 可以讓組譯程式停止組譯 “END”之後的程式。

Number Systems Number System Symbol Example Binary B Octal O Decimal D, (Default) Hex H ASCII ‘ ’ or “ ”

虛擬指令 給組譯程式看的,指示如何組譯。 不是給 processor 執行的。 ORG n END EQU To define a constant. e.g. LF EQU 0AH DB DW DS n REG

End of Lecture, 20091007

進入 DOS 視窗 打開 DOS 視窗的步驟: 所有程式  附屬應用程式  命令提示字元

DOS Commands Command >cd Change directory >dir Show directory

1 ;Label opcode operands comment 2 3 0043 ORG 043H ; Program starts from 0043H 4 0043 START: 5 0043 90 00 5E MOV DPTR,#TABLE 6 0046 78 06 MOV R0,#6 7 0048 N_BYTE: 8 0048 74 00 MOV A,#0 9 004A 93 MOVC A,@A+DPTR 10 004B F5 90 MOV P1,A 11 004D 12 00 55 CALL DELAY 12 0050 A3 INC DPTR 13 14 0051 D8 F5 DJNZ R0,N_BYTE 15 0053 01 43 JMP START 16 0055 DELAY: 17 0055 7F 00 MOV R7,#0 18 0057 DL1: 19 0057 7E 00 MOV R6,#0 20 0059 DE FE DJNZ R6,$ 21 005B DF FA DJNZ R7,DL1 22 005D 22 RET 23 24 005E TABLE: 25 005E 00 33 66 99 CC DB 00H,33H,66H,99H,0CCH,0FFH 0063 FF 26 0064 DS 3 27 0067 1234 ABCD DW 1234H,0ABCDH 28 006B END Thu Oct 8 2009 09:23 Page 2 Why, jumping to F5H? Ans: PC = 0053H Destination = N_BYTE = 0048H 0048H -0053H ---------------------- FFF5H = F5H (以後再詳述。)

:10 0043 00 90005E7806740093F590120055A3D8F5 DE :10 0053 00 01437F007E00DEFEDFFA2200336699CC 87 :01 0063 00 FF 9D :04 0067 00 1234ABCD D7 :00 0000 01 FF

Format of Intel HEX file

3-5 系統發展的流程 圖3-5-1 (a) 非 ISP 之8051系統 將程式燒錄到 8051 較麻煩與耗時;所以最好先用ICE來驗證程式已經是正確的,才進行燒錄到 8051 的動作。 圖3-5-1 (b) 具 ISP 之8051系統 將程式燒錄到 8051 很簡易與快速,所以直接將程式燒錄到 8051以進行驗證;經過多次燒錄、除錯、修改以確定程式完全正確。 ICE (In-Circuit Emulator): price > 10000 NT$ Emulation 用另一套硬體去驗證目標硬體。 Simulation 用軟體模擬去驗證目標硬體。