1.实验任务
做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。
2. 电路原理图
图4.4.1
3.系统板上硬件连线
把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。
4. 程序设计内容
我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。
每次送出的数据是不同,具体的数据如下表1所示
表1
5.程序框图
图4.4.2
6.汇编源程序
ORG 0
START: MOV R2,#8
MOV A,#0FEH
SETB C
LOOP: MOV P1,A
LCALL DELAY
RLC A
DJNZ R2,LOOP
MOV R2,#8
LOOP1: MOV P1,A
LCALL DELAY
RRC A
DJNZ R2,LOOP1
LJMP START
DELAY: MOV R5,#20 ;
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
7. C语言源程序
#include
unsigned char i;
unsigned char temp;
unsigned char a,b;
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
{
while(1)
{
temp=0xfe;
P1=temp;
delay();
for(i=1;i<8;i++)
{
a=temp
b=temp>>(8-i);
P1=a|b;
delay();
}
for(i=1;i<8;i++)
{
a=temp>>i;
b=temp<<(8-i);
P1=a|b;
delay();
}
}
}
关键字:51单片机 广告灯 左移电路
引用地址:
基于51单片机的广告灯左移电路设计与程序分析
推荐阅读最新更新时间:2024-03-16 15:51
基于stc51单片机的光立方c语言源代码
电路图等制作资料请到这里下载: http://www.51hei.com/bbs/dpj-20613-1.html 下面是程序源码: #include STC12C5A60S2.h #define uint unsigned int #define uchar unsigned char sbit keyamenu=P4^4;//按键 sbit keyout=P4^5; sbit keymenu=P4^6; uint code tab_water ={ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0140,0x0080,0x0000,0x0000,0x0000,
[单片机]
ARMLinux(mini2440)串口与51单片机的9位串口通讯
当51单片机的串口模式在方式2或方式3时为9位通讯方式,即当串行数据第9位为 1 时,前8位数据指示的是用来和主机通讯的从机地址;当串行数据第9位为 0 时,前8位数据则用为真正的数据。具体请参考: https://www.eeworld.com.cn/mcu/2011/0621/article_4424_1.html 而FriendlyARM的mini2440可以设置的数据位数为5~8位,即CS5,CS6,CS7,CS8。关于Linux串口的编程教学请参见: http://www.adamjiang.com/pukiwiki/index.php?Linux串口编程详解#ec39e271 查阅了一下前人的做法,有两种:1.硬方
[单片机]
基于51单片机的LED旋转显示器制作
由于刚学51单片机,加上制作电路板软件也是从零开始,的确花了我不少的时间和精力。不过也就是在这艰难的独立制作中,真正学到了不少实在的东西。原理就不多说了。 下面分享一下我的制作过程。这里有关于本制作的更详细的图片展示: 首先是制作效果图: 电路图: 电路采用的是无限供电模块给单片机供电的。采用无限供电。无摩擦,震动小。LED与单片机引脚之间的连接采用的是细小的漆包线。省去了限流电阻。省去复位电路制作起来更简单方便。 准备主要材料:因很多人不知材料哪里买,先将地址链接在材料名称,点击就进去了 1.51单片机1片 2.单片机插槽和万能电路板(洞洞板) 3.贴片LED0603(颜色自定,如果焊接技术不够
[单片机]
51单片机温度报警DS18B20系统程序
51单片机温度报警DS18B20系统程序: #include AT89X52.h #include stdio.h #define uint unsigned int #define uchar unsigned char //宏定义 #define SET P3_1 //定义调整键 #define DEC P3_2 //定义减少键 #define ADD P3_3 //定义增加键 #define BEEP P3_7 //定义蜂鸣器 #define DQ P3_6 //定义DS18B20总线I/O bit shanshuo_st; //闪烁间隔标志 bit beep_st; //蜂鸣器间隔标志 sbit
[单片机]
51单片机定时器/计数器T0|T1的四种工作方式
• 选择方式0、方式1、方式2时,T0|T1的工作情况相同 • 选择方式3时,T0|T1的工作情况不同 方式0:13位定时器/计数器,TH0的高8位,TL0的低5位 方式1:16位定时器/计数器,TH0的高8位,TL0的低8位 方式2:自动重装的8位计数器,TL0用于计数,TH0用于备份 方式3:被分为TH0和TL0两个独立的8位计数器(只有T0可以在方式3下工作)
[单片机]
单片机led灯闪烁实验总结_玩转51单片机(1):点亮led灯
01 新建工程与点亮LED小灯,LED小灯即发光二极管,它具有单向导电性,对于发光二极管而言,需要根据它的压降与额定电流来选择合适的限流电阻,打开Keil4软件,选择Project,New uVision Project 选定工程的保存路径,并给工程命名,保存类型默认.uvproj,点击保存 出现如下对话框,点击下拉按钮,选择STC MCU Database,点击OK 选择STC89C52RC,点击OK 选择否 点击New,生成一个Text1文件 点击 File, Save, 出现如下对话框,将文件命名为后缀为.c的文件,默认保存类型,点击保存 点击Target 1前面的加号,在Source Group
[单片机]
基于89C51单片机的环境噪声测量仪
1 引 言 环境噪声监测,是人类提高生活质量,加强环境保护的一个重要环节,在各大城市的繁华街区和居民区,已有大型环境噪声显示器竖立街头。但目前国内的便携式噪声测试仪,多为价格昂贵的进口专用设备,除卫生、计量等环保专业部门拥有外,无法作为民用品推广普及。本文介绍一种以89C51单片机为核心,采用V/F转换技术构成的低成本、便携式数字显示环境噪声测量仪。该仪器工作稳定、性能良好,经校验定标后能满足一般民用需要,可广泛应用于工矿企业、机关、学校等需要对环境噪声进行测量和控制的场合。 2 声压级的测量机理 人耳的听阈一般是20μPa,痛阈一般是200 Pa,其间相差107倍,这样宽广的声压范围很不易测量,
[单片机]
用51单片机实现5英寸TFT-LCD的遥控系统
LCD由于具有薄、轻及功耗低的特点,已广泛应用在计算机显示器、VCD显示板、便携式医疗设备等工业和民用领域。在这些产品中,应用单片机能大大地提高其智能性、易用性,给人们的生活带来舒适和方便。本文采用美国Atmel公司的单片机AT89C2051和AT89C51,为5英寸的TFT-LCD设计了遥控系统。该系统主要由遥控发射、遥控接受、TFT-LCD驱动电路3部分组成,可以遥控TFT-LCD的电源开关、亮度、色饱和度、对比度和音量,并具有扩展功能。 1 硬件设计 硬件总体设计框图如图1所示。 600)this.style.width='600px';" border=0> 1.1 遥控发射电路设计 遥控发射电
[单片机]