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

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

芯片破解STC15W408单片机T0 T2+LCD1602频率计源程序

芯片破解STC15W408的T0、T2 中断+ 1602显示的频率计程序,测量振动频率用。

芯片破解单片机源程序如下:

  1. //STC15W408,P34 T0为频率输入口
  2. #define CPU_Fosc 6000000uL //定义时钟
  3. #include<STC15F2K60S2.H>
  4. //#include<stdio.h>
  5. #include <intrins.h>
  6. #include"1602.h"
  7. #include"delay.h"

  8. bit OVERFLOWFLAG;
  9. bit TIMERFLAG;

  10. /*------------------------------------------------
  11.                     定时器0初始化子程序
  12.                                         本程序用于计数
  13. ------------------------------------------------*/
  14. void Init_Timer0(void)
  15. {
  16. TMOD |= 0x01 | 0x04;          //使用模式1,16位计数器,使用"|"符号可以在使用多个定时器时不受影响                     
  17. TH0=0x00;              //给定初值
  18. TL0=0x00;         
  19. EA=1;            //总中断打开
  20. ET0=1;           //定时器中断打开
  21. TR0=1;         
  22. }                             //定时器开关打开
  23. /*------------------------------------------------
  24.                     定时器2初始化子程序
  25.                                         本程序用于定时
  26. ------------------------------------------------*/
  27. void Timer2Init(void)                //100微秒@6.000MHz
  28. {
  29.         AUXR |= 0x04;                //定时器时钟1T模式
  30.         T2L = 0xA8;                //设置定时初始值
  31.         T2H = 0xFD;                //设置定时初始值
  32.         AUXR |= 0x10;                //定时器2开始计时
  33. }
  34. /*
  35. void Init_Timer1(void)
  36. {
  37. TMOD |= 0x10;          //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
  38. TH1=0x3c;              //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
  39. TL1=0xb0;
  40. EA=1;            //总中断打开
  41. ET1=1;           //定时器中断打开
  42. TR1=1;           //定时器开关打开
  43. }
  44. */
  45. /*------------------------------------------------
  46.                     主程序
  47. ------------------------------------------------*/
  48. main()
  49. {
  50. unsigned  long int a;
  51. char temp[16];      //定义字符显示缓冲数组
  52. Init_Timer0();      //初始化定时器0
  53. Timer2Init();      //初始化定时器2
  54. LCD_Init();         //初始化液晶屏
  55. LCD_Str(0,0,"    PIN LV JI ");//写入第一行信息,主循环中不再更改此信息,所以在while之前写入

  56. while(1)
  57. {
  58.   if(OVERFLOWFLAG)//检测溢出标志,如果溢出表明频率过高,显示溢出信息
  59.     {
  60.          OVERFLOWFLAG=0;//标志清零
  61.      LCD_Str(0,1,"overflow >655KHz");
  62.         }
  63.   if(TIMERFLAG)      //定时1s到,做数据处理
  64.     {
  65.          a=TL0+TH0*256;//读取计数值
  66.          a=a*16;     //扩大到实际值
  67. //     sprintf(temp,"FREQ:%08.0f Hz",(float)a);
  68.      LCD_Str(0,1,temp);//显示到液晶第二行
  69.          TR0=1;                     //2个定时器打开
  70. //         TR1=1;
  71.      IE2  = 0x04;   //T2中断允许
  72.          TH0=0;                     //保证计数器初值为0
  73.          TL0=0;
  74.          TIMERFLAG=0;               //打开计时计数标志
  75.          
  76.         }
  77.   }                         
  78. }



联系方式

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

在线客服
热线电话

企业微信