芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

STC12C5A60S2双串口程序芯片解密

芯片解密STC12C5A60S2双串口程序。芯片解密串口1P3.0和P3.1、串口2P1.3和P1.2。
  1. /***********************************************************************
  2. 时间:芯片解密
  3. 芯片:STC12C5A60S2
  4. 晶振:22.1184MHz  波特率:9600bps
  5. 引脚定义:串行口1:发送————TxD/P3.1; 接收———.000—RxD/P3
  6.          串行口2:        发送————TxD2/P1.3;接收————RxD2/P1.2
  7. 功能描述:STC12双串口通信(中断方式)
  8.           当串行口1接收数据后,将此数据由串行口2发送出去
  9.           当串行口2接收数据后,将此数据由串行口1发送出去
  10. ***********************************************************************/
  11. #include<STC12C5A60S2.h>

  12. #define S2RI 0x01        //串口2接收中断请求标志位
  13. #define S2TI 0x02        //串口2发送中断请求标志位
  14. unsigned char flag1,flag2,temp1=0xaa,temp2=0x55;
  15. /****************串行口初始化函数****************/
  16. void InitUART(void)
  17. {
  18.     TMOD = 0x20;    //定时器1工作在方式2  8位自动重装
  19.     SCON = 0x50;    //串口1工作在方式1  10位异步收发 REN=1允许接收
  20.     TH1 = 0xFA;           //定时器1初值
  21.     TL1 = TH1;
  22.     TR1 = 1;           //定时器1开始计数
  23.     EA =1;        //开总中断
  24.     ES =1;        //开串口1中断

  25.     S2CON = 0x50;   //串口2工作在方式1  10位异步收发 S2REN=1允许接收
  26.     BRT = 0xFA;           //独立波特率发生器初值
  27.     AUXR = 0x10;    //BRTR=1 独立波特率发生器开始计数
  28.     IE2 =0x01;        //开串口2中断  ES2=1
  29. }
  30. /****************串行口1发送****************/
  31. void UART_1SendOneByte(unsigned char c)
  32. {
  33.     SBUF = c;
  34.     while(!TI);           //若TI=0,在此等待
  35.     TI = 0;         
  36. }
  37. /****************串行口2发送****************/
  38. void UART_2SendOneByte(unsigned char c)
  39. {
  40.     S2BUF = c;
  41.     while(!(S2CON&S2TI));  //若S2TI=0,在此等待
  42.     S2CON&=~S2TI;          //S2TI=0
  43. }
  44. void delay(unsigned int z)
  45. {
  46.         unsigned int x,y;
  47.         for(x=z;x>0;x--)
  48.         for(y=600;y>0;y--);
  49. }
  50. /*****************主函数******************/
  51. void main(void)
  52. {
  53.     InitUART();        //串行口初始化
  54.        
  55.         while(1)
  56.         {P0=temp2;
  57. //如果串口1接收到数据,将此数据由串口2发送
  58.                 if(flag1==1)
  59.                 {
  60.                        
  61.                         flag1=0;
  62.                         UART_2SendOneByte(temp1);
  63.                        
  64.                 }
  65.                 delay(300);
  66.                 P0=temp1;
  67. //如果串口2接收到数据,将此数据由串口1发送
  68.                 if(flag2==1)
  69.                 {
  70.                        
  71.                         flag2=0;
  72.                         UART_1SendOneByte(temp2);
  73.                 }
  74.                 delay(300);
  75.         }
  76. }
  77. /************串行口1中断处理函数*************/
  78. void UART_1Interrupt(void) interrupt 4
  79. {
  80.         if(RI==1)
  81.         {
  82.                
  83.                 RI=0;
  84.                 flag1=1;
  85.                 temp1=SBUF;
  86.         }
  87. }
  88. /************串行口2中断处理函数*************/
  89. void UART_2Interrupt(void) interrupt 8
  90. {
  91.         if(S2CON&S2RI)
  92.         {
  93.                
  94.                 S2CON&=~S2RI;
  95.                 flag2=1;
  96.                 temp2=S2BUF;
  97.         }
  98. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信