8X8 LED点阵显示驱动技术

发布时间 : 星期六 文章8X8 LED点阵显示驱动技术更新完毕开始阅读

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所示 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 L8 1 1 1 1 1 1 1 0 L7 1 1 1 1 1 1 0 1 L6 1 1 1 1 1 0 1 1 L5 1 1 1 1 0 1 1 1 L4 1 1 1 0 1 1 1 1 L3 1 1 0 1 1 1 1 1 L2 1 0 1 1 1 1 1 1 表1 L1 0 1 1 1 1 1 1 1 说明 L1亮 L2亮 L3亮 L4亮 L5亮 L6亮 L7亮 L8亮 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<>(8-i); P1=a|b; delay(); }

for(i=1;i<8;i++) {

a=temp>>i;

联系合同范文客服:xxxxx#qq.com(#替换为@)