270 likes | 471 Views
MCS-51 单片机学习中应注意的几个问题. 外部引脚的功能及系统扩充 单片机片内存储器组织 寻址方式、指令系统及基本程序设计 中断系统 定时器 / 计数器 串行通信接口 简单外设接口 单片机的开发方法. §1 引脚功能及扩充. 程序存储区 0~FFFFH. 外部地址空间的编址. (各 64k 字节). 数据存储区 0~FFFFH. 思考题: 1 ) 8051 复位时,程序计数器 PC 的内容是( ) 堆栈指针 SP 的内容是( )。
E N D
MCS-51单片机学习中应注意的几个问题 • 外部引脚的功能及系统扩充 • 单片机片内存储器组织 • 寻址方式、指令系统及基本程序设计 • 中断系统 • 定时器/计数器 • 串行通信接口 • 简单外设接口 • 单片机的开发方法
程序存储区 0~FFFFH 外部地址空间的编址 (各64k字节) 数据存储区 0~FFFFH
思考题: 1)8051复位时,程序计数器PC的内容是( ) 堆栈指针SP的内容是( )。 2)8051外部RAM地址空间是( )。 3)某8051系统片内和片外程序存储器都使用, 引脚 应接( )电平。 4)怎样使用两片74LS138译码器形成8个1K的存储空间。 5)扩充的I/O接口芯片地址应在( )地址空间。
§2 51单片机片内存储器组织 RAM单元00~7FH单元直接、间接寻址均可 80~FFH单元只能间接寻址 位地址空间 00~FFH
思考题: 1)8052中位地址是07H的位是内部RAM的哪个单元的哪一位? P0.7的位地址是( ) 2)PSW寄存器的D4D3位为11时,R0对应的RAM单元地址是 ( )。 3)R0的内容为90H。执行MOV A,@ R0和 执行MOV A,90H后的结果是否相同? 4)4的ASC II码在D7位加偶校验位后结果是( )。 5)累加器A的内容为FFH,执行ADD A,#01后程序状态寄存器PSW的状态是( )。
§3 寻址方式和指令系统 寻址方式7种: • 寄存器寻址:R0~R7 • 直接寻址: 特殊功能寄存器 内部RAM的低128字节 00~7FH 位地址空间 00~FFH • 寄存器间接寻址:@ R0,@ R1,@ DPTR用来访问片内外RAM单元 • 立即寻址:用来指定1个字节或两个字节的数据为操作数,必须以#指定 • 相对寻址:范围在指令的-128~+127内,一般是转移目的地址-转移指令取出后的PC的值 • 基地址加变址寄存器的寻址 : MOVC A,@A+DPTR MOVC A,@A+PC • 位寻址:只能用直接寻址方式指定相应位地址
指令共有111条,一般分5大类: • 数据传送,算术运算,逻辑运算,位操作,控制转移。 • 控制汇编的伪指令: • ORG 汇编起始地址 • END 汇编终止 • EQU 赋值 • DB 定义数据字节 • DW 定义数据字 • DS 保留存储区 • BIT 位定义
思考题: 1)下列能正确执行的指令是: 1. MOV @R0,P1 2. MOV DPTR,#0123H 3. MOV 20H,30H 4. MOV A,@R2 5. PUSH R0 6. MOV R1,R0 7. ADD A,@R6 2)下列属于位操作的指令是( ) 1. CLR A 2. CPL C 3. DEC 30H 4. MOV 21H, C 5. CPL 20H 6. ANL 20H, #20H 3)下列属于A与外部数据区传递的指令是( ) 1. MOVX @R1, A 2. MOVX @DPTR, A 3. MOVC A, @A+DPTR 4. MOVX A, @R2 4)写出MCS-51汇编下列伪指令的结果 ORG 1000H DB 21H, 17 DW 2000H, -1 5)进位标志CY=1时,执行转移的指令是( ) 1. JNZ 2. JZ 3. JC 4. JNC
6)执行子程序返回指令,返回的断点地址是( ) 7)设(50H)= 60H,(60H)= 10H,执行 MOV R0, #50H MOV A, @R0 后A的内容为 ( ) 8)外部RAM 2000H单元内容送A 9)程序存储器0800H单元内容送A 10)设(A)= 56H,(R5)= 67H ,执行 ADD A, R5 DA A 后A的内容为( ) 11)写出执行相应指令后的结果 ORG 0800H MOV A, #41H (A)= CLR C SUBB A, #30H MOV B, A (B)= SUBB A, #0AH (A)= CY= XCH A, B (A)= SUBB A, #07H (A)= LOOP: AJMP LOOP
12)写出执行相应指令后的结果 ORG 0400H MOV A, #4EH (A)= ANL A, #0FH (A)= ADD A, #90H (A)= DA A (A)=CY = ADDC A, #40H (A)= DA A (A)= LOOP: AJMP LOOP 13)6个单字节压缩BCD数求其和 14)两个4字节的数相加、减 15)多个单字节数中检索关键字 16)按从大到小排序
思考题:1)IP寄存器的内容为11H时,中断源同时申请中断,写出中 断响应顺序2)0800H单元开始存有一条2字节指令,执行该指令后CPU响应 中断,压栈的断点地址是( )3)8051的IE内容为91H,IP内容为10H。说明中断系统的设置状 态。
思考题: • 1)T0定时,加1计数的计数脉冲是( )。 • 2)T0中断计数,相关中断位应设定为( )。 • 3)要停止T1工作,应执行的指令是( )。 • 4)8051 TMOD的内容为24H,此时T0 和T1的工作方式是: • T0方式0计数,13位计数器,外部计数脉冲使计数器内 • 容加1 • T1方式2定时,8位计数器,自重装,使计数器内容加1 • 的是一个机器周期。
5)T0 方式1对外部脉冲计数250个后启动T1定时,使P1.0输出1ms方波。 • 中断方式: • ORG 000BH • CLR TR0 • MOV TMOD, #20H • MOV TH1, #06H • MOV TL1, #06H • SETB TR1 • SETB ET1 • RETI • ORG 001BH • CPL P1.0 • RETI • ORG 0200H • MOV TMOD, #05H • MOV TH0, #0FFH • MOV TL0, #06H • SETB TR0 • SETB ET0 • SETB EA • AJMP $ • END
§6 异步串行通信 8051的串行口:
发送引脚(P3.1) TTL电平 • 接收引脚(P3.0) TTL电平 • 串行发送寄存器 SBUF 地址 99H 把要发送的内容写入SBUF时,串口自动开始串行发送 发送缓冲器空时,TI位置1 • 串行接收寄存器 SBUF 地址 99H 接收到一个完整的字符帧时,RI位置1 应及时读取SBUF内容,否则会丢失数据
接口 性能 异步串行通信的接口标准:
思考题: 1)8051方式0串行通信时,RXD和TXD的作用 2)8051的SCON的内容为50H时,串行口的工作状态 3)8051串行口方式2工作,TB8为奇偶校验位,写出发送子程序 参考程序: MOV A, #要发送的数据 MOV C, P MOV TB8, C MOV SBUF, A RET 4)写出把5的ASCII码在D7位加奇校验以串行方式发送的字符帧 格式
§7 简单外设接口 键盘: 键盘扫描:1)所有输出都为低,读输入,判有无键闭合2)去除键抖动3)逐行输出为低,读列线,判定闭合键的行、列号4)等待键释放5)根据闭合键的行、列号算出键位
LED显示:1)显示器选定共阳或共阴极显示块,动态显示方式2)将要显示数据的相应显示字模通过P0口送出3)选中P1.x,让选中的某一显示块驱动有效, 1ms左右后无效4)随后再显示下位5)所有位显示一遍后完成一次显示6)每秒钟必须显示30次以上
§8 开发方法 1)仿真器开发 80C51 2)模拟调试,在线下载 ISP 80S51 3)实时模拟调试,在线调试 ISD TI 121x, 8051F