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

📄 disp.lst

📁 STC单片机数码管测试程序
💻 LST
字号:
C51 COMPILER V8.08   DISP                                                                  10/11/2008 08:13:39 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE DISP
OBJECT MODULE PLACED IN DISP.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DISP.C BROWSE DEBUG OBJECTEXTEND TABS(2)

line level    source

   1          #include"stc89c5x.h"
   2          
   3          #define uchar unsigned char
   4          #define uint  unsigned int
   5          
   6          
   7          sbit SCLK_LED = P4^0;  //595时钟 新卡大数码管
   8          sbit LATCH_LED = P4^3;   //595锁存,高有效
   9          sbit IO_LED = P4^1;    //LED 数据输入口 
  10          
  11          /*sbit SCLK_LED = P4^1;  //595时钟  老卡大数码管
  12          sbit LATCH_LED = P4^0;   //595锁存,高有效
  13          sbit IO_LED = P4^2;    //LED 数据输入口*/
  14          
  15          /*sbit SCLK_LED = P4^2;  //595时钟  老卡小数码管
  16          sbit LATCH_LED = P4^0;   //595锁存,高有效
  17          sbit IO_LED = P4^1;    //LED 数据输入口*/
  18          
  19          uchar LED_TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x00};
  20          
  21          void init();
  22          void MsDelay(uint);
  23          void Disp_LED();
  24          void Send_Byte(uchar S_Byte);
  25          
  26          main()
  27          {
  28   1        init();
  29   1        while(1)
  30   1          {
  31   2          Disp_LED();
  32   2          }
  33   1      }
  34          
  35          //***************************************
  36          //**********单片机初始化函数*************
  37          //***************************************
  38          void init()
  39          {
  40   1        MsDelay(50);
  41   1        LATCH_LED = 0;
  42   1        SCLK_LED = 0;
  43   1        TMOD = 0x21;  //定时器1方式2,作波特率发生器,定时器0方式1,16位定时器
  44   1        SCON = 0x50;  //SET COMM. IN MODE1 设置串行口方式1,允许接收,10位异步收发
  45   1        PCON = 0x00;
  46   1        IE = 0x90;    //开总中断及串行中断
  47   1        TH0 = 0x72;   //TIM   定时器0的初值,约20MS定时
  48   1        TL0 = 0x28; //TIM
  49   1        TH1 = 0xFA; //SET T0 IN MODE1,AS A TIMER. 定时器1初值
  50   1        TL1 = 0xFA; //SET 9600BPS AT 22.1184MHz.
  51   1        //TR1 = 1;  //启动定时器
  52   1        //TR0 = 1;  
  53   1      }
  54          
  55          /**********************************
C51 COMPILER V8.08   DISP                                                                  10/11/2008 08:13:39 PAGE 2   

  56          ***********送显示的函数************
  57          ***********************************/
  58          void Disp_LED() //i决定了发送多少个字节的数据  //恭调试用
  59          {
  60   1        uchar i;
  61   1        uint j;
  62   1        LATCH_LED = 0;
  63   1        for(i=0;i<=10;i++)
  64   1          {
  65   2          for(j=0;j<1000;j++)
  66   2            {
  67   3            Send_Byte(LED_TAB[i]);
  68   3            Send_Byte(LED_TAB[i]);
  69   3            Send_Byte(LED_TAB[i]);
  70   3            Send_Byte(LED_TAB[i]);
  71   3            Send_Byte(LED_TAB[i]);
  72   3            Send_Byte(LED_TAB[i]);
  73   3            Send_Byte(LED_TAB[i]);
  74   3            Send_Byte(LED_TAB[i]);
  75   3            Send_Byte(LED_TAB[i]);
  76   3            Send_Byte(LED_TAB[i]);
  77   3            Send_Byte(LED_TAB[i]);
  78   3            Send_Byte(LED_TAB[i]);
  79   3            Send_Byte(LED_TAB[i]);
  80   3            Send_Byte(LED_TAB[i]);
  81   3            Send_Byte(LED_TAB[i]);
  82   3            Send_Byte(LED_TAB[i]);
  83   3            Send_Byte(LED_TAB[i]);
  84   3            Send_Byte(LED_TAB[i]);
  85   3            Send_Byte(LED_TAB[i]);
  86   3            Send_Byte(LED_TAB[i]);
  87   3            LATCH_LED = 1;
  88   3            }
  89   2          LATCH_LED = 0;
  90   2          }
  91   1      }
  92          
  93          /**********************************
  94          ***********送显示的函数************
  95          ***********************************
  96          void Disp_LED() //num决定了发送多少个字节的数据
  97          {
  98            uchar i;
  99            //--num;
 100            LATCH_LED = 0;
 101            for(i=0;i<15;i++)
 102                {
 103                 Send_Byte(LED_TAB[i]);
 104                }
 105            LATCH_LED = 1;
 106          }*/
 107          
 108          /********************************
 109          **********发送一字节的函数*******
 110          *********************************/
 111          void Send_Byte(uchar S_Byte)  
 112          {
 113   1        uchar i;
 114   1        
 115   1        //LATCH_LED = 0;
 116   1        for(i=0;i<8;i++)
 117   1            {
C51 COMPILER V8.08   DISP                                                                  10/11/2008 08:13:39 PAGE 3   

 118   2            SCLK_LED = 0;
 119   2            IO_LED = 0;
 120   2            if(S_Byte&0x80)
 121   2               IO_LED = 1;
 122   2            SCLK_LED = 1;
 123   2            S_Byte <<= 1; 
 124   2            }
 125   1          SCLK_LED = 0;
 126   1          //LATCH_LED = 1;
 127   1          //MsDelay(1000);
 128   1      
 129   1      }
 130          
 131          
 132          /**********************************
 133          *******1毫秒延时函数****************
 134          ***********************************/
 135          void MsDelay(uint Delay)
 136          {
 137   1        uchar i;
 138   1        for(;Delay>0;Delay--)
 139   1          for(i=124;i>0;i--);
 140   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    198    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       3
   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 + -