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

📄 serial.lst

📁 LCD及键盘、RS232通信控制源代码、采用keil c51环境编译
💻 LST
📖 第 1 页 / 共 3 页
字号:
 512   8      								UISemaphore.ucExamAreaSem = 0xff;				//release semaphore
 513   8      								DelayCycle(16);
 514   8      							}
 515   7      							UISemaphore.ucExamAreaSem = 0xff;					//release semaphore
 516   7      
 517   7      							ConnectFlag	= FALSE;
 518   7      							UARTTransFrame	= UARTTransHead;
 519   7      							ucNoAckCount	= 0;
 520   7      							if(UARTTransHead != UARTTransTail)
 521   7      							{
 522   8      								StopTran = FALSE;
 523   8      								TI = 1;
 524   8      							}
 525   7      						}
 526   6      						ET2 = 1;			//enable timer2
 527   6      					}
 528   5      					break;
 529   5      				case REQ_FRAME:
 530   5      					if(ucRcvLen == REQ_FRAME_LEN)
 531   5      					{//Length OK
 532   6      						WriteSerial(ucACK,ACK_FRAME_LEN);	//应答ACK
 533   6      						break;
 534   6      					}
 535   5      					break;
 536   5      				default:
 537   5      #ifdef NDS_UI_DEBUG
 538   5      #ifdef NDS_UI_DEBUG_ENABLEDIS
 539   5      					SetCursorPos(0);
 540   5      					DisplayChar( ((*UARTRcvFrame)>>4)+0x30 );
 541   5      					DisplayChar( ((*UARTRcvFrame)&0x0f)+0x30 );
 542   5      #endif
 543   5      #endif
 544   5      					break;
 545   5      				}//switch(*UARTRcvFrame)
 546   4      
 547   4      ////////////////////////////////////////////////
 548   4      			}//if( ucTmp == ETX)
 549   3      		}//if( ucTmp != STX)
 550   2      	}//if( UARTRcvHead != UARTRcvTail)
 551   1      }
