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

📄 uait0_1.c

📁 这是机场入口电子卡检查登记的设备。有输入
💻 C
字号:

#include"my.h"
     //使用w77e58 片内1k SRAM, 要定义为xdata , 
     //为确保使用的是片内1k RAM, 最好和 _at_ 0x0000;联合使用
      /**************************************************
      串口0队列    pc
      **************************************************/
      unsigned char xdata xBuf_0[131] _at_ 0x90;
      unsigned char data Seri0_SendNum; 
      unsigned char data Seri0_ReciNum; 
     /**************************************************
      //串口1队列
      **************************************************/
      unsigned char xdata xBuf_1[0x20] _at_ 0x120;
      unsigned char xdata pagedata[128]_at_ 0x140;
      unsigned char xdata *pagedataPoint;
      unsigned char data Seri1_SendNum; 
      unsigned char data Seri1_ReciNum; 
     /**************************************************
      //串口2队列
      **************************************************/
      unsigned char xdata xBuf_2[384] _at_ 0x1C0;

bit fSeri0_Send_Ok;
bit fSeri1_Send_Ok; 
bit fSeri0_Reci_Ok;
bit fSeri1_Reci_Ok; 
bit fSeri2_Send_Ok;
bit fSeri2_Reci_Ok; 

void uart01_init(void){                                   
//system init ,其中串口0用定时器2,串口1用定时器1                                      
//串口1的设置                                     
IE=0x90;      //允许总中断和串口0的中断                                     
TMOD=0x20;      //定时器1工作在模式1                                           
TL1=0xfd;      //baud rate=9600                                     
TH1=0xfd;                                 
SCON1=0x58;   //工作在模式1,允许接收                                     
PCON=0x00; // SM0=0 SM1=1 在10位异步收发模式 SMOD=0 溢出速率/32                                      
ES1=1;    //串口1中断允许                                     
//                                
SCON=0x58;      //工作在模式1,接收允许                                     
T2CON=0x30;  //用定时器2做串口0的波特率发生器                                     
RCAP2H=0xff;                                                                         
RCAP2L=0xdc;   // 11.0592M晶振下,baud rate=9600                       
TR2=1;
TR1=1;
}

void Int_serial0() interrupt 4 using 1{
      // ES=0; /*关串行口中断
      if(TI){//允许中断处理
        TI = 0; //*清发送中断标志
      if(fSeri0_Send_Ok){
       if(Seri0_SendNum<130){
         SBUF=xBuf_0[Seri0_SendNum]; 
         Seri0_SendNum++;
         if (Seri0_SendNum==130)
	        fSeri0_Send_Ok=0;//容许程序处理
           
         }
       }
      } 
      if(RI){//允许中断处理
         RI = 0;
         if(fSeri0_Reci_Ok){
    	   if(Seri0_ReciNum<130){
             xBuf_0[Seri0_ReciNum]=SBUF;
             Seri0_ReciNum++;
             }
           if(Seri0_ReciNum==130)
		     fSeri0_Reci_Ok=0;//容许程序处理
         }
      } 
      // ES=1; //*开中断/
      } 


      /**************************************************
      串口1中断     Reader 
      **************************************************/
unsigned char t=2;
void Int_serial1() interrupt 7 using 1{
      // ES1=0; /*关串行口中断*/
      if(TI_1){//允许中断处理
      TI_1 = 0; //清发送中断标志*
//      if(Seri1_SendNum==23){
      if(Seri1_SendNum==7){
	    fSeri1_Send_Ok=0; //容许程序处

⌨️ 快捷键说明

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