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

📄 hardware.lst

📁 该程序完成了c8051外围电路的驱动和串口协议的编写。希望能给大家学习51单片机带来帮助
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.10   HARDWARE                                                              09/18/2008 14:09:27 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE HARDWARE
OBJECT MODULE PLACED IN Hardware.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 20progress\Hardware.c BROWSE DEBUG OBJECTEXTEND PRINT(.\Hardware.lst) OBJEC
                    -T(Hardware.obj)

line level    source

   1          //*******************************************************************************
   2          //Copyright (c) 2007,派利斯电子(北京)有限公司 硬件部
   3          //文件名称: Hardware.c
   4          //摘    要: 本文件主要包含PT2060程序中与硬件相关的初始化、操作和I/O操作部分
   5          //当前版本: D-1 
   6          //作    者:  佟文杰
   7          //完成日期: 4/13/2007
   8          //修 改 人:
   9          //修改原因:
  10          //修改日期:
  11          //*******************************************************************************
  12          #include "Hardware.h"
  13          #include <C8051F020.H>
  14          #include "sja1000.h"
  15          #include "intrins.h"
  16          
  17                   
  18          sbit  LED_OK    = P3^5;
  19          sbit  LED_Alarm = P3^4;
  20          
  21          sfr16 TMR3RL    = 0x92;                 // Timer3 reload value
  22          sfr16 TMR3      = 0x94;                 // Timer3 counter
  23          sfr16 ADC0      = 0xbe;                 // ADC0 data  
  24          
  25          #define  TESTLEDON      P4 = P4&0xf7
  26          #define  TESTLEDOFF     P4 = P4|0x08
  27          #define  FLASHFIRSTADDRESS   0xa000
  28          #define  MAXGROUP        16
  29          
  30          #define  SAMPLECOMPLETETRUE    1
  31          #define  SAMPLECOMPLETEFALSE   0
  32          
  33          
  34          
  35          sfr16 RCAP4 = 0xe4; 
  36          
  37          #define SYSCLK           22118400
  38          
  39          xdata unsigned char uchConfigStatusBak[3];                        
  40          xdata unsigned char uchBypassStatusBak[3];                 
  41          xdata unsigned char uchTripleStatusBak[3]; 
  42          xdata unsigned char uchConfigStatus = 1;                          
  43          xdata unsigned char uchBypassStatus = 1;                   
  44          xdata unsigned char uchTripleStatus = 1;
  45          data  unsigned char uchSampleType;         
  46          xdata unsigned int  uiHeartbeatValue = 0; 
  47          xdata unsigned char uchSampleCompleteStatus;
  48          xdata unsigned int  uiGroupLength;                      
  49          
  50          
  51          //-----------------------------------------------------------
  52          // AD采样的数组定义
  53          //------------------------------------------------------
  54           unsigned int xdata SampBuffer0[2048];
