51单片机流水灯汇编与c语言程序
时间:2025-07-13
时间:2025-07-13
51单片机流水灯汇编与c语言程序附电路图
RP1RESPACK-8
U119 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
U22 3 4 5 6 7 8 9 D0 D1 D2 D3 D4 D5 D6 D7 LE OE 74HC573 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 19 18 17 16 15 14 13 12
1
2 3 4 5 6 7 8 9
18
XTAL2
9
R1 R2 R3 R4 R5 R6 R7 R8
RST
D1LED-RED
D2
D3
D4LED-GREEN
ALE
LED-YELLOW LED-GREEN
11 1
29 ALE 30 31
PSEN ALE EA
D5 U32 3 4 5 6 7 8 9 ALE 11 1 D0 D1 D2 D3 D4 D5 D6 D7 LE OE 74HC573 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 19 18 17 16 15 14 13 12 A B C D E F G DP LED-RED
1 2 3 4
1 2 3 4 5 6 7 8
P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C52
D6LED-YELLOW
D7LED-GREEN
D8LED-GREEN
1
R171k
2
R181k
A B C D E F G DP
3
R191k
4
R201k
51单片机流水灯汇编与c语言程序附电路图
/*******flowing water light*********/
//晶振:12M ,P0口接8个led进行流水灯显示,74HC573驱动,8位led共阴接法
ORG 0000H LJMP MAIN
ORG 0030H //主程序从程序存储器0030H单元开始存放 MAIN: MOV P0,#0FFH //P0口初始化
MOV A,#01H //共阴接法,点亮最低位LED LOOP: MOV P0,A
LCALL DELAY_1S //延时1s
RL A //循环左移一次,点亮下一位 SJMP LOOP //跳转到LOOP处执行,死循环 // 3层嵌套软件延时子程序,延时1s
DELAY_1S: MOV R1,#10 //最外层循环体执行10次 DELAY0: MOV R2,#200 //中间层循环体执行200次 DELAY1: MOV R3,#248 //最内层循环体执行248次
DJNZ R3,$ //循环子程序最内层,执行时间248*2=496us NOP //空操作,为了凑到准确的500us执行时间
DJNZ R2,DELAY1 //中间层循环体(1+496+1+2)*200=100000us=100ms DJNZ R1,DELAY0 //最外层循环体(100ms+2us)*10=1000.02ms RET END
51单片机流水灯汇编与c语言程序附电路图
/*******flowing water light*********/
#include<reg51.h> #include<intrins.h>
#define uchar unsigned char #define uint unsigned int //延时函数
void Delay_ms(uint x) {
uchar i; while(x--) {
for(i=0;i<120;i++); } } //主函数 void main() {
P0=0xff; //P0口初始化
P0=0x01; //共阴接法,点亮最低位LED while(1) {
Delay_ms(1000); //延时约1s
P0=_crol_(P0,1); //P0 的值向左循环移动,_crol_()函数在头文件intrins.h中 } }
上一篇:如何下载歌曲到电脑上
下一篇:儿童画什么曼陀罗最有效?