单片机控制32盏灯循环显示

 我来答
赵文星空絮雨
2015-10-23 · 知道合伙人教育行家
赵文星空絮雨
知道合伙人教育行家
采纳数:27619 获赞数:137977
本人做过5年建议电器安装维修,做过6年工业电器维修调式安装,实践经验丰富。

向TA提问 私信TA
展开全部
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统。8051单片机是Intel公司生产的,除无片内ROM外,其余特性与MCS-51单片机基本一样。8051单片机都采用40引脚的直插封装(DIP方式),在单片机的40条引脚中有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条输入/输出(I/O)引脚。8051单片机的引脚除了电源、复位、时钟接入,用户I/O口外,其余管脚是为实现系统扩展而设置的。
因此,本流水灯实际上就是一个带有8个发光二极管的单片机最小应用系统,即为由单片机8051、发光二极管和必要的软件组成的单个单片机系统。此系统利用单片机的P1.0-P1.7作为8段显示LED的段控码输入,当位控线输入高电平时对应的LED点亮。再利用单片机内部的定时器对每一个输出口的电平做时间控制,实现每一个接口出现循环的高低电平,从而实现对每一个接口所接灯的循环控制,使32盏灯各依次亮灭。
(1)、单片机的选择
选用8031单片机,配备11.0592MHz晶振,复位电路采用上电复位
(2)、显示电路选择
采用软件译码动态显示,P0.0-P0.7作发光二极管的位选口。码管的段选口。考虑直接用单片机I/O口作位选时可能驱动功率不够,可采用三极管9012作驱动,共阳极数码管显示。 (3)、电源选择 采用直流5V电源供电。
年年有恩
2012-06-17
知道答主
回答量:38
采纳率:0%
帮助的人:18.7万
展开全部
给一个控制八个灯的你来参考吧
#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器
#include <intrins.h>

void delayms(unsigned char ms)
// 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}

main()
{
unsigned char LED;
LED = 0xfe; //0xfe = 1111 1110
while(1)
{
P2 = LED;
delayms(250);
LED = LED << 1; //循环右移1位,点亮下一个LED "<<"为左移位
if(P2 == 0x00 ) {LED = 0xfe; } // 0xfe = 1111 1110

}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郭某人来此
2015-10-03 · TA获得超过1645个赞
知道答主
回答量:952
采纳率:100%
帮助的人:89.2万
展开全部
给一个控制八个灯的你来参考吧
#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器
#include <intrins.h>

void delayms(unsigned char ms)
// 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}

main()
{
unsigned char LED;
LED = 0xfe; //0xfe = 1111 1110
while(1)
{
P2 = LED;
delayms(250);
LED = LED << 1; //循环右移1位,点亮下一个LED "<<"为左移位
if(P2 == 0x00 ) {LED = 0xfe; } // 0xfe = 1111 1110

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自信积累
2012-06-14 · TA获得超过101个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:52.7万
展开全部
两个P口,构成矩阵来实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式