⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 16×16-ldianzhen.lst

📁 这是一个基于51的LED16x16显示汉字程序
💻 LST
字号:
C51 COMPILER V7.50   16×16-LDIANZHEN                                                     12/17/2007 11:13:55 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 16×16-LDIANZHEN
OBJECT MODULE PLACED IN 16×16-ldianzhen.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 16×16-ldianzhen.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************
   2          /*                                                                *
   3          /* AOKE210E单片机开发系统演示程序                                                             *
   4          /*                                                                *
   5          /* 版本: V2.0 (2007/11/20)                                       *
   6          /* 作者: 高山流水 (Email: aoke999@sohu.com)                      *
   7          /* 网站: www.aokemcu.cn(奥科电子)                                *
   8          /*                                                                *
   9          /*                                                                *
  10          /******************************************************************/
  11          
  12          #include <reg51.h>       //51芯片管脚定义头文件
  13          #include <intrins.h>     //内部包含延时函数 _nop_();
  14          
  15          #define uchar unsigned char
  16          #define uint  unsigned int
  17          
  18          #define BLKN 2          //列锁存器数
  19          
  20          sbit  SDATA_595=P2^5;   //串行数据输入
  21          sbit  SCLK_595 =P2^6;   //移位时钟脉冲
  22          sbit  RCK_595  =P2^7;   //输出锁存器控制脉冲
  23          sbit  G_74138  =P2^4;   //显示允许控制信号端口
  24          
  25          uchar data  dispram[32];  //显示缓存
  26          uchar temp;
  27          
  28          void  delay(uint );
  29          
  30          uchar code Bmp[][32]=          
  31           {
  32          
  33             {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  34          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  35          
  36                  {0x02,0x00,0x04,0x10,0x1F,0xF8,0x11,0x10,0x15,0x50,0x11,0x10,0x1F,0xF0,0x11,0x10,
  37          0x15,0x50,0x11,0x10,0x01,0x04,0xFF,0xFE,0x02,0x80,0x04,0x60,0x18,0x1C,0x60,0x08},//奥
  38           
  39             {0x04,0x10,0x0E,0x10,0xF8,0x90,0x08,0x50,0x08,0x10,0xFE,0x90,0x08,0x50,0x1C,0x14,
  40          0x1A,0x1E,0x29,0xF0,0x28,0x10,0x48,0x10,0x88,0x10,0x08,0x10,0x08,0x10,0x08,0x10},//科
  41            
  42             {0x02,0x00,0x02,0x00,0x02,0x10,0x7F,0xF8,0x42,0x10,0x42,0x10,0x7F,0xF0,0x42,0x10,
  43          0x42,0x10,0x7F,0xF0,0x42,0x10,0x02,0x00,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00},//电
  44            
  45             {0x00,0x00,0x3F,0xF0,0x00,0x10,0x00,0x20,0x00,0x40,0x01,0x80,0x01,0x04,0xFF,0xFE,
  46          0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00}//子 
  47           
  48           };
  49          
  50          /*******************************************************
  51          *                                                      *
  52          * 主函数                                               *
  53          *                                                      *
  54          *******************************************************/
  55          void  main(void)
C51 COMPILER V7.50   16×16-LDIANZHEN                                                     12/17/2007 11:13:55 PAGE 2   

  56          {
  57   1        uchar i,k;
  58   1        TMOD = 0x01;             //定时器T0工作方式1
  59   1        TH0 = 0xFC;              //1ms定时常数
  60   1        TL0 = 0x66;
  61   1        G_74138 = 1;             //关闭显示
  62   1        RCK_595=0;
  63   1        P2 =0xF0;                //行号端口清零
  64   1      
  65   1        IE = 0x82;               //允许定时器T0中断
  66   1        TR0 = 1;                 //启动定时器T0
  67   1        while(1)
  68   1        {
  69   2          for(k=0;k<5;k++)       //显示"奥科电子"
  70   2          {
  71   3            for(i=0;i<32;i++)         
  72   3                {
  73   4                  dispram[i]= ~Bmp[k][31-i];
  74   4            }
  75   3                delay(1500);
  76   3          }
  77   2      
  78   2        } //end of while(1)
  79   1      } //end of main()
  80          
  81          /*******************************************************
  82          *                                                      *
  83          * 延时函数                                             *
  84          *                                                      *
  85          *******************************************************/
  86          void  delay(uint dt)
  87          {
  88   1         uchar bt;
  89   1         for(;dt;dt--)
  90   1         for(bt=0;bt<255;bt++);
  91   1       }
  92          
  93           
  94          /*******************************************************
  95          *                                                      *
  96          *将显示数据送入74HC595内部移位寄存器                   *
  97          *                                                      *
  98          *******************************************************/
  99          void WR_595(void)
 100          {
 101   1           uchar x;
 102   1            for (x=0;x<8;x++)
 103   1           {
 104   2            temp=temp<<1; 
 105   2            SDATA_595=CY;
 106   2            SCLK_595=1;        //上升沿发生移位
 107   2             _nop_();
 108   2             _nop_();
 109   2            SCLK_595=0;
 110   2           }        
 111   1      }
 112           
 113          /*******************************************************
 114          *                                                      *
 115          * 中断服务函数                                         *
 116          *                                                      *
 117          *******************************************************/
C51 COMPILER V7.50   16×16-LDIANZHEN                                                     12/17/2007 11:13:55 PAGE 3   

 118          void  leddisplay(void) interrupt 1 using 1
 119          {
 120   1         uchar i,j=BLKN;
 121   1         TH0 = 0xFC;          //1ms定时常数
 122   1         TL0 = 0x66;
 123   1         i=P2;                //读取当前显示的行号
 124   1         i=++i & 0x0f;        //行号加1,屏蔽高4位
 125   1         do{
 126   2                j--;
 127   2            temp = dispram[i*BLKN+j];
 128   2            WR_595();
 129   2           }while(j);
 130   1         
 131   1         G_74138=1;          //关闭显示
 132   1         P2 &= 0xf0;         //行号端口清零
 133   1         RCK_595 = 1;        //上升沿将数据送到输出锁存器
 134   1         P2 |=i;             //写入行号
 135   1         RCK_595 = 0;        //锁存显示数据
 136   1         G_74138=0;          //打开显示
 137   1      }
 138          
 139          /******************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    193    ----
   CONSTANT SIZE    =    160    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     33       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -