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

📄 can

📁 can通信源码
💻
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   二节点                                                                03/11/2012 14:11:13 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 二节点
OBJECT MODULE PLACED IN 二节点.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 二节点.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include <intrins.h>
   3          #include <can_def.h>
   4          #define u8 unsigned char
   5          #define u16 unsigned int
   6          void CAN_init(void ); // 初始化CAN总线芯片
   7          void CAN_TXD( void );//CAN发送子函数
   8          void CAN_RXD(void);
   9          void xsg(void);
  10          void xswsd(void);
  11          void CAN_yuan( void );
  12          void Delay(uint delay_time);//延时子函数
  13          unsigned char CYCLE; //定义周期 该数字X基准定时时间 如果是10 则周期是10 x 0.1ms
  14          unsigned char PWM_ON ;//定义高电平时间
  15          unsigned char PWM_Num;
  16          sbit    RST = P2^3;  //芯片复位     0有效 
  17          sbit    SCE = P2^0;  //芯片使能 0有效 
  18          sbit    D_C = P2^2;  //模式选择     1写数据   0写指令 
  19          sbit    DIN = P2^1;  //串行数据线 数据类型---8位 
  20          sbit    SCK = P2^4;  //串行时钟线   上升沿有效 
  21          sbit p11=P1^1;
  22          sbit p10=P1^0;
  23          sbit p12=P1^2;
  24          sbit p13=P1^3;
  25          sbit p14=P1^4;
  26          sbit p15=P1^5;
  27          
  28          bit qh,qieh;
  29          
  30          /////////////////////////////////////////////////////////////////////////////////////////////////////
  31          u8 code Chinese_table[]= 
  32          { 
  33          /*--  文字0:  温  --*/  
  34          /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x高=17x16   --*/ 
  35          
  36          0x08,0x84,0x61,0x0E,0x00,0x7E,0x52,0x52,0x52,0x52,0x52,0x7E,0x00,0x00,0x00,0x00,
  37          0x40,0x7F,0x80,0x02,0xFE,0x82,0x82,0xFE,0x82,0x82,0xFE,0x82,0x82,0xFE,0x02,0x00,
  38          
  39          /*--  文字1:  度  --*/ 
  40          /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x高=17x16   --*/ 
  41          0x00,0x00,0x3F,0x20,0x24,0x24,0x3F,0xA5,0x65,0x25,0x3F,0x24,0x24,0x24,0x20,0x00,
  42          0x01,0x06,0xF8,0x01,0x01,0x42,0x62,0x54,0x48,0x48,0x54,0x64,0x42,0x03,0x02,0x00,
  43          /*--  文字2:  湿  --*/ 
  44          /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x高=17x16   --*/ 
  45          0x08,0x06,0x40,0x33,0x00,0x00,0x7C,0x54,0x55,0x54,0x55,0x54,0x7C,0x00,0x00,0x00,
  46          0x10,0x10,0x7F,0x80,0x02,0x42,0x32,0x02,0xFE,0x02,0xFE,0x12,0x22,0x42,0x02,0x00,
  47          /*--  文字3:  度  --*/ 
  48          /*--  Trebuchet MS12;  此字体下对应的点阵为:宽x高=17x16   --*/ 
  49          0x00,0x00,0x3F,0x20,0x24,0x24,0x3F,0xA5,0x65,0x25,0x3F,0x24,0x24,0x24,0x20,0x00,
  50          0x01,0x06,0xF8,0x01,0x01,0x42,0x62,0x54,0x48,0x48,0x54,0x64,0x42,0x03,0x02,0x00,
  51          /*--  文字4:  光  --*/
  52          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  53          0x00,0x02,0x42,0x22,0x3A,0x13,0x02,0xFE,0x02,0x03,0x0A,0x72,0x22,0x06,0x02,0x00,
  54          0x00,0x01,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0xFC,0x02,0x02,0x02,0x02,0x1E,0x00,
  55          
C51 COMPILER V8.02   二节点                                                                03/11/2012 14:11:13 PAGE 2   

  56          /*--  文字5:  照  --*/
  57          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  58          0x00,0x00,0x7F,0x44,0x44,0x7F,0x02,0x84,0x8B,0xF2,0x82,0x8A,0x86,0xFB,0x00,0x00,
  59          0x02,0x06,0xDC,0x80,0x90,0xCC,0x06,0x00,0xF0,0x4C,0x46,0x40,0x50,0xEC,0x06,0x00,
  60          
  61          /*--  文字6:  等  --*/
  62          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  63          0x09,0x11,0xE5,0x45,0x65,0x5D,0x45,0x1F,0xE5,0x45,0x65,0x5D,0x45,0x41,0x01,0x00,
  64          0x00,0x20,0x20,0x20,0x20,0x30,0x2C,0x20,0x22,0x21,0xFE,0x20,0x20,0x20,0x00,0x00,
  65          
  66          /*--  文字7:  级  --*/
  67          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  68          0x04,0x0C,0x35,0xC6,0x04,0x18,0x40,0x41,0x7E,0x41,0x42,0x4E,0x72,0x03,0x02,0x00,
  69          0x08,0xC8,0x88,0x92,0x94,0x89,0x31,0xC2,0x02,0xC4,0x28,0x18,0x66,0x83,0x02,0x00,
  70          /*--  文字8:  为  --*/
  71          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  72          0x00,0x08,0x08,0x48,0x28,0x38,0x08,0x0F,0xF9,0x08,0x08,0x08,0x08,0x1F,0x08,0x00,
  73          0x00,0x00,0x02,0x04,0x08,0x10,0x60,0x80,0x00,0x88,0x64,0x02,0x04,0xF8,0x00,0x00,
  74          /*--  文字9:  已  --*/
  75          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  76          0x00,0x00,0x47,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x7E,0x00,0x00,0x00,0x00,
  77          0x00,0x00,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x3C,0x08,0x00,
  78          
  79          /*--  文字10:  发  --*/
  80          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  81          0x00,0x08,0x7C,0x08,0x08,0x0F,0xF9,0x09,0x09,0x49,0x29,0x38,0x08,0x08,0x08,0x00,
  82          0x02,0x04,0x08,0x11,0xE1,0x82,0x62,0x14,0x08,0x14,0xE4,0x02,0x03,0x02,0x00,0x00,
  83          
  84          /*--  文字11:  送  --*/
  85          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  86          0x02,0x82,0x63,0x00,0x02,0x12,0x92,0x72,0x1F,0x32,0xD2,0x12,0x12,0x02,0x00,0x00,
  87          0x02,0x04,0xF8,0x04,0x02,0x12,0x22,0xC2,0x02,0x82,0x42,0x32,0x02,0x02,0x02,0x00
  88          };
  89          /*  数字 0~9   */
  90          u8 code charater_table[]=
  91          {
  92           0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0xF0,0x08,0x04,0x04,0x08,0xF0,0x00,
  93           0x00,0x08,0x08,0x1F,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00,
  94           0x00,0x0E,0x10,0x10,0x10,0x11,0x0E,0x00,0x00,0x0C,0x14,0x24,0x44,0x84,0x0C,0x00,
  95           0x00,0x0C,0x10,0x11,0x11,0x12,0x0C,0x00,0x00,0x18,0x04,0x04,0x04,0x88,0x70,0x00,
  96           0x00,0x00,0x03,0x04,0x08,0x1F,0x00,0x00,0x00,0xE0,0x20,0x24,0x24,0xFC,0x24,0x00,
  97           0x00,0x1F,0x10,0x11,0x11,0x10,0x10,0x00,0x00,0x98,0x84,0x04,0x04,0x88,0x70,0x00,
  98           0x00,0x07,0x08,0x11,0x11,0x18,0x00,0x00,0x00,0xF0,0x88,0x04,0x04,0x88,0x70,0x00,
  99           0x00,0x1C,0x10,0x10,0x13,0x1C,0x10,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,
 100           0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,0x00,0x38,0x44,0x84,0x84,0x44,0x38,0x00,
 101           0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0x00,0x8C,0x44,0x44,0x88,0xF0,0x00,
 102           0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
 103           0x18,0x10,0x10,0x1F,0x10,0x10,0x18,0x00,0x00,0x00,0x04,0xFC,0x04,0x00,0x00,0x00
 104          }; 
 105          
 106          
 107          
 108          
 109          ///////////////////////////////////////////////////////////////////////////////////////////////
 110          ///////////////////////////////////////////////////////////////////////////////////////////////
 111          //delay_1ms: 大约延时1ms 
 112          void delay_1ms(void)//1ms延时函数 
 113          { 
 114   1      u16 i; 
 115   1      for (i=0;i<500;i++) 
 116   1      { 
 117   2      ; 
C51 COMPILER V8.02   二节点                                                                03/11/2012 14:11:13 PAGE 3   

 118   2      } 
 119   1      
 120   1      } 
 121          
 122          
 123          ///////////////////////////////////////////////////////////// /////////////////////////////////
 124          ////////////////////////////////////////////////////////////////////////////////////////////// 
 125          //LCD_Write_Byte: 写数据或命令到LCD 
 126          //输入参数:u8 Data_or_Command:要写入的数据或命令; 
 127          // u8 D_or_C  :1 写数据/ 0 写命令 
 128          
 129          void LCD_Write_Byte(u8 Data_or_Command,u8 D_or_C) 
 130          { 
 131   1      u8 i;  
 132   1      SCE=0;//选择芯片 
 133   1      D_C=D_or_C;// 数据? 命令? 
 134   1      for(i=0;i<8;i++)//写 
 135   1      {  
 136   2      if(0x80==(Data_or_Command&0x80)) 
 137   2      { 
 138   3      DIN=1; 
 139   3      } 
 140   2      else 
 141   2      { 
 142   3      DIN=0; 
 143   3      } 
 144   2      
 145   2      
 146   2      Data_or_Command<<=1;//移位 
 147   2      
 148   2      //造个上升沿 
 149   2      SCK=0; 
 150   2      _nop_(); 
 151   2      _nop_(); 
 152   2      _nop_(); 
 153   2      _nop_(); 
 154   2      
 155   2      SCK=1;  
 156   2      } 
 157   1      //回复到安全状态 保险 
 158   1      D_C=1; 
 159   1      SCE=1; 
 160   1      DIN=1; 
 161   1      } 
 162          /////////////////////////////////////////////////////////////////////////////////////////
 163          void LCD_Write_Byte2(u8 Data_or_Command,u8 D_or_C) 
 164          { 
 165   1      u8 i;  
 166   1      SCE=0;//选择芯片 
 167   1      D_C=D_or_C;// 数据? 命令? 
 168   1      for(i=0;i<8;i++)//写 
 169   1      {  
 170   2      if(0x01==(Data_or_Command&0x01)) 
 171   2      { 
 172   3      DIN=1; 
 173   3      } 
 174   2      else 
 175   2      { 
 176   3      DIN=0; 
 177   3      } 
 178   2      
 179   2      
C51 COMPILER V8.02   二节点                                                                03/11/2012 14:11:13 PAGE 4   

 180   2      Data_or_Command>>=1;//移位 
 181   2      
 182   2      //造个上升沿 
 183   2      SCK=0; 
 184   2      _nop_(); 
 185   2      _nop_(); 
 186   2      _nop_(); 
 187   2      _nop_(); 
 188   2      SCK=1;  
 189   2      } 
 190   1      //回复到安全状态 保险 
 191   1      D_C=1; 
 192   1      SCE=1; 

⌨️ 快捷键说明

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