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

📄

📁 常用单片机程序范例代码
💻
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  __耞LED__马_____開C                                                    12/28/2006 16:02:44 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE __耞LED__马_____開C
OBJECT MODULE PLACED IN .\八路LED跑马灯实验-C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\八路LED跑马灯实验-C.C ROM(COMPACT) REGFILE(.\八路LED跑马灯实验-C.ORC) DEB
                    -UG OBJECTEXTEND CODE LISTINCLUDE SYMBOLS

stmt level    source

   1          //1.	实验任务
   2          //做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管
   3          //L1-L8分别接在单片机的P1.0-P1.7接口上,输出"0"时,发光二极管亮,
   4          //开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。
   5          
   6          #include <AT89X51.H>
   1      =1  /*--------------------------------------------------------------------------
   2      =1  AT89X51.H
   3      =1  
   4      =1  Header file for the low voltage Flash Atmel AT89C51 and AT89LV51.
   5      =1  Copyright (c) 1995-1996 Keil Software, Inc.  All rights reserved.
   6      =1  --------------------------------------------------------------------------*/
   7      =1  
   8      =1  #ifndef AT89X51_HEADER_FILE
   9      =1  #define AT89X51_HEADER_FILE 1
  10      =1  
  11      =1  /*------------------------------------------------
  12      =1  Byte Registers
  13      =1  ------------------------------------------------*/
  14      =1  sfr P0      = 0x80;
  15      =1  sfr SP      = 0x81;
  16      =1  sfr DPL     = 0x82;
  17      =1  sfr DPH     = 0x83;
  18      =1  sfr PCON    = 0x87;
  19      =1  sfr TCON    = 0x88;
  20      =1  sfr TMOD    = 0x89;
  21      =1  sfr TL0     = 0x8A;
  22      =1  sfr TL1     = 0x8B;
  23      =1  sfr TH0     = 0x8C;
  24      =1  sfr TH1     = 0x8D;
  25      =1  sfr P1      = 0x90;
  26      =1  sfr SCON    = 0x98;
  27      =1  sfr SBUF    = 0x99;
  28      =1  sfr P2      = 0xA0;
  29      =1  sfr IE      = 0xA8;
  30      =1  sfr P3      = 0xB0;
  31      =1  sfr IP      = 0xB8;
  32      =1  sfr PSW     = 0xD0;
  33      =1  sfr ACC     = 0xE0;
  34      =1  sfr B       = 0xF0;
  35      =1  
  36      =1  /*------------------------------------------------
  37      =1  P0 Bit Registers
  38      =1  ------------------------------------------------*/
  39      =1  sbit P0_0 = 0x80;
  40      =1  sbit P0_1 = 0x81;
  41      =1  sbit P0_2 = 0x82;
  42      =1  sbit P0_3 = 0x83;
  43      =1  sbit P0_4 = 0x84;
  44      =1  sbit P0_5 = 0x85;
  45      =1  sbit P0_6 = 0x86;
  46      =1  sbit P0_7 = 0x87;
  47      =1  
  48      =1  /*------------------------------------------------
C51 COMPILER V6.12  __耞LED__马_____開C                                                    12/28/2006 16:02:44 PAGE 2   

  49      =1  PCON Bit Values
  50      =1  ------------------------------------------------*/
  51      =1  #define IDL_    0x01
  52      =1  
  53      =1  #define STOP_   0x02
  54      =1  #define PD_     0x02    /* Alternate definition */
  55      =1  
  56      =1  #define GF0_    0x04
  57      =1  #define GF1_    0x08
  58      =1  
  59      =1  #define SMOD_   0x80
  60      =1  
  61      =1  /*------------------------------------------------
  62      =1  TCON Bit Registers
  63      =1  ------------------------------------------------*/
  64      =1  sbit IT0  = 0x88;
  65      =1  sbit IE0  = 0x89;
  66      =1  sbit IT1  = 0x8A;
  67      =1  sbit IE1  = 0x8B;
  68      =1  sbit TR0  = 0x8C;
  69      =1  sbit TF0  = 0x8D;
  70      =1  sbit TR1  = 0x8E;
  71      =1  sbit TF1  = 0x8F;
  72      =1  
  73      =1  /*------------------------------------------------
  74      =1  TMOD Bit Values
  75      =1  ------------------------------------------------*/
  76      =1  #define T0_M0_   0x01
  77      =1  #define T0_M1_   0x02
  78      =1  #define T0_CT_   0x04
  79      =1  #define T0_GATE_ 0x08
  80      =1  #define T1_M0_   0x10
  81      =1  #define T1_M1_   0x20
  82      =1  #define T1_CT_   0x40
  83      =1  #define T1_GATE_ 0x80
  84      =1  
  85      =1  #define T1_MASK_ 0xF0
  86      =1  #define T0_MASK_ 0x0F
  87      =1  
  88      =1  /*------------------------------------------------
  89      =1  P1 Bit Registers
  90      =1  ------------------------------------------------*/
  91      =1  sbit P1_0 = 0x90;
  92      =1  sbit P1_1 = 0x91;
  93      =1  sbit P1_2 = 0x92;
  94      =1  sbit P1_3 = 0x93;
  95      =1  sbit P1_4 = 0x94;
  96      =1  sbit P1_5 = 0x95;
  97      =1  sbit P1_6 = 0x96;
  98      =1  sbit P1_7 = 0x97;
  99      =1  
 100      =1  /*------------------------------------------------
 101      =1  SCON Bit Registers
 102      =1  ------------------------------------------------*/
 103      =1  sbit RI   = 0x98;
 104      =1  sbit TI   = 0x99;
 105      =1  sbit RB8  = 0x9A;
 106      =1  sbit TB8  = 0x9B;
 107      =1  sbit REN  = 0x9C;
 108      =1  sbit SM2  = 0x9D;
 109      =1  sbit SM1  = 0x9E;
 110      =1  sbit SM0  = 0x9F;
