首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
点阵式LED“0-9”数字显示技术
来源:本站整理  作者:佚名  2010-01-25 18:57:10



1.实验任务
利用8X8点阵显示数字0到9的数字。
2.电路原理图
点阵式LED“0-9”数字显示技术
                                                                                            图4.25.1
3.硬件系统连线
(1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;
(2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;
4.程序设计内容
(1).数字0-9点阵显示代码的形成
  如下图所示,假设显示数字“0”
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00 00  3E  41  41  41  3E 00
  因此,形成的列代码为 00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。
  送显示代码过程如下所示
  送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时2ms左右,如此下去,直到送完最后一列代码,又从头开始送。
数字“1”代码建立如下图所示

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

其显示代码为 00H,00H,00H,00H,21H,7FH,01H,00H
数字“2”代码建立如下图所示
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00H,00H,27H,45H,45H,45H,39H,00H
数字“3”代码建立如下图所示

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00H,00H,22H,49H,49H,49H,36H,00H
数字“4”代码建立如下图所示
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00H,00H,0CH,14H,24H,7FH,04H,00H
数字“5”代码建立如下图所示
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00H,00H,72H,51H,51H,51H,4EH,00H
数字“6”代码建立如下图所示

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00H,00H,3EH,49H,49H,49H,26H,00H
数字“7”代码建立如下图所示
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00H,00H,40H,40H,40H,4FH,70H,00H
数字“8”代码建立如下图所示
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00H,00H,36H,49H,49H,49H,36H,00H
数字“9”代码建立如下图所示

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00H,00H,32H,49H,49H,49H,3EH,00H
5.汇编源程序
TIM           EQU 30H
CNTA        EQU 31H
CNTB        EQU 32H
                   ORG 00H
                   LJMP START
                   ORG 0BH
                   LJMP T0X
                   ORG 30H
START:      MOV TIM,#00H
                   MOV CNTA,#00H
                   MOV CNTB,#00H
                   MOV TMOD,#01H
                   MOV TH0,#(65536-4000)/256
                   MOV TL0,#(65536-4000) MOD 256
                   SETB TR0
                   SETB ET0
                   SETB EA
                   SJMP $
T0X:
                   MOV TH0,#(65536-4000)/256
                   MOV TL0,#(65536-4000) MOD 256
                   MOV DPTR,#TAB
                   MOV A,CNTA
                   MOVC A,@A+DPTR
                   MOV P3,A
                   MOV DPTR,#DIGIT
                   MOV A,CNTB
                   MOV B,#8
                   MUL AB
                   ADD A,CNTA
                   MOVC A,@A+DPTR
            MOV P1,A
                   INC CNTA
                   MOV A,CNTA
                   CJNE A,#8,NEXT
                   MOV CNTA,#00H
NEXT:       INC TIM
                   MOV A,TIM
                   CJNE A,#250,NEX
                   MOV TIM,#00H
                   INC CNTB
                   MOV A,CNTB
                   CJNE A,#10,NEX
                   MOV CNTB,#00H
NEX:         RETI
TAB:                   DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
DIGIT:          DB 00H,00H,3EH,41H,41H,41H,3EH,00H
                   DB 00H,00H,00H,00H,21H,7FH,01H,00H
                   DB 00H,00H,27H,45H,45H,45H,39H,00H
                   DB 00H,00H,22H,49H,49H,49H,36H,00H
                   DB 00H,00H,0CH,14H,24H,7FH,04H,00H
                   DB 00H,00H,72H,51H,51H,51H,4EH,00H
                   DB 00H,00H,3EH,49H,49H,49H,26H,00H
                   DB 00H,00H,40H,40H,40H,4FH,70H,00H
                   DB 00H,00H,36H,49H,49H,49H,36H,00H
                   DB 00H,00H,32H,49H,49H,49H,3EH,00H
                   END
6.C语言源程序
#include
unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char code digittab[10][8]={         {0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},     //0
                                    {0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},     //1
                                    {0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},    //2
                                    {0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},    //3
                                    {0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},     //4
                                    {0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},    //5
                                    {0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},    //6
                                    {0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},     //7
                                    {0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},    //8
                                    {0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00}     //9
                                    };
unsigned int timecount;
unsigned char cnta;
unsigned char cntb;
void main(void)
{
  TMOD=0x01;
  TH0=(65536-3000)/256;
  TL0=(65536-3000)%6;
  TR0=1;
  ET0=1;
  EA=1;
  while(1)
    {;
    }
}
void t0(void) interrupt 1 using 0
{
  TH0=(65536-3000)/256;
  TL0=(65536-3000)%6;
  P3=tab[cnta];
  P1=digittab[cntb][cnta];
  cnta++;
  if(cnta==8)
    {
      cnta=0;
    }
  timecount++;
  if(timecount==333)
    {
      timecount=0;
      cntb++;
      if(cntb==10)
        {
          cntb=0;
        }
    }
}

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:44,679.69000 毫秒