久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2591|回復: 0
打印 上一主題 下一主題
收起左側

單片機寬電壓數顯延時電路與源程序(模擬量+計數+倒計時等功能)

[復制鏈接]
跳轉到指定樓層
樓主
【簡要說明】
一、板子尺寸:長54mmX寬72mmX18mm
二、主要器件:單片機、數碼管、繼電器
三、工作電壓:有12V24兩種可供選擇
四、板子功耗:小于300mA

GYJ-0057_寬電壓可編程數顯延時模塊電路原理圖如下:


pcb:


Altium Designer畫的單路數顯延時模塊寬電壓原理圖和PCB圖如下:(51hei附件中可下載工程文件)



模擬量0到5上限下限單片機源程序如下:
  1. #include<STC12C2052AD.h>                 //庫文件
  2. #include<intrins.h>
  3. #define uchar unsigned char //宏定義字符型變量
  4. #define uint  unsigned int        //宏定義整型變量
  5. /****************************模擬量開始*********************************************/
  6. /*聲明 SFR 相關 與 的 IAP*/
  7. sfr IAP_DATA = 0xE2;
  8. sfr IAP_ADDRH = 0xE3;
  9. sfr IAP_ADDRL = 0xE4;
  10. sfr IAP_CMD = 0xE5;
  11. sfr IAP_TRIG = 0xE6;
  12. sfr IAP_CONTR = 0xE7;
  13. #define ADC_POWER   0x80            //ADC 電源控制位
  14. #define ADC_FLAG    0x10            //ADC 轉換結束標志位
  15. #define ADC_START   0x08            //ADC 開始轉換控制位
  16. #define ADC_SPEEDLL 0x00            //210 個時鐘周期轉換一次
  17. #define ADC_SPEEDL  0x20            //420 個時鐘周期轉換一次
  18. #define ADC_SPEEDH  0x40            //630 個時鐘周期轉換一次
  19. #define ADC_SPEEDHH 0x60            //840 個時鐘周期轉換一次
  20. /******************************模擬量結束*******************************************/
  21. /********************************************************************
  22.                             定義 ISP/IAP/EEPROM 命令
  23. *********************************************************************/
  24. #define CMD_IDLE 0jm
  25. #define CMD_READ 1
  26. #define CMD_PROGRAM 2
  27. #define CMD_ERASE 3
  28. #define ENABLE_IAP 0x83//SYSCLK<12MH
  29. #define IAP_ADDRESS 0x0000        //存儲地址
  30. void IapIdle();//禁用 ISP/IAP/EEPROM functionmake 單片機 在 一 安全 狀態
  31. uchar IapReadByte(uint addr);//讀數據
  32. void IapProgramByte(uint addr, uchar dat);//寫數據
  33. void IapEraseSector(uint addr);//擦除數據
  34. sbit P10=P1^0;//數碼管段
  35. sbit P11=P1^1;//數碼管段
  36. sbit P12=P1^2;//數碼管段
  37. sbit P13=P1^3;//數碼管段
  38. sbit P14=P1^4;//數碼管段
  39. sbit P15=P1^5;//數碼管段
  40. sbit P16=P1^6;//數碼管段
  41. sbit P32=P3^2;//數碼管位
  42. sbit P33=P3^3;//數碼管位
  43. sbit P35=P3^5;//數碼管位
  44. sbit AIN1=P1^7;//AD信號輸入
  45. sbit key1=P3^0;//按鍵輸入
  46. sbit key2=P3^1;//按鍵輸入
  47. sbit OUT=P3^7; //繼電器輸出
  48. static uchar presstime=0;//用于延時
  49. uint tcnt1=0;//用于刷新數碼管
  50. uint bainum1,shinum1,genum1;//數碼管上顯示
  51. uint bainum11=0,shinum11=0,genum11=0,shinum12=0,genum12=0;//用于傳到數碼管上顯示
  52. uint kf0=1,if0=0;//按鍵用的標志位
  53. uint kt0=0;//按鍵用的標志位
  54. uint keynum=0;//數碼管的位
  55. uint datas=0;
  56. bit flag_eeprom1=1;//掉電存儲的標志位
  57. uint inum1=0;//觸發端子用的計數
  58. uchar inum11=0,inum12=0;//掉電存儲
  59. uint ad=0,ad1=0;
  60. code uchar seg7code[13]={0x84,0xf6,0x8a,0xa2,0xf0,0xa1,0x81,0xb6,0x80,0xa0,0x6f,0x3e,0x72}; //顯示段碼 數碼管字跟
  61. extern void p31s();//將p3口的235置為1
  62. uint GetADCResult(uchar px);
  63. uint meanval1,meanval2;//平均值
  64. void InitADC();
  65. void keycan();
  66. void keyflag();//按鍵結束調用
  67. void displaynum();//將數字傳到數碼管上顯示
  68. void saveeepro();

  69. void timer0(void)interrupt 1  {//定時器0         
  70.         //500等于1秒
  71.         TL0 = 0xCD;                //重新設置定時器0時間為2ms
  72.         TH0 = 0xF8;                //重新設置定時器0的初始值
  73.         tcnt1++;//用于刷新數碼管
  74.         presstime++;
  75.         if (if0==0){
  76.                 meanval1++;
  77.                 if(meanval1==50){
  78.                         meanval2=GetADCResult(7)/5;
  79.                         meanval1=0;
  80.                 }
  81.         }
  82.         switch(tcnt1){//數碼管部分
  83.            case 1: p31s(); P1=seg7code[bainum1];P32=0;break;
  84.           case 2: p31s(); P1=~seg7code[shinum1];if(keynum==1 || keynum==3 || keynum==0){P33=0;}break;
  85.           case 3: p31s(); P1=~seg7code[genum1]; if(keynum==2 || keynum==4 || keynum==0){P35=0;}break;
  86.           default: tcnt1=0; p31s(); break;
  87.          }
  88. }//定時器0結束
  89. void displaynum(){//將數字傳到數碼管上顯示
  90.         if (if0==0){//當if0==0時num1三個數碼管進行顯示
  91.                 AIN1=1;
  92.                 ad=meanval2;
  93.                 if((ad<inum11)||(ad>inum12)){OUT=0;}else{OUT=1;}
  94.                         genum1=ad%10;//個位
  95.                         shinum1=ad/10%10;//十位
  96.                         bainum1=10;//百
  97.         }else{
  98.                 if(keynum<3){
  99.                         bainum1=11;
  100.                         shinum1=shinum11;
  101.                         genum1=genum11;
  102.                         inum11=shinum11*10+genum11;        //將num1三個數碼管的值付給inum
  103.                 }else{
  104.                         bainum1=12;
  105.                         shinum1=shinum12;
  106.                         genum1=genum12;
  107.                         inum12=shinum12*10+genum12;        //將num1三個數碼管的值付給inum
  108.                
  109.                 }
  110.         }                        
  111. }
  112. void timer0_1init(void){//定時配置
  113.         TMOD=0x11;//將定時器0,1都設置為模式1
  114.         TL0 = 0xCD;//設置定時器0時間為2ms
  115.         TH0 = 0xF8;//設置定時器0的初始值
  116.         TR0=1;//開啟定時器0
  117.         TR1=1;//開啟定時器1
  118.         EA=1;//開總中斷
  119.         ET0=1;//開定時器0的中斷
  120. }
  121. void main(){
  122.         P1M0=0X00;//強推挽輸出
  123.         P1M1=0X7F;//強推挽輸出
  124.         AIN1=1;
  125.         InitADC(); //AD轉換初始化
  126.         timer0_1init();        //定時器配置
  127.         inum11= IapReadByte(0x01);//讀取存儲的值
  128.         inum12= IapReadByte(0x02);
  129. //        inum1=inum11*100+inum12;
  130.    shinum11=inum11/10%10;
  131.    genum11=inum11%10;
  132.    shinum12=inum12/10%10;
  133.    genum12=inum12%10;
  134.         while(1){
  135.                 keycan();
  136.         }         
  137. }
  138. void keycan(){//按鍵
  139.         if(keynum==0){//當按鍵值等于0的時候調用顯示
  140.                 displaynum();
  141.         }
  142.             if(key1==0){//當按鍵1按下
  143.                         if(kf0){//當標志位kf0=1的時候進行
  144.                                 if(presstime>50){//當時間值大于一百的時候
  145.                                         kf0=0;//標志位kf0=0
  146.                                         kt0=1;//標志位kt0=0
  147.                                         if0=1;
  148.                                         presstime=0;//時間清零,重新進行
  149.                                         keynum++;//數碼管的位
  150.                                 if(keynum==5){//當位到7則置位0
  151.                                            keynum=0;if0=0;
  152.                                          }
  153.                                 }
  154.                           }
  155.                 }else{//當按鍵松開
  156.                         keyflag();displaynum();
  157.                 }//按鍵1結束
  158.     if(key2==0){if(kf0){if(presstime>50){kf0=0;kt0=1;presstime=0;flag_eeprom1=1;//掉電存儲的標志位改為1,進行存值操作
  159.                                 switch(keynum){
  160.                                         case 0:if(if0==1){if0=0;}else{if0=1;}break;
  161.                                         case 1:shinum11++;if(shinum11>9){shinum11=0;}break;
  162.                                         case 2:genum11++;if(genum11>9){genum11=0;}break;
  163.                                         case 3:shinum12++;if(shinum12>9){shinum12=0;}break;
  164.                                         case 4:genum12++;if(genum12>9){genum12=0;}break;
  165.                                         default:break;
  166.                                 }
  167.                         }}}else{keyflag();displaynum();
  168.                                         if(bainum11==1){shinum11=0;genum11=0;}
  169.                                         if((flag_eeprom1==1))//加掉電存儲,必需加到這,不然有一些小問題
  170.                                         {   flag_eeprom1=0;
  171.                                             saveeepro();//掉電存儲
  172.                                         }
  173.                         }//松開按鍵進行顯示        
  174. }

  175. void saveeepro(){//掉電存儲
  176. inum11=shinum11*10+genum11;        //將num1三個數碼管的值付給inum
  177. inum12=shinum12*10+genum12;        //將num1三個數碼管的值付給inum
  178. // inum11=inum1/100;//把int型的值拆分到char型
  179. // inum12=inum1%100;
  180.    IapEraseSector(0);  //擦除扇區
  181.    IapProgramByte(0x01,inum11);//寫入數據
  182.    IapProgramByte(0x02,inum12);//寫入數據
  183. //   IapProgramByte(0x03,inum13);//寫入數據
  184. //   IapProgramByte(0x04,inum14);//寫入數據
  185. }

  186. void p31s(){//將p3口的235置為1
  187.         P32=1;P33=1;P35=1;
  188. }
  189. void keyflag(){//按鍵結束調用,按鍵的建議使用,這樣可以減小code,但是觸發的不建議
  190.            if(kt0){//當標志位kt0=1的時候進行
  191.                    if(presstime>50){//當時間值大于一百的時候
  192.                         kf0=1;//標志位kf0=1
  193.                         kt0=0;//標志位kt0=0
  194.                            presstime=0;//時間清零,重新進行
  195.                         }
  196.            }
  197. }
  198. // AD轉換初始化程序
  199. void InitADC(){
  200. //   P1 = P1M0 = P1M1 = 0xff;        //設置P1口為開漏模式,使用AD功能
  201.     ADC_DATA = 0;                   //AD數據寄存器清空
  202.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL;//打開AD電源,轉換周期210
  203.     _nop_();                        //延時
  204. }
  205. //AD轉換控制程序
  206. uint GetADCResult(uchar px){          //轉換輸出的數據 (PX為通道口)
  207.         uint t=0;
  208.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL |px| ADC_START;//開始轉換
  209.         _nop_();
  210.     _nop_();
  211.     _nop_();
  212.     while (!(ADC_CONTR & ADC_FLAG));//等待轉換結束
  213.     ADC_CONTR &= ~ADC_FLAG;         //關閉AD轉換
  214.         t=(ADC_DATA<<2)|ADC_LOW2;
  215.     return ADC_DATA;                //返回數據
  216. }
  217. void IapIdle(){//禁用 ISP/IAP/EEPROM functionmake 單片機 在 一 安全 狀態
  218.     IAP_CONTR = 0;           //
  219.         IAP_CMD = 0;           //
  220.         IAP_TRIG = 0;           //
  221.         IAP_ADDRH = 0x80;  //
  222.         IAP_ADDRL = 0;           //
  223. }
  224. uchar IapReadByte(uint addr){//讀數據
  225.    uchar dat;
  226.    IAP_CONTR = ENABLE_IAP;
  227.    IAP_CMD = CMD_READ;
  228.    IAP_ADDRL = addr;
  229.    IAP_ADDRH = addr >> 8;
  230.    IAP_TRIG = 0x46;
  231.    IAP_TRIG = 0xb9;
  232.    _nop_();
  233.    dat = IAP_DATA;
  234.    IapIdle();
  235.    return dat;
  236. }
  237. void IapProgramByte(uint addr, uchar dat){//寫數據
  238.    IAP_CONTR = ENABLE_IAP;
  239.    IAP_CMD = CMD_PROGRAM;
  240.    IAP_ADDRL = addr;
  241.    IAP_ADDRH = addr >> 8;
  242.    IAP_DATA = dat;
  243.    IAP_TRIG = 0x46;
  244.    IAP_TRIG = 0xb9;
  245.    _nop_();
  246.    IapIdle();
  247. }
  248. void IapEraseSector(uint addr){//擦除數據
  249.    IAP_CONTR = ENABLE_IAP;
  250.    IAP_CMD = CMD_ERASE;
  251. ……………………

  252. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼


57板周期內倒計時(喂魚)單片機源程序如下:
  1. #include "demo.h"
  2. //主函數        
  3. void main(void){
  4.         timer0_1init();
  5.         P3M0=0X00;
  6.         P3M1=0X3c;
  7.           periodnum1 = IapReadByte(0x01);
  8.           periodnum2 = IapReadByte(0x02);
  9.           periodnum3 = IapReadByte(0x03);
  10.           worknum1 = IapReadByte(0x04);
  11.           worknum2 = IapReadByte(0x05);
  12.           worknum3 = IapReadByte(0x06);
  13.           periodnum=periodnum1*100+periodnum2*10+periodnum3;
  14.           worknum=worknum1*100+worknum2*10+worknum3;
  15.           workminus=worknum;
  16.         while(1){
  17.                 if(outstate){
  18.                         outs=1;
  19.                 }else{
  20.                         outs=0;
  21.                 }
  22.                 keycan();
  23.                 displaynum();
  24.                 if(it1==0){
  25.                     if(in==0){if(if0){if(presstime>50){if0=0;it0=1;presstime=0;
  26.                                 startwork=1;
  27.                                 outstate=1;                        
  28.                         }}}else{if(it0){if0=1;it0=0;presstime=0;
  29.                                 startwork=0;
  30.                                 outstate=0;                        
  31.                         }}
  32.                 }
  33.         }
  34. }
  35. void displaynum(){//將數字傳到數碼管上顯示
  36.         if(keynum==0){
  37.                 dpnum1=0;
  38.                 dpnum2=workminus/100;
  39.                 dpnum3=workminus/10%10;
  40.                 dpnum4=workminus%10;               
  41. //                dpnum1=time11/10%10;
  42. //                dpnum2=time11%10;
  43. //                dpnum3=workminus/10%10;
  44. //                dpnum4=workminus%10;               
  45.         }
  46.         if((keynum>0)&&(keynum<4)){
  47.                 dpnum1=10;
  48.                 dpnum2=periodnum1;
  49.                 dpnum3=periodnum2;
  50.                 dpnum4=periodnum3;        
  51.                 periodnum=periodnum1*100+periodnum2*10+periodnum3;
  52.         }
  53.         if((keynum>3)&&(keynum<7)){
  54.                 dpnum1=11;
  55.                 dpnum2=worknum1;
  56.                 dpnum3=worknum2;
  57.                 dpnum4=worknum3;        
  58.                 worknum=worknum1*100+worknum2*10+worknum3;        
  59.                 workminus=worknum;
  60.         }        
  61. }

  62. void timer0_ISR() interrupt 1{
  63.         TL0 = 0xCD;                //重新設置定時器0時間為2ms
  64.         TH0 = 0xF8;                //重新設置定時器0的初始值
  65.         tcnt1++;
  66.         presstime++;
  67.         time1++;
  68.         if(500==time1){
  69.                 time11++;
  70.                 time1=0;
  71. //                if(60==time11){
  72. //                        time12++;
  73.                         if(periodnum==time11){
  74.                         time11=0;
  75. //                                time12=1;
  76.                                 startwork=0;
  77.                                 outstate=1;
  78.                                 it1=0;
  79.                                 workminus=worknum;
  80.                         }
  81. //                }
  82.                 if(startwork==0){
  83.                         outstate=0;
  84. //                        time2++;
  85. //                        if(60==time2){
  86. //                                time2=0;
  87.                                 workminus--;
  88.                                 if(0==workminus){
  89.                                         outstate=1;
  90.                                         startwork=1;
  91.                                         it1=1;
  92.                                         workminus=worknum;
  93.                                 }
  94.                         }
  95. //                }
  96.         }
  97.         switch(tcnt1){
  98.                 case 1: P3t0();seg7code(dpnum1);wei4=1; break;
  99.                 case 2: P3t0();seg7code(dpnum2);if((keynum==0)||(keynum==1)||(keynum==4)){wei3=1;} break;
  100.                 case 3: P3t0();seg7code(dpnum3);if((keynum==0)||(keynum==2)||(keynum==5)){wei2=1;} break;        
  101.                 case 4: P3t0();seg7code(dpnum4);if((keynum==0)||(keynum==3)||(keynum==6)){wei1=1;} break;
  102.                 default: tcnt1=0;break;
  103.         }
  104. }
  105. void keycan(){//按鍵
  106.     if(key1==0){//當按鍵1按下
  107.                 if(kf0){//當標志位kf0=1的時候進行
  108.                         if(presstime>100){//當時間值大于一百的時候
  109.                                 kf0=0;//標志位kf0=0
  110.                                 kt0=1;//標志位kt0=0
  111.                                 presstime=0;//時間清零,重新進行
  112.                                 keynum++;//數碼管的位
  113.                         if(keynum==7){//當位到7則置位0
  114.                                    keynum=0;
  115.                                 }
  116.                         }
  117.                   }
  118.         }else{//當按鍵松開
  119.                 keyflag();
  120.         }//按鍵1結束
  121.     if(key2==0){if(kf0){if(presstime>100){kf0=0;kt0=1;presstime=0;flag_eeprom1=1;
  122.                                 switch(keynum){
  123.                                         case 1:
  124.                                                 periodnum1++;//數碼管一加加
  125.                                                 if(periodnum1>9){//當數碼管一加加到9時置為1
  126.                                                         periodnum1=0;
  127.                                                 }
  128.                                                 break;
  129.                                         case 2:periodnum2++;if(periodnum2>9){periodnum2=0;}break;
  130.                                         case 3:periodnum3++;if(periodnum3>9){periodnum3=0;}break;
  131.                                         case 4:worknum1++;  if(worknum1>9)  {worknum1=0;}break;
  132.                                         case 5:worknum2++;  if(worknum2>9)  {worknum2=0;}break;
  133.                                         case 6:worknum3++;  if(worknum3>9)  {worknum3=0;}break;
  134.                                         default:break;
  135.                                 }
  136.                         }}}else{keyflag();
  137.                                 if(flag_eeprom1==1){//加掉電存儲,必需加到這,不然有一些小問題        
  138.                                         flag_eeprom1=0;               
  139.                                            IapEraseSector(0);  //擦除扇區
  140.                                            IapProgramByte(0x01,periodnum1);//寫入數據
  141.                                            IapProgramByte(0x02,periodnum2);//寫入數據
  142.                                            IapProgramByte(0x03,periodnum3);//寫入數據
  143.                                            IapProgramByte(0x04,worknum1);//寫入數據
  144.                                            IapProgramByte(0x05,worknum2);//寫入數據
  145.                                            IapProgramByte(0x06,worknum3);//寫入數據
  146.                                 }                        
  147.                         }//松開按鍵進行顯示        
  148. }
  149. void s0() {pa = 0;pb = 0;pc = 0;pd = 0;pe = 0;pf = 0;pg = 1;}
  150. void s1() {pb = 0;pc = 0;pa = 1;pg = 1;pd = 1;pe = 1;pf = 1;}
  151. void s2() {pa = 0;pb = 0;pg = 0;pe = 0;pd = 0;pf = 1;pc = 1;}
  152. void s3() {pa = 0;pb = 0;pg = 0;pc = 0;pd = 0;pf = 1;pe = 1;}
  153. void s4() {pb = 0;pg = 0;pc = 0;pf = 0;pa = 1;pd = 1;pe = 1;}
  154. void s5() {pa = 0;pg = 0;pc = 0;pd = 0;pf = 0;pe = 1;pb = 1;}
  155. void s6() {pa = 0;pg = 0;pc = 0;pd = 0;pf = 0;pe = 0;pb = 1;}
  156. void s7() {pa = 0;pb = 0;pc = 0;pf = 1;pe = 1;pd = 1;pg = 1;}
  157. void s8() {pa = 0;pb = 0;pg = 0;pc = 0;pd = 0;pf = 0;pe = 0;}
  158. void s9() {pa = 0;pb = 0;pg = 0;pc = 0;pd = 0;pf = 0;pe = 1;}
  159. void s10(){pa = 0;pb = 0;pc = 0;pf = 0;pe = 0;pd = 1;pg = 0;}
  160. void s11(){pa = 1;pb = 1;pc = 0;pf = 0;pe = 0;pd = 0;pg = 0;}
  161. void s12(){pa = 0;pb = 1;pc = 1;pf = 0;pe = 0;pd = 0;pg = 1;}
  162. void seg7code(unsigned char num){
  163.         switch(num){
  164.                 case 0:  s0();break;
  165.                 case 1:  s1();break;
  166.                 case 2:  s2();break;
  167.                 case 3:  s3();break;        
  168.                 case 4:  s4();break;
  169.                 case 5:  s5();break;
  170.                 case 6:  s6();break;
  171.                 case 7:  s7();break;
  172.                 case 8:  s8();break;
  173.                 case 9:  s9();break;
  174.                 case 10: s10();break;
  175.                 case 11: s11();break;
  176.                 case 12: s12();break;
  177.                 default: num=0;break;
  178.         }
  179. }
  180. void P3t0(){
  181.         wei1=0;wei2=0;wei3=0;wei4=0;
  182. }
  183. void timer0_1init(void){
  184.         TMOD=0x11;//將定時器0,1都設置為模式1
  185.         TL0 = 0xCD;                //設置定時器0時間為2ms
  186.         TH0 = 0xF8;                //設置定時器0的初始值
  187.         TR0=1;//開啟定時器0
  188.         TR1=1;//開啟定時器1
  189.         EA=1;//開總中斷
  190.         ET0=1;//開定時器0的中斷
  191. }
  192. void keyflag(){//按鍵結束調用,按鍵的建議使用,這樣可以減小code,但是觸發的不建議
  193.            if(kt0){//當標志位kt0=1的時候進行
  194.                    if(presstime>50){//當時間值大于一百的時候
  195.                         kf0=1;//標志位kf0=1
  196.                         kt0=0;//標志位kt0=0
  197.                            presstime=0;//時間清零,重新進行
  198.                         }
  199.            }
  200. }
  201. /********************************************************************
  202. 禁用 ISP/IAP/EEPROM functionmake 單片機 在 一 安全 狀態
  203. *********************************************************************/
  204. void IapIdle()
  205. {
  206.     IAP_CONTR = 0;           //
  207.         IAP_CMD = 0;           //
  208.         IAP_TRIG = 0;           //
  209.         IAP_ADDRH = 0x80;  //
  210.         IAP_ADDRL = 0;           //
  211. }

  212. /********************************************************************
  213.                              讀數據
  214. *********************************************************************/

  215. uchar IapReadByte(uint addr)
  216. {
  217.    uchar dat;
  218.    IAP_CONTR = ENABLE_IAP;
  219.    IAP_CMD = CMD_READ;
  220.    IAP_ADDRL = addr;
  221.    IAP_ADDRH = addr >> 8;
  222.    IAP_TRIG = 0x46;
  223.    IAP_TRIG = 0xb9;
  224.    _nop_();
  225.    dat = IAP_DATA;
  226.    IapIdle();
  227.    return dat;
  228. }
  229. /********************************************************************
  230.                                寫數據
  231. ……………………

  232. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼



全部資料51hei下載地址:
GYJ-0057_寬電壓可編程數顯延時模塊發貨資料.rar (1.21 MB, 下載次數: 25)
一代產品資料.rar (1.7 MB, 下載次數: 23)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产日韩一区 | 亚洲美女在线视频 | 久草视频2 | 色网站在线 | 男插女下体视频 | 国产精品自拍视频 | 久久精品欧美一区二区三区不卡 | 美女三区 | 一级毛片免费视频 | 欧美一级淫片007 | 成人在线一区二区三区 | 日韩成人免费中文字幕 | 欧美专区日韩专区 | 欧美日韩精品中文字幕 | 亚洲a视| 久久a久久 | 精品一二三区视频 | av在线免费播放 | 日韩在线免费视频 | 久久久91 | 日韩久久在线 | av福利网站 | 欧美日韩亚洲国产 | 99国产精品久久久久久久 | 99re超碰| 精品三级在线观看 | 噜久寡妇噜噜久久寡妇 | 中文在线一区二区 | 久草在线青青草 | 亚洲一区二区精品视频 | www.成人.com| 高清不卡毛片 | 成人在线不卡 | 亚洲不卡 | 欧美日韩激情 | 成人亚洲视频 | 日本不卡免费新一二三区 | 亚洲视频中文字幕 | 狠狠色综合网站久久久久久久 | 日韩成人| www.jizzjizz|