C51 COMPILER V6.12  __耞LED__马_____開C                                                    12/28/2006 16:02:44 PAGE 3   

 111      =1  
 112      =1  /*------------------------------------------------
 113      =1  P2 Bit Registers
 114      =1  ------------------------------------------------*/
 115      =1  sbit P2_0 = 0xA0;
 116      =1  sbit P2_1 = 0xA1;
 117      =1  sbit P2_2 = 0xA2;
 118      =1  sbit P2_3 = 0xA3;
 119      =1  sbit P2_4 = 0xA4;
 120      =1  sbit P2_5 = 0xA5;
 121      =1  sbit P2_6 = 0xA6;
 122      =1  sbit P2_7 = 0xA7;
 123      =1  
 124      =1  /*------------------------------------------------
 125      =1  IE Bit Registers
 126      =1  ------------------------------------------------*/
 127      =1  sbit EX0  = 0xA8;       /* 1=Enable External interrupt 0 */
 128      =1  sbit ET0  = 0xA9;       /* 1=Enable Timer 0 interrupt */
 129      =1  sbit EX1  = 0xAA;       /* 1=Enable External interrupt 1 */
 130      =1  sbit ET1  = 0xAB;       /* 1=Enable Timer 1 interrupt */
 131      =1  sbit ES   = 0xAC;       /* 1=Enable Serial port interrupt */
 132      =1  sbit ET2  = 0xAD;       /* 1=Enable Timer 2 interrupt */
 133      =1  
 134      =1  sbit EA   = 0xAF;       /* 0=Disable all interrupts */
 135      =1  
 136      =1  /*------------------------------------------------
 137      =1  P3 Bit Registers (Mnemonics & Ports)
 138      =1  ------------------------------------------------*/
 139      =1  sbit P3_0 = 0xB0;
 140      =1  sbit P3_1 = 0xB1;
 141      =1  sbit P3_2 = 0xB2;
 142      =1  sbit P3_3 = 0xB3;
 143      =1  sbit P3_4 = 0xB4;
 144      =1  sbit P3_5 = 0xB5;
 145      =1  sbit P3_6 = 0xB6;
 146      =1  sbit P3_7 = 0xB7;
 147      =1  
 148      =1  sbit RXD  = 0xB0;       /* Serial data input */
 149      =1  sbit TXD  = 0xB1;       /* Serial data output */
 150      =1  sbit INT0 = 0xB2;       /* External interrupt 0 */
 151      =1  sbit INT1 = 0xB3;       /* External interrupt 1 */
 152      =1  sbit T0   = 0xB4;       /* Timer 0 external input */
 153      =1  sbit T1   = 0xB5;       /* Timer 1 external input */
 154      =1  sbit WR   = 0xB6;       /* External data memory write strobe */
 155      =1  sbit RD   = 0xB7;       /* External data memory read strobe */
 156      =1  
 157      =1  /*------------------------------------------------
 158      =1  IP Bit Registers
 159      =1  ------------------------------------------------*/
 160      =1  sbit PX0  = 0xB8;
 161      =1  sbit PT0  = 0xB9;
 162      =1  sbit PX1  = 0xBA;
 163      =1  sbit PT1  = 0xBB;
 164      =1  sbit PS   = 0xBC;
 165      =1  sbit PT2  = 0xBD;
 166      =1  
 167      =1  /*------------------------------------------------
 168      =1  PSW Bit Registers
 169      =1  ------------------------------------------------*/
 170      =1  sbit P    = 0xD0;
 171      =1  sbit FL   = 0xD1;
 172      =1  sbit OV   = 0xD2;
