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

📄 serialport.lst

📁 对W29c040读写程序
💻 LST
字号:
C51 COMPILER V7.10   SERIALPORT                                                            03/30/2007 17:05:59 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE SERIALPORT
OBJECT MODULE PLACED IN SerialPort.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SerialPort.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <stdio.h>
   2          #include <reg51.h>
   3          #include "ext_var.h"
   4          #include "SerialPort.h"
   5          
   6          
   7          /**********************************************************************
   8          * 函 数 名: SerialPort_init
   9          * 功能描述: 串口1初始化,默认为19200波特率
  10          * 调用函数: 无
  11          * 全局变量:
  12          * 输    入: 
  13          * 返    回: 无
  14          * 设 计 者: wangyong                         日期:2004-10-20
  15          * 修 改 者: wangyong                         日期:2006-06-15
  16          * 版    本: WTFISCAL04 REPORTV1.0D100
  17          **********************************************************************/
  18          void SerialPort_init()
  19          {
  20   1      /*
  21   1              串口初始化,波特率的设置要根据具体的硬件平台设置
  22   1      */
  23   1              ET0 = 0; //关定时器0中断
  24   1              ET1 = 0; //关定时器1中断
  25   1      
  26   1              SCON = 0x50; //串口方式1,8位自装载模式
  27   1              TMOD = 0x20; //定时器1
  28   1              TH1  = 0xf7; // 33MHz晶振, 19200bps
  29   1              TL1  = 0xf7;
  30   1              PCON = 0x80; //SMOD=1
  31   1              TR1  = 1;
  32   1      
  33   1              ES=1; //开串口中断(我们这里要通过串口中断接收数据)
  34   1              EA=1; //开所有中断
  35   1      }
  36          
  37          
  38          /**********************************************************************
  39          * 函 数 名: SerialPort_send
  40          * 功能描述: 发送数据
  41          * 调用函数: 无
  42          * 全局变量:
  43          * 输    入: portnum--串口号(1:串口1; 2:串口2)
  44          * 返    回: 无
  45          * 设 计 者: wangyong                         日期:2004-10-20
  46          * 修 改 者: wangyong                         日期:2006-06-22
  47          * 版    本: WTFISCAL04 REPORTV1.0D100
  48          **********************************************************************/
  49          void SerialPort_send(uchar outdata)
  50          {
  51   1              SBUF = outdata;
  52   1              while(!TI);TI=0;
  53   1      }
  54          
  55          /**********************************************************************
C51 COMPILER V7.10   SERIALPORT                                                            03/30/2007 17:05:59 PAGE 2   

  56          * 函 数 名: SerialPort_receive
  57          * 功能描述: 接收数据
  58          * 调用函数: 无
  59          * 全局变量:
  60          * 输    入: 
  61          * 返    回: 无
  62          * 设 计 者: wangyong                         日期:2004-10-20
  63          * 修 改 者: wangyong                         日期:2005-10-20
  64          * 版    本: WTFISCAL04 REPORTV1.0D100
  65          **********************************************************************/
  66          /*
  67          uchar SerialPort_receive()
  68          {
  69                  while(!RI);RI=0;
  70                  return SBUF;
  71          }
  72          */
  73          
  74          /*
  75          
  76          --  uPSD3212 的 双串口初始化
  77          版主您好,以下是我的串口初始化代码,问题是UART能发送数据,但UART1不能发送数据,用Keil C51软仿真时,设置SCO
             -N2中的TI=1,没有中断产生。请问是怎么回事,敬请回复,谢谢。
  78          
  79          //------------------------UART and Timer 1-----------------------------------
  80          SCON = 0xD0; //UART: 11 bits(a Start Bit,8 data bits,a 9th data bit,a Stop Bit).
  81          
  82          TMOD &= ~0xF0;  // clear Timer1 mode bits 
  83          TMOD |= 0x20;     // put Timer1 into MODE 2 
  84          TR1 = 0;              //stop timer 1.
  85          TL1 = 208;           //1200 bps
  86          TH1 = TL1;
  87          T2CON = 0x00;    // Timer1 used to generate the buadrate of UART1.
  88          TR1 = 1;             //start Timer1
  89          ET1 = 0; 
  90          ES  = 1; 
  91          
  92          //------------------------UART1 and Timer 2-----------------------------------
  93          SCON2 = 0x50;  //UART1 : 9600 bps ( 10 bits: a start bit, 8 data bits, a stop bit)
  94          TR2 = 0;    //stop timer 2
  95          RCAP2L = 0xB8; 
  96          RCAP2H = 0xFF;
  97          TL2 = RCAP2L;
  98          TH2 = RCAP2H;
  99          PCON = 0x0C;   //Timer2 used to generate the buadrate of UART2.
 100          TR2 = 1;       //start Timer2.
 101          
 102          IEA = 0x12;
 103          EA  = 1;
 104          
 105          --------------------------------------------------------------------------------
 106           
 107          --  作者:penger
 108          --  发布时间:2005-7-3 19:50:12
 109          
 110          --  
 111          看看keil 里面串口2的中断地址对吗?应该是interrupt 9  
 112          
 113          
 114          */


C51 COMPILER V7.10   SERIALPORT                                                            03/30/2007 17:05:59 PAGE 3   

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