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

📄 8ledloop.lst

📁 《爱上单片机》配书光盘
💻 LST
字号:
C51 COMPILER V6.12  8LEDLOOP                                                               05/20/2009 19:52:39 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE 8LEDLOOP
OBJECT MODULE PLACED IN 8LEDLOOP.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 8LEDLOOP.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*********************************************************************************************
   2          程序名:    一键控制多灯花样
   3          编写人:    杜洋 
   4          编写时间:  2009年5月20日
   5          硬件支持:  STC12C2052 内部RC或外部12MHZ晶振
   6          接口说明:  8个LED彩灯接P1口  
   7          修改日志:  
   8            NO.1- 
   9          /*********************************************************************************************
  10          说明:
  11          按键控制流水LED效果。
  12          
  13          /*********************************************************************************************/
  14          
  15          #include <REG51.h> //51头文件
  16          
  17          /*********************************************************************************************/
  18          
  19          #define DY_PORT		P1 //设置LED连接的I/O组
  20          #define DY_SPEED	100 //设置每一个明亮级的停留时间(值域:0~65535)
  21          
  22          sbit DY_KEY = P3 ^ 3;
  23          unsigned char MENU = 0;
  24          /*********************************************************************************************
  25          
  26          bit [自定义名] ; //定义一个位(位的值只能是0或1)例:bit LED
  27          #define [代替名]	[原名]  //用代替名代替原名(可以方便修改常改或调试的值)例:#define LED P1
  28          sbit  [自定义名] = [系统位名] ; //自定义系统位名。例:sbit Add_Key = P3 ^ 1;
  29          unsigned char [自定义名] ; //定义一个0~255的整数变量.例:unsigned char a;
  30          unsigned int [自定义名] ; //定义一个0~65535的整数变量
  31          
  32          /*********************************************************************************************/
  33          void delay (unsigned int a){ // 1ms延时程序
  34   1      	unsigned int i;
  35   1      	while( --a != 0){
  36   2      		for(i = 0; i < 600; i++);//STC单片机在外部晶振为12MHz时i值上限为600  
  37   2      	}   				   		 //AT89C51单片机在外部晶振为12MHz时i值上限为125
  38   1      }
  39          /*********************************************************************************************/
  40          void INT0Fun(void) interrupt 2 using 3 {	//INT0中断
  41   1      		EX0 = 0; //外部中断0关闭		
  42   1      		if(DY_KEY == 0){ //如果按键按下则继续
  43   2      			delay(20); //延时20mS
  44   2      			if(DY_KEY == 0){ //如果按键按下则继续
  45   3      				MENU++;
  46   3      				if(MENU >3){
  47   4      					MENU = 0;
  48   4      				}				
  49   3      				while(DY_KEY == 0); //等待按键松开
  50   3      			}
  51   2      		}
  52   1         	EX0 = 1; //外部中断0关闭		
  53   1      }
  54          /*********************************************************************************************/
  55          void main(void){
C51 COMPILER V6.12  8LEDLOOP                                                               05/20/2009 19:52:39 PAGE 2   

  56   1      	unsigned int i;
  57   1      	unsigned int temp;
  58   1      	EA 		= 1; 			//允许CPU中断
  59   1      	IT1 	= 1; 			//INT0下降沿有效
  60   1      	EX1 	= 1; 			//外部中断0开		
  61   1      	while(1){
  62   2      		if(MENU == 0){
  63   3          		temp=0x01;
  64   3          		for(i=0;i<8;i++){ //8个流水灯逐个闪动
  65   4           			DY_PORT=~temp;
  66   4           			delay(DY_SPEED);   //调用延时函数
  67   4           			temp<<=1;
  68   4          		}
  69   3      		}
  70   2      		if(MENU == 1){
  71   3      		temp=0x80;
  72   3      		for(i=0;i<8;i++){ //8个流水灯反向逐个闪动
  73   4          		DY_PORT=~temp;
  74   4          		delay(DY_SPEED);   //调用延时函数
  75   4          		temp>>=1;
  76   4          		}
  77   3      		}
  78   2      		if(MENU == 2){
  79   3          	temp=0xFE;
  80   3      		for(i=0;i<8;i++){ //8个流水灯依次全部点亮
  81   4           		DY_PORT=temp;
  82   4           		delay(DY_SPEED);   //调用延时函数
  83   4           		temp<<=1;
  84   4          		}
  85   3      		}
  86   2      		if(MENU == 3){
  87   3         		temp=0x7F;
  88   3         		for(i=0;i<8;i++){ //8个流水灯依次反向全部点亮
  89   4           		DY_PORT=temp;
  90   4           		delay(DY_SPEED);   //调用延时函数
  91   4           		temp>>=1;
  92   4          		}
  93   3      		}
  94   2      	}
  95   1      }
  96          /*********************************************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    254    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       2
   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 + -