C51 COMPILER V6.14  SERIAL                                                                 07/15/2005 09:38:51 PAGE 10  

 552          
 553          
 554          /******************************************************************************
 555          *                                                                             *
 556          *	将指定的ASCII转换成HEX                                                    *
 557          *                                                                             *
 558          ******************************************************************************/
 559          unsigned char idata * AscToHex(unsigned char idata *Ptr_Uart,unsigned char data *ucHex)
 560          {
 561   1      	*ucHex = *Ptr_Uart;
 562   1      	if( *ucHex >= 'a' )
 563   1      	{
 564   2      		*ucHex = *ucHex - 'a' +10;
 565   2      	}
 566   1      	else if( *ucHex >= 'A' )
 567   1      	{
 568   2      		*ucHex = *ucHex - 'A' +10;
 569   2      	}
 570   1      	else
 571   1      	{
 572   2      		*ucHex &= 0x0f;
 573   2      	}
 574   1      	*ucHex <<= 4;
 575   1      	if(++Ptr_Uart == UART_RcvBuffer+UARTBUFFERLEN_RX)
 576   1      	{
 577   2      		Ptr_Uart = UART_RcvBuffer;
 578   2      	}
 579   1      	if( *Ptr_Uart >= 'a' )
 580   1      	{
 581   2      		*ucHex += *Ptr_Uart - 'a' +10;
 582   2      	}
 583   1      	else if( *Ptr_Uart >= 'A' )
 584   1      	{
 585   2      		*ucHex += *Ptr_Uart - 'A' +10;
 586   2      	}
 587   1      	else
 588   1      	{
 589   2      		*ucHex += *Ptr_Uart - '0';
 590   2      	}
 591   1      	if(++Ptr_Uart == UART_RcvBuffer+UARTBUFFERLEN_RX)
 592   1      	{
 593   2      		Ptr_Uart = UART_RcvBuffer;
 594   2      	}
 595   1      	return Ptr_Uart;
 596   1      }
 597          
 598          /******************************************************************************
 599          *                                                                             *
 600          *	从双口ram取出系统参数,转换成命令串并放入发送缓冲区                       *
 601          *                                                                             *
 602          ******************************************************************************/
 603          
 604          void GetSysPara(void)
 605          {
 606   1      unsigned char ucCRC,ucTmp;
 607   1      
 608   1      	if(UIDataArea.SysPara.ucSysparaDirtyFlag & UpFreq_UP)
 609   1      	{//UpLink frequency has been chang
 610   2      		WriteSerial(ucUpfreq,3);
 611   2      		ucCRC = ucUpfreq[0]^ucUpfreq[1]^ucUpfreq[2];
 612   2      
 613   2      		ucTmp = UIDataArea.SysPara.ucUpFreq[0]>>4;
C51 COMPILER V6.14  SERIAL                                                                 07/15/2005 09:38:51 PAGE 11  

 614   2      		if(ucTmp>9)
 615   2      		{
 616   3      			ucTmp += 'A' - 10;
 617   3      		}
 618   2      		else
 619   2      		{
 620   3      			ucTmp += '0';
 621   3      		}
 622   2      		ucCRC ^= ucTmp;
 623   2      		WriteSerialByte(ucTmp);
 624   2      		ucTmp = UIDataArea.SysPara.ucUpFreq[0]&0x0f;
 625   2      		if(ucTmp>9)
 626   2      		{
 627   3      			ucTmp += 'A' - 10;
 628   3      		}
 629   2      		else
 630   2      		{
 631   3      			ucTmp += '0';
 632   3      		}
 633   2      		ucCRC ^= ucTmp;
 634   2      		WriteSerialByte(ucTmp);
 635   2      
 636   2      		ucTmp = UIDataArea.SysPara.ucUpFreq[1]>>4;
 637   2      		if(ucTmp>9)
 638   2      		{
 639   3      			ucTmp += 'A' - 10;
 640   3      		}
 641   2      		else
 642   2      		{
 643   3      			ucTmp += '0';
 644   3      		}
 645   2      		ucCRC ^= ucTmp;
 646   2      		WriteSerialByte(ucTmp);
 647   2      		ucTmp = UIDataArea.SysPara.ucUpFreq[1]&0x0f;
 648   2      		if(ucTmp>9)
 649   2      		{
 650   3      			ucTmp += 'A' - 10;
 651   3      		}
 652   2      		else
 653   2      		{
 654   3      			ucTmp += '0';
 655   3      		}
 656   2      		ucCRC ^= ucTmp;
 657   2      		WriteSerialByte(ucTmp);
 658   2      
 659   2      		ucTmp = ucCRC>>4;
 660   2      		if(ucTmp>9)
 661   2      		{
 662   3      			ucTmp += 'A' - 10;
 663   3      		}
 664   2      		else
 665   2      		{
 666   3      			ucTmp += '0';
 667   3      		}
 668   2      		WriteSerialByte(ucTmp);
 669   2      		ucTmp = ucCRC&0x0f;
 670   2      		if(ucTmp>9)
 671   2      		{
 672   3      			ucTmp += 'A' - 10;
 673   3      		}
 674   2      		else
 675   2      		{
C51 COMPILER V6.14  SERIAL                                                                 07/15/2005 09:38:51 PAGE 12  

 676   3      			ucTmp += '0';
 677   3      		}
 678   2      		WriteSerialByte(ucTmp);
 679   2      		WriteSerialByte(ETX);
 680   2      	}
 681   1      	if(UIDataArea.SysPara.ucSysparaDirtyFlag & DwnFreq_UP)
 682   1      	{//DownLink frequency has been chang
 683   2      		WriteSerial(ucDwnfreq,3);
 684   2      		ucCRC = ucDwnfreq[0]^ucDwnfreq[1]^ucDwnfreq[2];
 685   2      
 686   2      		ucTmp = UIDataArea.SysPara.ucDownFreq[0]>>4;
 687   2      		if(ucTmp>9)
 688   2      		{
 689   3      			ucTmp += 'A' - 10;
 690   3      		}
 691   2      		else
 692   2      		{
 693   3      			ucTmp += '0';
 694   3      		}
 695   2      		ucCRC ^= ucTmp;
 696   2      		WriteSerialByte(ucTmp);
 697   2      		ucTmp = UIDataArea.SysPara.ucDownFreq[0]&0x0f;
 698   2      		if(ucTmp>9)
 699   2      		{
 700   3      			ucTmp += 'A' - 10;
 701   3      		}
 702   2      		else
 703   2      		{
 704   3      			ucTmp += '0';
 705   3      		}
 706   2      		ucCRC ^= ucTmp;
 707   2      		WriteSerialByte(ucTmp);
 708   2      
 709   2      		ucTmp = UIDataArea.SysPara.ucDownFreq[1]>>4;
 710   2      		if(ucTmp>9)
 711   2      		{
 712   3      			ucTmp += 'A' - 10;
 713   3      		}
 714   2      		else
 715   2      		{
 716   3      			ucTmp += '0';
 717   3      		}
 718   2      		ucCRC ^= ucTmp;
 719   2      		WriteSerialByte(ucTmp);
 720   2      		ucTmp = UIDataArea.SysPara.ucDownFreq[1]&0x0f;
 721   2      		if(ucTmp>9)
 722   2      		{
 723   3      			ucTmp += 'A' - 10;
 724   3      		}
 725   2      		else
 726   2      		{
 727   3      			ucTmp += '0';
 728   3      		}
 729   2      		ucCRC ^= ucTmp;
 730   2      		WriteSerialByte(ucTmp);
 731   2      
 732   2      		ucTmp = ucCRC>>4;
 733   2      		if(ucTmp>9)
 734   2      		{
 735   3      			ucTmp += 'A' - 10;
 736   3      		}
 737   2      		else
C51 COMPILER V6.14  SERIAL                                                                 07/15/2005 09:38:51 PAGE 13  

 738   2      		{
 739   3      			ucTmp += '0';
 740   3      		}
 741   2      		WriteSerialByte(ucTmp);
 742   2      		ucTmp = ucCRC&0x0f;
 743   2      		if(ucTmp>9)
 744   2      		{
 745   3      			ucTmp += 'A' - 10;
 746   3      		}
 747   2      		else
 748   2      		{
 749   3      			ucTmp += '0';
 750   3      		}
 751   2      		WriteSerialByte(ucTmp);
 752   2      		WriteSerialByte(ETX);
 753   2      	}
 754   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1718    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       4
   IDATA SIZE       =    128    ----
   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 + -