实验二 广告灯实验

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

• (4)检查并修改源文件中的错误 • 修改后重新编译,Project→REBuild target • (5)运行
• 思考 • 1 、 程序ZYADV.ASM可以实现什么功 能? • 2 、开机后第一秒钟L1,L3亮,第二 秒钟L2,L4亮,第三秒钟L5,L7亮,第 四秒钟L6,L8亮,第五秒L1,L3,L5, L7亮,第六秒钟L2,L4,L6,L8亮,第 七秒钟八个二极管全亮,第八秒钟全灭, 以后又从头开始,L1,L3亮,然后L2, L4亮......一直循环下去 。 怎样实 现? • 3、由8031内部定时器1,按方式1工作, 即作为16位定时器使用每0.05秒钟T1溢 出中断一次。怎样实现?
• Байду номын сангаас序三
• • • • • • • • • • • • • • • ORG 0 MAIN: MOV R1,#0AH MOV R0,#00H LOOP:MOV A, R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A
INC DPTR DJNZ R1,LOOP LJMP MAIN DELAY:MOV R2,#00H MOV R3,#00H DE:DJNZ R2,$ DJNZ R3,DE RET TAB:DB 0FAH,0F5H,0FBH,0F7H,0EFH,0DFH,0BFH,7FH DB 0FFH ,00H
四、注意事项
• 1、规范操作 • 忌带电插拔导线,先加交流,再加直流,然后PC机加 电。关闭时相反。 • 2、认真阅读参考程序,尝试自己编程。 • 3、填写设备使用记录本。 • 4、班长填写教学记录单。 • 5、认真填写实验报告。 • 6、实验完成后,注意把连线和记录本收到实验箱。 • 7、打扫卫生,5人/组。
实验二
广告灯实验
一、实验目的
• 1.学会使用控制I/O端口 • 2.进一步熟悉开发平台 Keil C51 软件。 • 3.学会使用汇编语言编写广告灯 程序。 • 4.学会查表程序的设计。
二、实验内容
• 1.继续使用软件开发平台 Keil C51 软件编辑调试程序。 • 2.编写并调试一个模仿外界的动态 广告灯程序。
•(2).选晶振频率及生成HEX 文件
•①Project→②Options for Target ‘Target 1’ •或右击Target 1 ,选择Options for Target ‘Target 1’ •③在Target 选项中, ④更改CPU 晶振频率12MHZ,在Output 选 项中, 选择生成HEX 格式,在Debug选项中,选择内置仿真器.其 它采用缺省设置
五、实验步骤
•1、硬件连接 •2、系统加电 •3、运行Keil C51 软件
•4、编辑、调试、运行一个模仿外界 的动态广告灯程序。
•(1).建立一个工程项目:E:\shiyan\sy2.uv2 •①Project→②New Project③输入工程名sy2, ④保存工程文 件选CPU厂家(SST)→选CPU型号SST89C54
三、实验原理
将RC51核心板单片机的P1口和主板上LED的J4 口相连接
四、实验要求
P1口的P1.0-P1.7分别接八个发光二极管。要 求编写程序模拟一时序控制装置。 1、每个灯依次点亮1S钟。循环不止。 2、每个灯闪烁点亮10次,再转移到下一个灯 闪烁点亮10次,循环不止。 3、开机后第一秒钟L1亮,第二秒钟L2亮,第 三秒钟L3,第四秒钟L4,第五秒L5亮,第六秒 钟L6亮,第七秒钟L7亮,第八秒钟L8亮,第九 秒钟八个二极管全亮,第十秒钟全灭,以后又 从头开始,一直循环下去。
•(3).用项目管理器生成各种应用文件
•①点击Target 1 前之+ 号,②点击Source Group1, •③按鼠标右键会生弹出快捷菜单,选择Add Files to Group ‘ Source Group 1’向项目中添加C:\单片机实验程序 \zyorder.asm 源文件.在Source Group 1 前会出现一个+号.右 击zyorder.asm , Project→Build target ,生成一系列到文件 如OBJ 文件LST 文件HEX文件等


MOV TL1,#00H ;延时50mS常数 MOV TH1,#4CH SETB TR1 ;开中断 DJNZ R1,EXIT MOV R1,#20 ;延时一秒的常数 MOV DPTR,#DAT ;置常数表基址 MOV A,R0 ;置常数表偏移量 MOVC A,@A+DPTR ;读常数表 MOV P1,A ;送P1口显示 INC R0 ANL R0,#07H EXIT: POP DPH ;恢复现场 POP DPL POP PSW POP ACC RETI ;LED显示常数表 DAT: DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,0H END
• 程序一
• • • • • • • • • • • • • •
FLASH:MOV A,#0FEH ;置灯亮初值 FSH0: MOV R1,#0AH ;置闪烁次数 FLOP: MOV P1,A ;点亮 LCALL DELAY;延时1s MOV P1,#0FFH;熄灭 LCALL DELAY ;延时1s DJNZ R1,FLOP ;闪烁10次 RL A ;左移一位 SJMP FSH0 ;循环 DELAY:MOV R2,#00H MOV R3,#00H DE:DJNZ R2,$ DJNZ R3,DE RET
• 程序二
• • • • • • • • • • • • • • • • • • • • ORG 0 MAIN:MOV DPTR,#TAB MOV R1,#0AH,10个状态 LOOP:MOV A,#00H MOVC A,@A+DPTR MOV P1,A; 取第一个状态值 ACALL DELAY; 调用1S延迟程序,2×250×200×10 INC DPTR DJNZ R1,LOOP LJMP MAIN DELAY:MOV R2,#250 MOV R3,#200 MOV R4,#10 DE:DJNZ R2,$ DJNZ R3,DE DJNZ R4,DE RET TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH DB 0FFH ,00H END
INC R0 ANL R0,#07H



ORG 0000H AJMP START ORG 001BH ;T1中断入口地址 AJMP INT_T1 ORG 0100H START: MOV SP,#60H MOV TMOD,#10H ;置T1为方式1 MOV TL1,#00H ;延时50mS的时间常数 MOV TH1,#4CH MOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1 SETB EA ;开中断 SJMP $ INT_T1: ;T1中断服务子程序 PUSH ACC ;保护现场 PUSH PSW PUSH DPL PUSH DPH CLR TR1 ;关中断
相关文档
最新文档