C51 COMPILER V7.10   HARDWARE                                                              09/18/2008 14:09:27 PAGE 2   

  55          xdata unsigned int SampBuffer1[2048]; 
  56          xdata unsigned int SampBuffer2[2048];
  57          xdata unsigned int SampBuffer3[2048];
  58          //xdata unsigned int SampBuffer4[2048];
  59          //xdata unsigned int SampBuffer5[2048];
  60          
  61          unsigned int data SamplePTR0;  
  62          unsigned int data SamplePTR1;    
  63          unsigned int data SamplePTR2;   
  64          unsigned int data SamplePTR3;
  65          unsigned int data SamplePTR4;   
  66          unsigned int data SamplePTR5;
  67          
  68          unsigned char idata uchReceiData[13];           //接收数据
  69          unsigned char xdata uchCANReSendFlag=0x00;
  70          
  71          unsigned char xdata uchHWCPUAdress;
  72          
  73          //----------------------------------------------
  74          unsigned char xdata s_uchTempData1;
  75          unsigned char xdata s_uchTempData2;
  76          //------------------------------------------------------
  77          
  78          bit bdata b_NotIntegralChannelType;
  79          bit bdata b_IntegralChannelType;
  80          bit bdata b_LVDTChannelType;
  81          
  82          unsigned char idata uchSampleLocationCounter;
  83          
  84          //----------------------------------------------------------
  85          //函数名称:void SysCLKInit(void)
  86          //功    能:系统时钟初始化
  87          //输入参数:无
  88          //返    回:无
  89          //完成日期:4/12/2007
  90          //----------------------------------------------------------
  91          void SysCLKInit(void)
  92          {
  93   1              unsigned char  i;                   
  94   1      
  95   1              OSCXCN = 0x67;               // start external oscillator with 22.1184MHz crystal                        
             -              
  96   1              for (i=0; i<254; i++)          
  97   1          {;}
  98   1              while (!(OSCXCN & 0x80))    // Wait for crystal osc. to settle
  99   1          {;}
 100   1          OSCICN = 0x88; 
 101   1                                    // select external oscillator as SYSCLK   source and enable missing clock dete
             -ctor
 102   1                            
 103   1      }
 104          
 105          //--------------------------------------------------------
 106          //函数名称:void InitCPU(void) 
 107          //功    能:交叉开关配置和端口初始化 无看门狗
 108          //输入参数:无
 109          //返    回:无
 110          //完成日期:4/12/2007
 111          //--------------------------------------------------------
 112          void InitCPU(void) 
 113          {               
 114   1              XBR0 = 0X87;               //connect cp0,UART0 I/O,SPI,SMBus
C51 COMPILER V7.10   HARDWARE                                                              09/18/2008 14:09:27 PAGE 3   

 115   1          XBR1 = 0X7F;                   //connect T2EX,T2E,INT1,T1,INT0,T0,CP1                                                 
 116   1          XBR2 = 0X40;                   //enable I/O,
 117   1      
 118   1          P0MDOUT = 0x00;                //端口P0配置为露极开路
 119   1          P1MDIN = 0X00;                 //P1 被配置成为模拟输入
 120   1          P2MDOUT = 0x00;     
 121   1              P3MDOUT |= 0x30;
 122   1              P3MDOUT &= 0X3f;  
 123   1      
 124   1          P3IF = P3IF | 0x0c;            //外部中断6,外部中断7  上升沿触发
 125   1          P74OUT |= 0xf3;
 126   1      
 127   1          P0 = 0xff;
 128   1          P1 = 0xff;
 129   1              P3 |= 0xC0;
 130   1          P5 = 0xff;  
 131   1      }
 132          
 133          //-----------------------------------------------------------------
 134          //函数名称:void HWOKLEDControl(unsigned char uchOKStatus)
 135          //功    能:检测系统OK灯的控制P3.5        
 136          //输入参数:OK状态
 137          //返    回:无
 138          //完成日期:4/12/2007
 139          //-----------------------------------------------------------------
 140          void HWOKLEDControl(unsigned char uchOKStatus)
 141          {
 142   1              if (uchOKStatus != 0)
 143   1          {
 144   2                      LED_OK = 0;
 145   2          } 
 146   1          if (uchOKStatus == 0)
 147   1              {
 148   2                      LED_OK = 1;
 149   2              }   
 150   1      }
 151          
 152          //--------------------------------------------------------------------------------------------------
 153          //函数名称:void LEDCommunicationControl(void)
 154          //功    能:控制通信灯的执行
 155          //输入参数:无
 156          //返    回:无                    
 157          //完成日期:4/16/2007
 158          //--------------------------------------------------------------------------------------------------
 159          void LEDCommunicationControl(void)
 160          {
 161   1              LED_OK = ~ LED_OK;
 162   1      }
 163          
 164          //-----------------------------------------------------------------
 165          //函数名称:void RunLEDStartControl(void)
 166          //功    能:检测系统运行状态控制灯开始运行       
 167          //输入参数:无
 168          //返    回:无
 169          //完成日期:4/12/2007
 170          //-----------------------------------------------------------------
 171          void RunLEDStartControl(void)
 172          {
 173   1              P4 &= ~0x08;      
 174   1      }
 175          
 176          //-----------------------------------------------------------------
C51 COMPILER V7.10   HARDWARE                                                              09/18/2008 14:09:27 PAGE 4   

 177          //函数名称:void RunLEDStopControl(void)
 178          //功    能:检测系统运行状态控制灯停止运行       
 179          //输入参数:无
 180          //返    回:无
 181          //完成日期:4/12/2007
 182          //-----------------------------------------------------------------
 183          void RunLEDStopControl(void)
 184          {
 185   1              P4 |= 0x08;     
 186   1      }
 187          
 188          //-----------------------------------------------------------------
 189          //函数名称:void AlarmLEDControl(unsigned char uchAlarmStatus)
 190          //功    能:检测系统是否报警的灯的控制P3.6       
 191          //输入参数:报警与否状态
 192          //返    回:无
 193          //完成日期:4/12/2007
 194          //-----------------------------------------------------------------
 195          void AlarmLEDControl(unsigned char uchAlarmStatus)
 196          {
 197   1              if (uchAlarmStatus == 0)
 198   1          {
 199   2                      LED_Alarm = 1; 
 200   2          }
 201   1          else
 202   1              {
 203   2                      LED_Alarm = 0;  
 204   2              }
 205   1      }
 206          
 207          //-----------------------------------------------------------------
 208          //函数名称:void SetOKIOControl(unsigned char uchChannel)
 209          //功    能:通过状态判断得到P4.2、P4.1和P4.0端口的状态供三冗余使用
 210          //输入参数:通道号
 211          //返    回:无
 212          //完成日期:4/12/2007
 213          //-----------------------------------------------------------------
 214          void SetOKIOControl(unsigned char uchChannel)
 215          {
 216   1              unsigned char uchTemp; 
 217   1              if (uchChannel == 1)
 218   1          {
 219   2              P4 = P4 & 0xf8;    //0 0 0

⌨️ 快捷键说明

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