实验一 Keil C、STC-ISP与并行I/O口
一、实验目的:
1、掌握Keil C和STC-ISP软件使用方法;
2、联系并行I/O口使用方法;
3、掌握延时程序编写技能。
二、实验内容:
1、由P1口输出LED流水灯;
2、由P2口输出由P1口输入的状态。
三、实验方法:
1、流水灯
P1口接一组LED。编写程序,使LED循环点亮。循环移位法流水灯汇编程序代码:
ORG 0000H ;单片机上电后从0000H地址执行
AJMP START ;跳转到主程序存放地址处
ORG 0030H ;设置主程序开始地址
START:MOV SP,#60H ;设置堆栈起始地址为60H
MOV A,#0FEH ;ACC中先装入LED1亮的数据
MOV P1,A ;将ACC的数据送P1口
MOV R0,#7 ;将数据再移动7次就完成一个8位流水过程
LOOP:RL A ;将ACC中的数据左移一位
MOV P1,A ;把ACC移动过的数据送p1口显示
ACALL DELAY ;调用延时子程序
DJNZ R0,LOOP ;没有移动够7次继续移动
AJMP START ;移动完7次后跳到开始重来,以达到循环流动效果
DELAY : ;延时子程序
MOV R0,#255 ;延时一段时间
D1 : MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回
END ;程序结束
2、从P1、P2口状态跟随
P1口接电位开关,P2口接一组LED。编写程序,从P1口输入的状态再由P2口输出。汇编程序代码:
ORG 0000H ;上电后移指令
LJMP START ;转移到应用程序
ORG 0030H ;应用程序从0030H开始存放
START: MOV P1, #0FFH ;置输入状态
LOOP1:MOV A, P1 ;输入开关状态信息
MOV P2,A ;输出开关状态驱动LED
SJMP LOOP1 ;循环
END 汇编结束
四、实验报告
1、编写C程序实现实验内容“流水灯“及“状态跟随”,绘制程序流程图,记录实验结果;
2、流水灯:
(1)改变计数常数或循环嵌套方式,观察LED亮灭速度,并由Keil C单步运行仿真计算延时时长;
(2)修改程序改变循环方向;
*(3)编写一个从左到右,再从右到左,最后从两边到中间的流水灯程序并实验验证。
3、状态跟随:
(1)修改程序使P2口输出P1口的反逻辑状态;
*(2)由P1、P2口读入状态,由P3输出P1、P2的“与/或”状态。
完整的Word格式文档51黑下载地址:
MCU实验一.doc
(36.5 KB, 下载次数: 7)
|