151单片机C语言实现循环8个流水灯左移三次,后右移三次。
例程:
#include<reg51h> //51单片机头文件#include <intrinsh> //包含有左右循环移位子函数的库
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
sbit beep=P2^3;
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms
{ //delay(500);大约延时500ms
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() //主函数
{
uchar a,i,j;
while(1) //大循环
{
a=0xfe; //赋初值
for(j=0;j<3;j++) for(i=0;i<8;i++) //左移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_crol_(a,1); //将a变量循环左移一位
}
a=0x7f;
for(j=0;j<3;j++) for(i=0;i<8;i++) //右移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_cror_(a,1); //将a变量循环右移一位
}
}
}
251单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。
不知什么
字,上一个6
个字的。
;16X16LED点阵流动显示
;逐列、逆向(低位开始)扫描
ORG
0000H
AJMP
MAIN
ORG
0030H
MAIN:
MOV
DPTR,#TAB
;字码表初址赋值
MOV
R1,#00H
;列控制码
MOV
R4,#96
;移动"
"及"机电工程系"6个字符,共96列
CM:
MOV
R5,#5
;每屏反复显示5次
MOV
R3,#16
;列数
C1:
MOV
R2,#0
;取码指针
C16:
MOV
P0,#00H
MOV
P2,#00H
;关显示
CLR
P30
MOV
A,R2
MOVC
A,@A+DPTR
;取当前列显示字码的第一个字节
MOV
P0,A
;送1~8行控制口
INC
R2
MOV
A,R2
MOVC
A,@A+DPTR
;取当前列的显示字码的第二个字节
MOV
P2,A
;送9~15行控制口
INC
R2
MOV
P1,R1
;送列控制码
INC
R1
ACALL
D1MS
;显示2MS
ACALL
D1MS
DJNZ
R3,C16
;一屏16列是否显示完
MOV
R3,#16
DJNZ
R5,C1
;未显示5次,继续
INC
DPTR
;一屏反复显示5次完,字码表初值加2
INC
DPTR
DJNZ
R4,CM
;96列未移动完,继续
AJMP
MAIN
;96列移动完,返回,重新从"
"开始显示
D1MS:
MOV
R6,#2
MOV
R7,#248
DJNZ
R7,$
DJNZ
R6,$-4
RET
TAB:
;(0)
(1)
机(2)
电(3)
工(4)
程(5)
系(6)
DB
000H,
000H,
000H,
000H,
000H,
000H,
000H,
000H;
DB
000H,
000H,
000H,
000H,
000H,
000H,
000H,
000H;"
",0
DB
000H,
000H,
000H,
000H,
000H,
000H,
000H,
000H;
DB
000H,
000H,
000H,
000H,
000H,
000H,
000H,
000H;"
",1
DB
000H,
008H,
040H,
00CH,
040H,
006H,
0FEH,
07FH;
DB
0FEH,
07FH,
020H,
023H,
020H,
032H,
000H,
01CH;
DB
0E0H,
00FH,
0F0H,
003H,
0D0H,
00FH,
0F0H,
01FH;
DB
030H,
010H,
000H,
010H,
000H,
01CH,
000H,
01CH;"机",2
DB
000H,
000H,
000H,
000H,
0E0H,
001H,
0E0H,
007H;
DB
020H,
007H,
020H,
005H,
0FEH,
03FH,
0FEH,
07FH;
DB
090H,
042H,
010H,
042H,
0F0H,
043H,
0F0H,
041H;
DB
000H,
040H,
000H,
078H,
000H,
038H,
000H,
000H;"电",3
DB
000H,
000H,
000H,
010H,
000H,
010H,
000H,
010H;
DB
020H,
010H,
020H,
010H,
020H,
010H,
0E0H,
01FH;
DB
0F0H,
00FH,
010H,
008H,
010H,
008H,
010H,
008H;
DB
000H,
008H,
000H,
008H,
000H,
008H,
000H,
000H;"工",4
DB
080H,
010H,
080H,
018H,
090H,
00CH,
090H,
006H;
DB
0F8H,
0FFH,
0FCH,
0FFH,
04CH,
026H,
040H,
024H;
DB
070H,
025H,
078H,
025H,
048H,
03FH,
0E8H,
03FH;
DB
0B8H,
012H,
0B8H,
012H,
000H,
010H,
000H,
010H;"程",5
DB
000H,
000H,
000H,
000H,
000H,
040H,
008H,
074H;
DB
048H,
034H,
068H,
006H,
078H,
047H,
0D8H,
0FDH;
DB
0CCH,
0FEH,
066H,
002H,
026H,
00BH,
000H,
01BH;
DB
000H,
032H,
000H,
020H,
000H,
000H,
000H,
000H;"系",6
END
这要重新取汉字的字模了,原来的从左向右,是按列取模的,程序也是按列扫描的。
要改为向上向下,汉字要按行取模了,而且程序要按行扫描。
但有一点,就是你的点阵屏的硬件电路是怎么设计的,如果显示屏本身就是按列扫描驱动的,就改不了的。
以上就是关于P10LED 显示屏16*64点阵显示屏的左右移动的单片机C语言代码,全部的内容,包括:P10LED 显示屏16*64点阵显示屏的左右移动的单片机C语言代码,、求一个16*16点阵LED显示左移的汇编程序(显示4个字的)!!拜托高手们!!、关于单片机程序,点阵屏文字移动方向怎么改变。我自己的程序的从左向右,哪位大神知道从上向下怎么改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)