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

📄 delay_dcmoter.lst

📁 继电器和直流小电机正反转控制 ZLG7290键盘与显示控制芯片的控制和使用
💻 LST
字号:
C51 COMPILER V6.12  DELAY_DCMOTER                                                          11/06/2008 08:54:19 PAGE 1   


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

stmt level    source

   1               /*******************************************************************/ 
   2                /*                                                                         
   3                /* 深圳信息职业技术学院电子通信系                                              
   4                /*  
   5                /* 《单片机程序设计实践教程》项目例程 
   6                /*                                                       
   7                /* 第10章 基础项目. '继电器和直流小电机正反转控制'演示程序                                          
             -                         
   8                /*                                                                         
   9                /* 功能:利用按键控制直流电机的正转、刹车、停转和反转以及继电器输出端的断开和连接,并用LED发光管
  10          	  /* 和7段数码管显示相应的状态。
  11                /* 演示过程:正确连接直流电机和继电器输出端,将程序下载执行后,按压相应按键即可看到演示效果 */
  12           	  /* 存在问题:无;
  13                /* 邮箱: panxn@sziit.com.cn  */ 
  14                /* 作者:潘晓宁   */ 
  15                /*                     */ 
  16                /* 修改时间: 2008/8/3                 */ 
  17                /*                                */ 
  18                /*【版权】Copyright(C)PanXiaoNing All Rights Reserved             */ 
  19                /*【声明】此程序仅用于学习与参考   
  20                /*                                                                    */ 
  21                /*******************************************************************/ 
  22          
  23          #include  <absacc.h>
  24          #include  <intrins.h>
  25          #include  "I2C.h"
  26          #include  "ZLG7290.h"
  27          
  28          #define  uchar  unsigned  char
  29          #define  uint  unsigned  int
  30          
  31          #define  PA8255  XBYTE[0x3ffc]              //8255端口A的地址
  32          #define  PB8255  XBYTE[0x3ffd]              //8255端口B的地址
  33          #define  PC8255  XBYTE[0x3ffe]              //8255端口C的地址
  34          #define  COM8255  XBYTE[0x3fff]            //8255命令字的地址
  35          
  36          sbit  cs138=P1^6 ;                         //74HC138的选通端口
  37           
  38          void  DispHexValue(char x, unsigned char dat);
  39          void  MotorRelayRun(void);
  40          void  delay(uchar);
  41          
  42          uchar KeyValue,KeyPushFlag;
  43          
  44          /*********************************主函数***************************************/
  45          void  main(void)
  46          {  cs138=0;                           //选通74HC138的使能端
  47   1         COM8255=0x80;                      //8255的初始化,PA,PC口为输出
  48   1      
  49   1         PC8255=0;                          //初始化直流电机停转,继电器断开
  50   1         EA=1;                              //允许所有中断被响应
  51   1         IT1 = 1;                           //外部中断1的触发方式为下降沿触发
  52   1         EX1 = 1;                           //允许外部中断1被响应(ZLG7290键盘中断)
  53   1      
  54   1         KeyPushFlag=0;                     //按键标志位置零,表示无键被按下
C51 COMPILER V6.12  DELAY_DCMOTER                                                          11/06/2008 08:54:19 PAGE 2   

  55   1         KeyValue=3;                        //初始化向数码管第1位写入'03',表示直流电机停转
  56   1         PA8255=0x0f;                       //82C55的PA口D17、D16、D15和D14点亮
  57   1         DispHexValue(4, 0x08);             //初始化向数码管第4位写入'08',表示继电器断开
  58   1      
  59   1         while(1)
  60   1         {
  61   2           if(KeyValue<=4) DispHexValue(0, KeyValue);   //以16进制方式显示直流电机运行数值
  62   2      	 else DispHexValue(4, KeyValue);              //以16进制方式显示继电器运行数值
  63   2           if (KeyPushFlag)		                      //如果有键按下
  64   2      	 {	
  65   3      		KeyPushFlag= 0;                           //KeyPushFlag置0,可以等待ZLG7290键盘中断的再次发生
  66   3      		ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);  //由ZLG7290键值寄存器读取被压键值,此函数由项目中的ZLG7290.c规

⌨️ 快捷键说明

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