ZKX's LAB

51单片机控制LED汇编显示程序 51单片机 控制led

2020-08-11知识8

使用51单片机输出控制LED显示 MHZ或更高频2113率晶振,以获得较高的刷新5261频率,时期显示更稳定。单4102片机的串口与列1653驱动器相连,用来显示数据。P1口低4位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来发送控制信号。P0口和P2口空着,在有必要的时候可以扩展系统的ROM和RAM。2列驱动电路列驱动电路有集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,既达到重叠处理的目的。74HC595的外形及内部结构如图3所示。它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高组态。SCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。由于SCK和RCK两个信号是。51单片机控制LED灯 首先要查看电路的连接,看看输入连接到单片机的哪个引脚(比如P1.0),LED灯连接到哪个引脚(比如P2.0)。然后看是高电平有效还是低电平有效(也就是高电平时LED灯亮,还是低电平时LED灯亮)。如果是高电平灯亮的话,程序如下:P2.0=P1.0;51单片机如何控制8个led程序 include包含单片机专用头文件#include这个是什么俺也不知道,但这个程序不需要这个头文件 void Delay10ms(unsigned int c);自定义的延时函数声明 main()主函数 { unsigned 。51单片机控制LED汇编显示程序 程序思想如下 可以想象成一个整数000每次加1后显示一次知道999后溢出跳回起点继续,程序如下ORG 0000HAJMP STARTSTART:MOV 30H,#00H;数码管显示初值MOV 31H,#00HMOV 40H,#00H;显示增量MOV 41H,#01HSTL1:ACALL LED;LED显示ACALL DELAY0.5SACALL BCDADDMOV A,30HANL A,#0F0HJNZ START;判断是不是超过999AJMP STL1BCDADD:CLR CMOV A,31HADDC A,41HDA AMOV 31H,AMOV A,30HADDC A,40HDA AMOV 30H,ARETLED:MOV A,30HANL A,#0FHMOV DPTR,#TABMOVC A,@A+DPTRMOV P0,AMOV A,31HANL A,#0F0HSWAP AMOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV A,31HANL A,#0FHMOV DPTR,#TABMOVC A,@A+DPTRMOV P2,ARETDELAY0.5S:MOV R6,#200SL1:MOV R5,#250SL2:NOPDJNZ R5,SL2DJNZ R6,SL1RETTAB:DB 0C0H;0DB 0F9H;1DB 0A4H;2DB 0B0H;3DB 099H;4DB 092H;5DB 082H;6DB 0F8H;7DB 080H;8DB 090H;9DB 088H;ADB 083H;BDB 0C6H;CDB 0A1H;DDB 086H;EDB 08EH;FENDPS1:延迟0.5秒的晶振是3.57MHZPS2:希望我的LED显示代码没写错,我是认为你是0-7接的A-DPPS3:的显示格式真恶心 将就着看吧 程序倒是应该没有什么错误P4:程序已经修改 。51单片机怎么只控制一颗LED灯闪烁 首先你要知道既然是控制一个LED灯的话,那么就只需要一个IO口控制就可以了。那么在程序中你只需要改变一个IO口的状态。你这个程序首先是,P10是什么东西,如果是一个IO口的话,为什么后面会是0X00,和0XFF,这是什么意思,这是八位的表示方式,一位需要用这么多的数据来表示么。你只需要置1,和清零就可以了。就是说 P10=0;P10=1,这种方式的就可以了。而且你还需要在程序的最开始定义P10是什么东西的。单片机是不知道P10 是什么的。如果是一个八位端口的话,这样定义是没有错的。但是控制的就是8个IO口了。

#单片机#锁存器

随机阅读

qrcode
访问手机版