找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3161|回复: 0
打印 上一主题 下一主题
收起左侧

单片机Keil C、STC-ISP与并行I/O口实验

[复制链接]
跳转到指定楼层
楼主
ID:110270 发表于 2017-12-21 18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
实验一 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)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表