完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
一、实验目的
掌握 51 汇编语言设计和调试方法 掌握 protues 软件平台及实验箱的操作步骤 二、实验内容及步骤 在单片机外部扩展 8KB RAM 芯片 6264,其地址范围为 0000H~1FFFH。将片内程序存储空间中从 500H 开始的存放的 15 个数据转存到外部 RAM 100H 开始的单元。请编写程序实现,并查看并给出相关地址空间的内容。 1、图 1-1 电路分析: (1) P0 口分时复用为数据线和地址线;74LS373 地址锁存器,其使能端 LE 由 ALE(地址 锁存控制信号)控制;74LS373 的 Q 端接外部 RAM6264 的地址端。当访问外部存储单元时,ALE 信号有效,将地址值锁存于 74LS373。 (2) 访问外部存储单元 MOVX 指令,是双机器周期指令。第 1 个机器周期将外部存储单元的地址从 P0 与 P2 口输出,并使 ALE 信号有效,将地址锁存;第 2 个机器周期,取消ALE 信号,使 P0 口专用于传送数据,同时发读/写信号。 2、编程提示: (1) 程序中定义的数据存放在内部程序存储空间 ROM 中。 ORG 500H TAB:DB 11h,22h,33h、、、、0AAH、0BBH、、、0FFh (2) 读取程序存储空间 ROM 指令: MOVC A,@A+DPTR (3) 读取外部存储空间 RAM 指令: MOVX A,@R0 ; P2 存放地址的高 8 位(要给 P2 赋值),R0 存放地址的低 8 位 MOVX A,@DPTR ; 16位地址存于 DPTR 中 读取内部存储空间 RAM 指令: MOV R1,60H MOV @R1,A ORG 0000H JMP Start ORG 0100H Start: MOV DPTR,#TAB ;数据指针指向定义字节的首地址 MOV P2,#01H ;P2.0为高电平 MOV R0,#0 ;R0中 传输数据个数 L0: MOV A,#0 ;累加器A中给初值0 MOVC A,@A+DPTR ;读取内部程序存储空间ROM 指令 MOVX @R0,A ;累加器A中内容给外部RAM INC DPTR ;数据指针加1 INC R0 ;统计数据个数加1 CJNE R0,#10H,L0 ;不相等则转移 不等于16转到L0 继续将数据存到外部RAM ORG 500h ;内部ROM从500H开始的 TAB: DB 11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH ;定义字节 END 仿真结果如下: 用 P1 口控制 LED 灯,按以下流水灯的形式显示: 1、LED 灯从左到右(或从右到左)单方向流水显示(只有一个灯亮),重复往返。 ORG 0000H JMP Start ORG 0100H START: MOV R0,#08H ;设置循环8次 MOV A,#0FEH ;正向流水灯a=1111 1110 LOOP1: MOV P1,A ;点亮第一个灯p1=a=1111 1110(共阳极,低电平亮) LCALL DELAY ;延时 RL A ;A中内容左环移一位 1111 1101 DJNZ R0,LOOP1 ;减1不为0,则跳转循环 LJMP START ;依次点亮8只灯后 长跳转指令LJMP->到START 又开始循环点亮 DELAY: ;延时子程序 MOV R7,#0FFH D1: MOV R6,#0AEH D2: NOP NOP DJNZ R6,D2 DJNZ R7,D1 RET END 仿真效果如下: 2、LED 灯从左到右然后从右到左双方向流水显示(只有一个灯亮),重复往返。 ORG 0000H JMP Start ORG 0100H Start: MOV R0,#08H MOV A,#0FEH ;正向流水灯 LOOP1: MOV P1,A ;点亮P1口低电平的灯 LCALL DELAY ;延时 RL A ;A左环移1位 DJNZ R0,LOOP1 MOV R0,#08H MOV A,#07FH ;反向流水灯 LOOP2: MOV P1,A ;点亮P1口低电平的灯 LCALL DELAY RR A ;A右环移1位 DJNZ R0,LOOP2 LJMP START DELAY: MOV R7,#0FFH ;延时子程序 D1: MOV R6,#088H D2: NOP NOP DJNZ R6,D2 DJNZ R7,D1 RET END 仿真效果如下: 实现双闪灯 ORG 0000H LJMP MAIN ORG 0030H MAIN: CLR P1.0 LCALL DELAY SETB P1.0 LCALL DELAY CLR P1.7 LCALL DELAY SETB P1.7 LCALL DELAY LJMP MAIN DELAY: ;延时子程序 MOV R7,#0FFH D1: MOV R6,#0A8H D2: NOP NOP DJNZ R6,D2 DJNZ R7,D1 RET END 仿真效果如下: |
|
|
|
只有小组成员才能发言,加入小组>>
2553 浏览 0 评论
1152浏览 2评论
750浏览 1评论
504浏览 0评论
269浏览 0评论
433浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 19:29 , Processed in 1.204824 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号