导航:首页 > 源码编译 > 利用移位算法实现小灯闪烁

利用移位算法实现小灯闪烁

发布时间:2022-12-30 22:02:08

⑴ 用循环移位指令控制彩灯循环单跳(8个灯,每个亮1s,熄1s,循环)

简单,你向一个寄存器写入数据时,数据总线的值会发生变化。8位的循环只需一个字节即可搞定。在一个时间循环里,加上句写入指令就行了,如:MOV
AX,1。然后后面接一个时间循环,里面一句写入0,如:MOV,BX,0.移位指令自己查吧。从数据总线连接输入指示灯,功率不足,可以在输入端接入两次非门(实际应用时常这么办);如果功率要求不高的话,可以采用灌电流负载,写入数据11111110(教学程序常用);当然如果能直接点亮LED灯,上面两项不用也可.时间控制调时间循环里次数,可以先写个大数,用秒表掐出来,然后估下一秒的值。

⑵ 求思路,我已经用74HC164实现了循环点亮小灯泡,怎样修改能使其循环点亮0,2,4,6,1,3,5,7

把码值存入寄存器,然后移位输出,即可点亮数码管
可做一个表格,根据要显示的数字,查表,在送出,当然要和时钟同步,并送完一组后延时,否则闪动。
164不带锁存,输出会有闪动,最好使用HC595,带锁存,就没有闪动了

⑶ 利用移位寄存器74ls194构成一个八只彩灯控制电路

8路彩灯分为两级,每4个一组,用两个74LS194来实现,两种花型分别为从中间到两边对称性依次亮,全亮后仍由中间向两边依次灭。

或者都从右往左依次亮再依次灭,通过对花型的分析可知其中一个双向移位寄存器74LS194 的功能是先左移后右移即先是S1=1,S0=0,后变成 S1=0,S0=1.而另外一个功能则始终是右移即S1=0,S0=1。

Serial Left 接 QD 显示左移流水,Serial Right 接 QA 显示右移流水。

输入 A B C D 接电源或地,表示流水灯的初态。

输出 QA QB QC QD 接4盏彩灯。

Clock 接时钟。

启动时 Clear 置高电平,S1S0 先置为高电平,读取初态。然后根据左移或右移,设置其中之一(S0或S1),为低电平。可以直接这么接是因为它的实现可以看作一个四个触发器串联的时序电路,必须要在驱动函数计算完成后,才进行状态函数的计算。

(3)利用移位算法实现小灯闪烁扩展阅读:

根据移位方向,常把它分成左移寄存器、右移寄存器和双向移位寄存器三种;

根据移位数据的输入-输出方式,又可将它分为串行输入-串行输出、串行输入-并行输出、并行输入-串行输出和并行输入-并行输出四种电路结构。

此外,有些移位寄存器还具有预置数功能,可以把数据并行地置入寄存器中。

利用移位寄存器能进行数据运算、数据处理,实现数据的串行—并行互相转换,还可接成各种移位寄存器式计数器,如环形计数器、扭环形计数器等。

⑷ 用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!

C语言实现LED灯闪烁控制配套51单片机开发板。

#include //包含单片机寄存器的头文件

/****************************************
函数功能:延时一段时间

*****************************************/

void delay(void) //两个void意思分别为无需返回值,没有参数传递。

{

unsigned int i; //定义无符号整数,最大取值范围65535。

for(i=0;i<20000;i++) //做20000次空循环。

; //什么也不做,等待一个机器周期。

}

/*******************************************************

函数功能:主函数 (C语言规定必须有也只能有1个主函数)。

********************************************************/
void main(void)

{

while(1) //无限循环。

{

P0=0xfe; //P1=1111 1110B, P0.0输出低电平。

delay(); //延时一段时间。

P0=0xff; //P1=1111 1111B, P0.0输出高电平。

delay(); //延时一段时间。

}

}

单片机驱动LED灯的源程序:

#include<reg52.h> //头文件。

#define uint unsigned int

#define uchar unsigned char

sbit LED1=P1^7; //位定义。

void delay_ms(uint);//mS级带参数延时函数。

void main()

{

while(1)

{

LED1=0;

delay_ms(1000);

LED1=1;

delay_ms(1000);

}

}

void delay_ms(uint z) //延时子程序

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

