单片微机原理复习

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三(1)
ORG 4000H MOV A,#01H LP: MOV P1, A LCALL DELAY RL A SJMP LP DELAY: MOV R2,#100 DL3: MOV R0,#10 DL2: MOV R1,#7DH DL1: NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 DJNZ R2,DL3 RET END
微处理器 控制总线 数据总线 存储器 地址总线 接口适 配器
I/O设备
微机的组成
8051单片微机结构框图
CPU
8051芯片 按功能结构
程序计数器PC 控制器 指令寄存器存 指令译码器 数据指针寄存器DPTR 累加器A 运算器 程序状态寄存器PSW 数据存储器RAM
存储器
程序存储器ROM 定时/计数器:2个16位定时器T0,T1 I/O接口:P0、P1、P2、P3四个8位口 一个全双工串行口 5个中断源
8051的内部结构
FFFFH
FFFFH
64K 8051片内存储器 1000H 0FFFH FFH 80H 4KB ROM ROM
64K RAM (I/O)
0FFFH
SFR
256B RAM
7FH
00H
EA=1 0000H
0000H 存储空间分布图
EA=0
0000H
表2—l P3口专用功能
口 线 专 用 功 能
实验三(2) P1.7P1.0→ P1.6P1.1→ P1.5P1.2→ P1.4P1.3→ ORG 4000H LP1:MOV R7,#0 LP: MOV A, R7 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A LCALL DELAY INC R7 CJNE R7,#04H,LP SJMP LP1 TAB: DB 81H,42H,24H,18H DELAY:(略) END
用户 RAM 区 (堆栈、数据缓冲区) 位寻址区 (位地址 00H~7FH) R7 第三组工作寄存器区 R0
30H
2FH 20H 1FH 18H
17H
10H 0FH 08H 07H 00H
R7
第二组工作寄存器区 R0 R7
第一组工作寄存器区
R0 R7
第0组工作寄存器区
R0
FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H
TCON格式如下: 8FH 8EH 8DH 8CH
TF1 TR1 TF0 TR0
8BH 8AH 89H 88H ←位地址
IE1 IT1 IE0 IT0
中断系统
1、805l单片机共有5个中断: 3个片内中断:定时器T0的溢出中断; 定时器T1的溢出中断; 串行口中断; 2个外部中断:INT0(P3.2); INT1(P3.3) 2、中断标志寄存器TCON、SCON 3、中断允许控制寄存器(IE) 4、中断优先级控制寄存器IP
例1 编写程序,根据R7的状态分别转向八个功能键处理程序。设R7中 为键号依次为0、1、2、3、4、5、6、7,分别转向SB0、SB1、SB2、 SB3、SB4、SB5、SB6、SB7 八个键功能处理程序
ORG 2000H MOV DPTR,#TAB ;表首地址→DPTR MOV A,R7 ;R7→A ADD A,R7 ;R7×2→A修正A值(AJMP两字节,LJMP三字节) JNC LP ;A无进位转LP INC DPH ;A有进位DPH+l→DPH LP: JMP @A+DPTR ;散转A+DPTR→PC TAB:AJMP SB0 AJMP SB1 ;转移指令表 ┋┋ AJMP SB7 SB0:0号键处理程序 ┋┋ SB1:1号键处理程序 SB7:7号键处理程序 SJMP $ END 各键处理程序略。
应用举例
1比较分支结构程序设计(参考书P33) 设有某温度检测系统,内容RAM的40H单元存放的是标准温度,50H中存放 的是检测温度,当检测温度大于标准温度时,使P1.0的红灯亮,报警, 当检测温度低于标准温度时,启动加热器,使P1.7的黄灯亮,代表接通 加热电路,当检测温度等于标准温度时,关闭加热炉,使P1.2的绿红亮。 ORG 4000H ST: MOV A,50H CJNE A,40H,LP MOV P1,#0 SETB P1.2 SJMP ST LP:JC LP1 MOV P1,#0 SETB P1.0 SJMP ST LP1:MOV P1,#0 SETB P1.7 SJMP ST END
方式寄存器TMOD (89H)
TMOD用来设定定时器工作方式,其格式如下: D7 D6 D5 D4 D3 D2 D1 D0
GATE C/ T M1 M0 GATE C/ T M1 M0
控制T1
控制T0
控制及标志寄存器TCON
TCON:八位控制及标志寄存器 作用:控制定时器的启、停、溢出、中断等。有些位是控 制设置,有些是标志位,各位都有对应地址,可位寻 址。
从程序框图及程序看出,本程序无任何判断转移指令,程序逐条按 顺序执行即可,故属于顺序结构程序。
例2:将20H单元的两个BCD码拆开并变成ASCII码,存入 21H、22H单元。 注意:ASCII码0~9为30H~39H。 源程序如下: 地址 机器码 周期数 源程序 0RG 2000H 2000H 78 22 1 MOV R0,#22H 2002H 76 00 1 MOV @R0,#0 2004H E5 20 1 MOV A,20H 2006H D6 1 XCHD A,@R0 2007H 43 22 30 2 ORL 22H, #30H 200AH C4 1 SWAP A 200BH 44 30 1 ORL A,#30H 200DH F5 21 1 MOV 21H, A END 此程序占用字节数为15,执行总周期数为9。解:采用先把 20H中低4位BCD码交换出来加以转换;存放,然后再把高4 位BCD码转换至低4位加以转换、存放。
立即数寻址程序存储器romram128b特殊功能寄存器寄存器寻址工作寄存器r0r7abcdptrram128bpushpop程序存储器adptrapc程序存储器256bpc偏移量ram20h2fh部分特殊功能寄存器应用举例比较分支结构程序设计参考书p33设有某温度检测系统内容ram40h单元存放的是标准温度50h中存放的是检测温度当检测温度大于标准温度时使p10的红灯亮报警当检测温度低于标准温度时启动加热器使p17的黄灯亮代表接通加热电路当检测温度等于标准温度时关闭加热炉使p12org4000hst
编写按下述函数式求y值的程序,变量x在30H单元,结果存入31H 单元中。 Y=x+1 x>0 Y=0 x=0 Y=-1 x<0 分析:该题目共三个分支,转移条件是x与0比较的结果,按x>0、 x=0、x<0分别转入三个分支程序。该题目程序框图如图3—4所 示。
程序 ORG 2000H MOV A,30H ;取变量X→A CJNE A,#00H,LP0 ;x≠0转LP0; SJMP LP1 ;x=0转LP1分支 LP0:JNC LP2 ;C=0表示X>0,转LP2分支 MOV A,#0FFH ;C=1表示X<0,-1(补码)→A SJMP LP1 ;转存结果程序 LP2:ADD A,#01H ;X+1→A; LP1:MOV 31H ,A ; 结果→31H SJMP $ END 显然该程序采用CJNE A,#00H,LP0与JNCLP2指令相配合,将程序三个 分支区别开。
专用寄存器
PSW—程序状态字寄存器,存放程序运行状态的信息,以 便查询和判断。
CY AC F0 RS1 RS0 OV F1 P
8051单片微机定时/计数器结构
两个16位可编程的定时/计数器T0和T1 其工作方式、定时时间、启动、停止等 均用指令设定 T0 : TH0、TL0 两个8位寄存器组成 T1:TH1、TL1 两个8位寄存器组成 工作方式通过8位寄存器TMOD设定; 启、停 通过8位寄存器TCON控制
B ACC PSW IP P3 IE P2 SBUF SCON P1 TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0
专 用 寄
片 内 RAM 地 址 分 配

