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

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

芯片复制stc8g1k08a单片机的简易示波器

芯片复制stc8g1k08a是深圳宏晶科技的一款8脚8位兼容51系列的单片机  价格很便宜 但麻雀虽小五脏俱全 且速度还挺快下面就是用它做的小东东 精度不是很高 本人也是刚入门 水平有限 希望大家多多指教共两个按键 :按住周期和启动按键5秒钟后两个程序互相切换  短按示波器是切换扫描周期  超声波测距是启动按键  波形锁定是示波器波形固定用的

芯片复制单片机源程序如下:

  1. #include "reg51.h"
  2. #include "intrins.h"
  3. #include"main.h"
  4. #include<math.h>

  5. unsigned char xdata se[128];//把AD转换后的临时数据存于该数组
  6. unsigned char code sm[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//用于显示一列中的一点
  7. unsigned int code time[9]={1,40,100,500,1000,2600,5250,10000,25000};
  8. unsigned int code time1[9]={1,3,5,20,40,100,200,400,1000};
  9. unsigned char xdata timd[5];
  10. unsigned char xdata ju_li[5];
  11. unsigned char p,z=0;
  12. unsigned int i=0,q=0;
  13. unsigned int m=5;
  14. //unsigned double q;
  15. sbit k1=P3^1;
  16. sbit trig=P3^3;
  17. sbit echo=P3^2;
  18. void delay_us(unsigned int i)
  19. {
  20.         while(i)
  21.         {
  22.           unsigned char a;
  23.     for(a=5;a>0;a--);
  24.         i--;
  25.         }
  26.        
  27. }
  28. void delay100ms(unsigned int i)   //误差 -0.000000000025us
  29. {
  30.    while(i)
  31.    {
  32.    unsigned char a,b,c;
  33.     for(c=106;c>0;c--)
  34.         for(b=197;b>0;b--)
  35.             for(a=38;a>0;a--);
  36.     _nop_();  //if Keil,require use intrins.h
  37.         i--;
  38.         }
  39. }
  40. void main()
  41. {
  42.         P0M1 = 0;   P0M0 = 0;   //设置为准双向口
  43.     P1M1 = 0;   P1M0 = 0;   //设置为准双向口
  44.     P2M1 = 0;   P2M0 = 0;   //设置为准双向口
  45.     P3M1 = 0;   P3M0 = 0;   //设置为准双向口
  46.     P4M1 = 0;   P4M0 = 0;   //设置为准双向口
  47.     P5M1 = 0;   P5M0 = 0;   //设置为准双向口
  48.     /*        P_SW2 = 0x80;  //特殊寄存器允许位(0x80)
  49.         CKSEL = 0x00; //选择内部 IRC ( 默认 )
  50.         CLKDIV = 0x03; //时钟 3分频
  51.         P_SW2 = 0x00;
  52.         */       
  53.         ad_init();        //ad转换初始化
  54.     OLED_Init(); //OLED初始化
  55.           
  56.         for(z=0;z<128;z++)                             // 起   显示启动示波器文字
  57.         {
  58.                   for(i=0;i<8;i++)   //清屏
  59.                 {
  60.                                  OLED_WrCmd(0xb0+i);
  61.                                 OLED_WrCmd(0x00+(z%16));
  62.                         OLED_WrCmd(0x10+z/16);
  63.                                 OLED_WrDat(0x00);
  64.                 }
  65.         }
  66.                 for (i=0;i<8;i++)
  67.          {
  68.                 OLED_P16x16Ch(i*16,i/8*2+2,i);
  69.          }
  70.          delay100ms(30);
  71.                  for(z=0;z<128;z++)               
  72.         {
  73.                   for(i=0;i<8;i++)   //清屏
  74.                 {
  75.                                  OLED_WrCmd(0xb0+i);
  76.                                 OLED_WrCmd(0x00+(z%16));
  77.                         OLED_WrCmd(0x10+z/16);
  78.                                 OLED_WrDat(0x00);
  79.                 }
  80.         }                      



联系方式

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

在线客服
热线电话

企业微信