Advertisement

基于Proteus的51单片机仿真实例!和基于P2口的流水灯设计!

阅读量:

1、在该实例执行过程中,与P2端口相接的8个LED灯会以左右移动的方式依次循环点亮。

2、在proteus软件中创建新的仿真文档ex39.dsn,绘制对应的电路图。本例中,8个LED器件均接入P2端口,其中LED的正极与端口相连,负极则通过限流电阻连接至地。需要注意的是,当使用P0端口采用类似连接方式时,即便端口输出值为0xFF,LED仍无法被点亮(请思考这一现象背后的原因是什么?)

3、程序设计:

在本例中,LED的阳极连接至端口,阴极则接地,因此只有当对应端口输出高电平时,相应的LED才会被点亮。为了实现单个LED循环滚动的效果,P2口的初始值设定为0x01,从而首先点亮第一个LED。随后,在主程序中通过调用循环移位函数,使8个LED依次被点亮。

需要特别注意的是:两个循环的执行次数设定为7次而非8次,请思考其中的原因。

在Keil C51环境中创建新工程ex39,并输入以下程序代码,完成编译后生成ex39.hex文件:

//实例39:利用循环移位库函数在P2口实现流水灯

#include <reg51.h> //包含头文件
#include <intrins.h>

全部评论 (0)

还没有任何评论哟~