(4)利用移位算法实现小灯闪烁扩展阅读:

单片机应用分类:

通用型:

这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

总线型:

这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。

另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

控制型:

这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。

通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

参考资料来源:网络-单片机



⑸ 单片机中如何实现一个小灯固定频率闪烁后跳到下个小邓

软件延时。
单片机灯闪烁的实现方法:主要就是控制小灯的亮和灭的频率。
可以让小灯1秒钟亮一次灭一次。
也可以控制小灯2秒钟亮一次灭一次。

⑹ 如何用51单片机定时器1+查询方式实现7个小灯的流动闪烁请大神指点

我很久不做51了,一直在用飞思卡尔的片子,所以只能给你个思路,希望你给你帮助哈。首先就是查询方式,就是需要做个数组,然后把你小灯的流动闪烁的顺序,用字节表示,放在数组里面。然后用定时器1,隔一段时间去查询一下数组,把灯的亮变一下。这样的话,就能实现隔断时间就变化一下。要是你还有不懂得话,先尝试编写下程序,然后我帮你看看。望采纳,谢谢。

⑺ at89c51单片机用移位做八盏灯循环的程序

1.硬件组成
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS
8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
2.软件编程
单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。
2.1位控法
这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下:
ORG
0000H
;单片机上电后从0000H地址执行
AJMP
START
;跳转到主程序存放地址处
ORG
0030H
;设置主程序开始地址
START:MOV
SP,#60H
;设置堆栈起始地址为60H
CLR
P1.0
;P1.0输出低电平,使LED1点亮
ACALLDELAY
;调用延时子程序
SETBP1.0
;P1.0输出高电平,使LED1熄灭
CLR
P1.1
;P1.1输出低电平,使LED2点亮
ACALLDELAY
;调用延时子程序
SETBP1.1
;P1.1输出高电平,使LED2熄灭
CLR
P1.2
;P1.2输出低电平,使LED3点亮
ACALLDELAY
;调用延时子程序
SETBP1.2
;P1.2输出高电平,使LED3熄灭
CLR
P1.3
;P1.3输出低电平,使LED4点亮
ACALLDELAY
;调用延时子程序
SETBP1.3
;P1.3输出高电平,使LED4熄灭
CLR
P1.4
;P1.4输出低电平,使LED5点亮
ACALLDELAY
;调用延时子程序
SETBP1.4
;P1.4输出高电平,使LED5熄灭
CLR
P1.5
;P1.5输出低电平,使LED6点亮
ACALLDELAY
;调用延时子程序
SETBP1.5
;P1.5输出高电平,使LED6熄灭
CLR
P1.6
;P1.6输出低电平,使LED7点亮
ACALLDELAY
;调用延时子程序
SETBP1.6
;P1.6输出高电平,使LED7熄灭
CLR
P1.7
;P1.7输出低电平,使LED8点亮
ACALLDELAY
;调用延时子程序
SETBP1.7
;P1.7输出高电平,使LED8熄灭
ACALLDELAY
;调用延时子程序
AJMP
START
;8个LED流了一遍后返回到标号START处再循环
DELAY:
;延时子程序
MOV
R0,#255;延时一段时间
D1: MOV
R1,#255
DJNZ
R1,$
DJNZ
R0,D1
RET
;子程序返回
END
;程序结束

阅读全文

与利用移位算法实现小灯闪烁相关的资料

热点内容
程序员战门课 浏览:474
config保存服务器地址 浏览:317
预订网吧座位的app叫什么 浏览:416
香港服务器主机地址 浏览:640
网店美工pdf 浏览:447
一堆文件夹怎么弄出来 浏览:743
博途如何编译硬件 浏览:418
fortran程序pdf 浏览:504
电池消耗算法 浏览:394
服务器中断连接怎么处理 浏览:222
上世纪互联网不发达程序员很难 浏览:841
语音识别android开源 浏览:762
地埋式垃圾压缩中转站 浏览:902
apachehttpdlinux 浏览:944
快递员中通app预付款是什么 浏览:843
java路径转义 浏览:857
keytool加密算法 浏览:131
笑脸图案的APP相机是什么软件 浏览:249
app软件为什么会被下架 浏览:981
从内存到硬盘的命令是 浏览:52