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

📄 2key.lst

📁 《爱上单片机》配书光盘(书本的制作作品所要的程序)
💻 LST
字号:
C51 COMPILER V6.12  2KEY                                                                   05/15/2009 20:23:14 PAGE 1   


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

stmt level    source

   1          /*********************************************************************************************
   2          程序名:    两键控制亮度
   3          编写人:    杜洋 
   4          编写时间:  2009年5月15日
   5          硬件支持:  STC12C2052 内部RC或外部12MHZ晶振
   6          接口说明:  8个LED彩灯接P1口,按键接P3.7和P3.3  
   7          修改日志:  
   8            NO.1-
   9          /*********************************************************************************************
  10          说明:
  11          使用PWM方式调整LED的亮灭周期,达到亮度变化。
  12          
  13          /*********************************************************************************************/
  14          
  15          #include <REG51.h> //51头文件
  16          /*********************************************************************************************/
  17          //《B_无级亮度变化》
  18          #define DY_PORT		P1 //设置LED连接的I/O组
  19          #define DY_PWM		501 //设置明亮的总级数(级数过大会出现闪烁)(值域:0~65535)
  20          #define DY_MAX		500 //设置最大亮度(值域:小于明亮总级数)
  21          #define DY_MIN		1 //设置最小亮度(值域:明亮大于等于1,小于最大亮度)
  22          sbit DY_KEY1 = P3 ^ 3; //亮度加
  23          sbit DY_KEY2 = P3 ^ 7; //亮度减
  24          /*********************************************************************************************
  25          //《A_8级亮度变化》
  26          #define DY_PORT		P1 //设置LED连接的I/O组
  27          #define DY_SPEED	100 //设置每一个明亮级的停留时间(值域:0~65535)
  28          #define DY_PWM		500 //设置明亮的总级数(级数过大会出现闪烁)(值域:0~65535)
  29          #define DY_MAX		8 //设置最大明亮(值域:小于明亮总级数)
  30          /*********************************************************************************************
  31          bit [自定义名] ; //定义一个位(位的值只能是0或1)例:bit LED
  32          #define [代替名]	[原名]  //用代替名代替原名(可以方便修改常改或调试的值)例:#define LED P1
  33          sbit  [自定义名] = [系统位名] ; //自定义系统位名。例:sbit Add_Key = P3 ^ 1;
  34          unsigned char [自定义名] ; //定义一个0~255的整数变量.例:unsigned char a;
  35          unsigned int [自定义名] ; //定义一个0~65535的整数变量
  36          /*********************************************************************************************/
  37          void delay (unsigned int a){ // 0.1ms延时程序(12MHz 10倍于51单片机速度时)
  38   1      	unsigned char i;
  39   1      	while( --a != 0){
  40   2      		for(i = 0; i < 12; i++); 
  41   2      	}   				   
  42   1      }
  43          /*********************************************************************************************/
  44          void display (unsigned int a){ //显示程序(50ms的PWM宽度)
  45   1      	DY_PORT = 0x00; //LED小灯亮
  46   1      	delay (a); 		//延时a的长度
  47   1      	DY_PORT = 0xff; //LED小灯灭
  48   1      	delay (DY_PWM-a);//延时总PWM长度减a
  49   1      }
  50          /*********************************************************************************************/
  51          void main (void){ //主程序 
  52   1      	unsigned int k=5;
  53   1      	while (1){
  54   2      		display(k); //
  55   2      		if(DY_KEY1 == 0){ //如果按键按下则继续
C51 COMPILER V6.12  2KEY                                                                   05/15/2009 20:23:14 PAGE 2   

  56   3      			delay(20); //延时20mS
  57   3      			if(DY_KEY1 == 0){ //如果按键按下则继续
  58   4      				k++;
  59   4      				if(k>DY_MAX){
  60   5      					k = DY_MAX;
  61   5      				}
  62   4      				//while(DY_KEY1 == 0); //等待按键松开
  63   4      			}
  64   3      		}
  65   2      		if(DY_KEY2 == 0){ //如果按键按下则继续
  66   3      			delay(20); //延时20mS
  67   3      			if(DY_KEY2 == 0){ //如果按键按下则继续
  68   4      				k--;
  69   4      				if(k<DY_MIN){
  70   5      					k = DY_MIN;
  71   5      				}
  72   4      				//while(DY_KEY2 == 0); //等待按键松开
  73   4      			}
  74   3      		}
  75   2          }
  76   1      }
  77          /*********************************************************************************************/


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