C51 COMPILER V6.12  __耞LED__马_____開C                                                    12/28/2006 16:02:44 PAGE 4   

 173      =1  sbit RS0  = 0xD3;
 174      =1  sbit RS1  = 0xD4;
 175      =1  sbit F0   = 0xD5;
 176      =1  sbit AC   = 0xD6;
 177      =1  sbit CY   = 0xD7;
 178      =1  
 179      =1  /*------------------------------------------------
 180      =1  Interrupt Vectors:
 181      =1  Interrupt Address = (Number * 8) + 3
 182      =1  ------------------------------------------------*/
 183      =1  #define IE0_VECTOR	0  /* 0x03 External Interrupt 0 */
 184      =1  #define TF0_VECTOR	1  /* 0x0B Timer 0 */
 185      =1  #define IE1_VECTOR	2  /* 0x13 External Interrupt 1 */
 186      =1  #define TF1_VECTOR	3  /* 0x1B Timer 1 */
 187      =1  #define SIO_VECTOR	4  /* 0x23 Serial port */
 188      =1  
 189      =1  /*------------------------------------------------
 190      =1  ------------------------------------------------*/
 191      =1  #endif
 192      =1  
 193      =1  
   7          unsigned char i;
   8          unsigned char temp;
   9          unsigned char a,b; 
  10          
  11          void delay(void)
  12          {
  13   1        unsigned char m,n,s;
  14   1        for(m=20;m>0;m--)
  15   1        for(n=20;n>0;n--) 
  16   1        for(s=248;s>0;s--);
  17   1      }
  18          void main(void)
  19          {
  20   1        while(1)
  21   1          {
  22   2            temp=0xfe;
  23   2            P1=temp;
  24   2            delay();
  25   2            for(i=1;i<8;i++)
  26   2              {
  27   3                a=temp<<i;
  28   3                b=temp>>(8-i);
  29   3                P1=a|b;
  30   3                delay();
  31   3              }
  32   2            for(i=1;i<8;i++)
  33   2              {
  34   3                a=temp>>i;
  35   3                b=temp<<(8-i);
  36   3                P1=a|b;
  37   3                delay();
  38   3              }
  39   2          }
  40   1      }

⌨️ 快捷键说明

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