器 区 (SFR)
专用寄存器
SP—- 堆栈地址指针。用以存放栈顶地址,始终指向堆栈 栈顶地址。 堆栈是使用者在内部RAM区(08H~7FH)之间任意指 定的 一部分特殊暂用存储区。用于存放需保存的程序 断点和数据。 何时用堆栈?1、保护现场数据;2、调用子程序时,保 护断点。 堆栈存取原则: 先进后出,存入一个字节,SP自动加一; 取出一个字节,SP自动减一。
单片微机原理复习
一、硬件部分的主要内容: 1 、MCS-51 单片微机结构 2、 MCS-51 存储器的结构 3、 8051单片微机定时/计数器结构 4、中断系统 5、串行口 二、软件部分的主要内容 1、指令系统及寻址方式(111条、7种寻址方式) 2、汇编语言程序设计 散转结构;子程序结构;查表结构;定时器应用程序; 中断程序。
二、软件部分的主要内容 1、指令系统及寻址方式(111条、7种寻址方式) 2、汇编语言程序设计 散转结构;子程序结构;查表结构;定时器应用程序; 中断程序。
寻址方式
寻址空间
立即数寻址 直接寻址
Байду номын сангаас寄存器寻址 寄存器间接寻 址
程序存储器ROM 片内RAM低128B,特殊功能寄存器
工作寄存器R0~R7,A,B,C,DPTR 片内RAM低128B;[@R0,@R1,SP(仅 PUSH,POP)] 片外RAM(@R0,@R1,@DPTR )
变址寻址
相对寻址 位寻址
程序存储器 (@A+DPTR),@A+PC)
程序存储器256B范围(PC+偏移量) 片内RAM的20H~2FH字节地址; 部分特殊功能寄存器
1 编写计算32E6H+0EACH的程序,把最后结果存入片外50H、51H单 元,51H存结果高8位,50H存低8位。 分析:根据题目,显然是一个简单的加法程序,采用顺序结构即可。 程序框图如图3—1所示。
P3.0
P3.1 P3.2 P3.3 P3.4
RXD(串行口输入端)
TXD(串行口输出端) INT0(外部中断0输入端) INT1(外部中断1输入端) T0(定时器0的外部输入端 )
P3.5
P3.6 P3.7
T1(定时器l的外部输入端)
WR(片外数据存储器写控制端) RD(片外数据存储器读控制端)
7FH
程序 ORG 4000H CLR C MOV A,#0E6H ;被加数低8位送A ADD A,#0ACH ;两数低8位相加 MOV R0,#50H ;低位和的地址送A MOVX @R0,A ;低位相加和送片外50H MOV A,#32H ;被加数高8位送A ADDC A,#0EH ;高位和与进位位之和送A MOV R0,#51H ;高位和地址送R0 MOVX @R0,A ;高8位和及进位位之和送片外51H END
1、散转举例 当R7=0、1、2 时,分别转向P1口灯闪烁,P1口某灯循环位 移, P1口灯按指定位点亮; ORG 4000H MOV A,R7 ADD A,R7 MOV DPTR ,#TAB JMP @A+DPTR TAB: AJMP OPR0 AJMP OPR1 AJMP OPR2 OPR0:------------OPR1:------------OPR2:------------END
DELAY: MOV R0,#10 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LP:JBC TF0,LP2 SJMP LP LP2:MOV TH0,#3CH MOV TL0,#0B0H DJNZ R0,LP MOV R0,#10 RET END
练习:比较片内RAM40H、50H中的两个无符号数大小,若 40H中的数小则把片内RAM中的40H位置1,若50H中的数小则 把片内RAM中的50H位置1,若相等则把20H位置1 ,然后返回。 编写程序。
源程序: ORG 2000H MOV A, 40H CJNE A, 50H, L1 ;两数不等则转L1 SETB 20H ;两数相等,置20H RET L1: JC L2 ;若C为“1”,则(40H)中数小 SETB 50H ;若(50H)数小,则50H位置1 RET L2: SETB 40H ;若(40H)数小,则40H位置1 RET END
实验四(1)
ORG 4000H MOV P1,#00H LP0: MOV R1,#8 LP1: LCALL DELAY MOV A,R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A DJNZ R1,LP1 SJMP LP0 TAB:DB 00H,0FFH,0AAH,55H,0A0H,50H,0AH,05H
相关文档
最新文档