wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 774|回復(fù): 0
收起左側(cè)

自己寫的測試程序,包含74hc595驅(qū)動數(shù)碼管,OLED,MCP4725,AT24C02,AD1115,DS1307

[復(fù)制鏈接]
ID:492633 發(fā)表于 2025-8-3 19:11 | 顯示全部樓層 |閱讀模式
屏幕截圖 2025-08-03 190534.png 屏幕截圖 2025-08-03 185900.png

Keil代碼下載: 測試 - 實物 - 增加OLED.7z (402.3 KB, 下載次數(shù): 0)

  1. /*******************EEPROM記錄大于255的數(shù)*****************                  

  2. *硬件平臺:STC89C52RC

  3. *開發(fā)環(huán)境:KEIL        

  4. *功能:由于24c02是每個存儲地址只對應(yīng)8個bit的存儲空間,即一個                          

  5.            存儲單元所存儲的數(shù)據(jù)最大為255,該例程介紹了一種當(dāng)所記憶                          

  6.            數(shù)據(jù)大于255(而小于65536)的存儲方法。即用兩個存儲單元來                  

  7.            存儲一個數(shù)據(jù)。            

  8. *********************************************************/

  9. #include "reg52.h"

  10. #include "intrins.h"

  11. #include "mcp4725.h"

  12. #include "24cxx.h"

  13. #include "ADC0832.h"

  14. #include "DS18B20.h"

  15. #include "OLED.h"

  16. #include <stdio.h>

  17. #define uint unsigned int

  18. #define uchar unsigned char

  19. #define valdata      5000//計算值

  20. #define key 5//按鈕定時值更改改變消抖時間(單位t*2ms)

  21.         /**

  22.                       595側(cè)                                 芯片側(cè)

  23. 11  SCK   數(shù)據(jù)輸入時鐘線           SHCP     Clock    SPI2_SCK         PB3

  24. 12  RCK   輸出存儲鎖存時鐘線       STCP     Latch    SPI2_NSS         PA15

  25. 13  OE    輸出使能     接地        OE                                 PD7

  26. 14  SI    數(shù)據(jù)線                   DS1      DATA     SPI2_MOSI        PB5

  27. **/

  28. /*

  29. 16  VCC          電源              2V-6V

  30. 15  QA           并行輸出          QB QC....QH

  31. 14  SI/DS        DATA             串行數(shù)據(jù)輸入

  32. 13  OE_          輸出使能          PWM控制亮度

  33. 12  RCK/STCP     CS               輸出到鎖存器時鐘

  34. 11  SCK/SHCP     CLK              DATA輸入時鐘

  35. 10  SCLR/MR      低電平清零        接VCC

  36. 9  SQH/Q7S       串行數(shù)據(jù)輸出       接下一個595

  37. */

  38. sbit ds=P3^4;

  39. sbit sh_cp=P3^6;

  40. sbit st_cp=P3^5;

  41. sbit dula=P2^6;

  42. sbit wela=P2^7;

  43. sbit rtcc=P1^6;              

  44. sbit k1=P1^0; //設(shè)置加

  45. sbit k2=P1^1; //加

  46. sbit k3=P1^2; //減

  47. sbit k4=P1^3; //設(shè)置減/退出

  48. sbit k5=P1^4; //確認(rèn)保存

  49. sbit led=P1^7;  //狀態(tài)燈


  50. sbit rst=P1^6; //清除24cxx內(nèi)部存儲的數(shù)據(jù)謹(jǐn)慎操作

  51. sbit EC11_A = P2^2;                                //聲明編碼器A腳IO

  52. sbit EC11_B = P2^3;                                //聲明編碼器B腳IO


  53. //變量

  54. bit EC11_A_Now = 1;                                //編碼器A腳穩(wěn)定值

  55. bit EC11_B_Now = 1;                                //編碼器B腳穩(wěn)定值

  56. signed int EC11_A_Code = 1;                //EC11編碼器正轉(zhuǎn)一格鍵值

  57. signed int EC11_B_Code = -1;        //EC11編碼器反轉(zhuǎn)一格鍵值

  58. bit flag1s; //1s定時標(biāo)志

  59. //uchar time=0;  //系統(tǒng)定時 0-255

  60. uchar num1;

  61. uchar num2;

  62. uchar num3;

  63. uchar num4;

  64. uchar num5;

  65. uchar num6;

  66. uchar num7;

  67. uchar num8;

  68. uchar num9;

  69. uchar num10;

  70. uchar num11;

  71. uchar num12;

  72. uchar num13;

  73. uchar num14;

  74. uchar num15;

  75. uchar num16;  //計算 0-255

  76. unsigned short volt1=0,volt2=0; //adc0832轉(zhuǎn)換

  77. bit writedat=0; //寫24C08 的標(biāo)志

  78. unsigned short Val; //mcp4725輸出變量 0-65535

  79. uchar  fhz=0; //MCP4725輸出頻率


  80. uint set_voltage;                //設(shè)定值

  81. uchar digit4,digit3,digit2,digit1;        //設(shè)定值千百十個位

  82. uchar mode=0;//模式 0-255

  83. unsigned short mode0=0;//主顯示0 0-65535

  84. unsigned short mode1=0;//菜單顯示1 0-65535

  85. unsigned short mode2=0;//菜單顯示2 0-65535

  86. unsigned short mode3=0;//菜單顯示3 0-65535

  87. unsigned short mode4=0;//菜單顯示4 0-65535

  88. unsigned short mode5=0;//菜單顯示5 0-65535

  89. unsigned short mode6=0;//菜單顯示6 0-65535

  90. unsigned short mode7=0;//菜單顯示7 0-65535

  91. unsigned short mode8=0;//菜單顯示8 0-65535

  92. unsigned short ADC0;//菜單顯示5 0-65535

  93. unsigned short ADC1;//菜單顯示6 0-65535

  94. unsigned short ADC2;//菜單顯示7 0-65535

  95. unsigned short ADC3;//菜單顯示8 0-65535

  96. uchar h,m,s;//系統(tǒng)運行時間累計

  97. int duqu; //計算溫度18b20溫度顯示

  98. uint count1; //按鍵延時計數(shù)器標(biāo)志位

  99. /*********十進(jìn)值與BCD碼之間互換**********/

  100. uchar dectobcd(uchar);//十進(jìn)值轉(zhuǎn)bcd碼

  101. uchar bcdtodec(uchar);//bcd碼轉(zhuǎn)十進(jìn)值

  102. uchar hour,minute,second;//時分秒變量

  103. unsigned short i=0;

  104. uchar dis_buf[]={0,0,0,0,0,0,0,0};//顯示緩存

  105. uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//共陰數(shù)碼管位碼

  106. //uchar code wela[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//共陽數(shù)碼管位碼

  107. uchar code table[]=

  108. {

  109.         0x3F,//'0'0

  110.   0x06,//'1'1

  111.   0x5B,//'2'2

  112.   0x4F,//'3'3

  113.   0x66,//'4'4

  114.   0x6D,//'5'5

  115.   0x7D,//'6'6

  116.   0x07,//'7'7

  117.   0x7F,//'8'8

  118.   0x6F,//'9'9

  119.   0x77,//'A'10

  120.   0x5F,//'a'11

  121.   0x7F,//'B'12

  122.   0x7C,//'b'13

  123.   0x39,//'C'14

  124.   0x58,//'c'15

  125.   0x3F,//'D'16

  126.   0x5E,//'d'17

  127.   0x79,//'E'18

  128.   0x7B,//'e'19

  129.   0x71,//'F'20

  130.   0x71,//'f'21

  131.   0x7D,//'G'22

  132.   0x6F,//'g'23

  133.   0x76,//'H'24

  134.   0x74,//'h'25

  135.   0x06,//'I'26

  136.   0x04,//'i'27

  137.   0x1E,//'J'28

  138.   0x1E,//'j'29

  139.   0x38,//'L'30

  140.   0x06,//'l'31

  141.   0x37,//'N'32

  142.   0x54,//'n'33

  143.   0x3F,//'O'34

  144.   0x5C,//'o'35

  145.   0x73,//'P'36

  146.   0x73,//'p'37

  147.   0x67,//'Q'38

  148.   0x67,//'q'39

  149.   0x77,//'R'40

  150.   0x50,//'r'41

  151.   0x6D,//'S'42

  152.   0x6D,//'s'43

  153.   0x31,//'T'44

  154.   0x78,//'t'45

  155.   0x3E,//'U'46

  156.   0x1C,//'u'47

  157.   0x6E,//'Y'48

  158.   0x6E,//'y'49

  159.   0x5B,//'Z'50

  160.   0x5B,//'z'51

  161.   0x40,//'-'52

  162.   0x08,//'_'53

  163.   0x80, //'.'54

  164.         0x00 //' '55

  165. };

  166. //共陰數(shù)碼管編碼無小數(shù)點  


  167. void delay1(uint z)      //延時為 1ms

  168. {

  169. uchar x,x1;

  170. for(;z>0;z--)

  171. {

  172.   for(x=0;x<114;x++)

  173.   {for(x1=0;x1<1;x1++);}

  174. }

  175. }

  176. //單片機(jī)時鐘周期:11.0592MHz           以時鐘T2作為波特率發(fā)生器 //9600bps

  177. void SerialInit(){

  178.             PCON &= 0x7F;      //波特率不倍速 SMOD=0

  179.      SCON = 0x50;       //方式1,8位數(shù)據(jù),可變波特率,接收允許

  180.      T2CON  = 0x34;   

  181.      RCAP2H = 0xFF;   

  182.      RCAP2L = 0xDC;  

  183.      TH2    = 0xFF;  

  184.      TL2    = 0xDC;           

  185.            EA=1; //總中斷打開,采用查詢法時不用打開中斷

  186.      ES=1;          //串口中斷開關(guān),采用查詢法時不用打開中斷

  187. }

  188. //定時器

  189. void Timer0Init() //11.0592Mhz定時1ms

  190. {

  191.         TMOD|=0X01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。

  192.         //TH0=0XFC;        //給定時器賦初值,定時1ms

  193.         //TL0=0X18;   

  194.               TH0=(65536-2000)/256; //2ms

  195.         TL0=(65536-2000)%256;        //2ms

  196.         ET0=1;         //打開定時器0中斷允許

  197.         EA=1;         //打開總中斷

  198.         TR0=1;//打開定時器                       

  199. }

  200. //串口發(fā)送一個字節(jié):

  201. void SendByte(unsigned char sbyte)

  202. {

  203.      SBUF=sbyte; //發(fā)送數(shù)據(jù)

  204.      while(!TI); //等待發(fā)送完成

  205.      TI=0; //清零發(fā)送標(biāo)志位

  206. }

  207. //串口發(fā)送一個字符串:

  208. void SendString(unsigned char *pstr) //定義指針

  209. {

  210.      while(*pstr!='\0') //字符串是否發(fā)完

  211.      {

  212.          SendByte(*pstr);//發(fā)送字符串?dāng)?shù)據(jù)

  213.          pstr++; //指向下一個字符

  214.      }

  215. }

  216. //串口中斷函數(shù):

  217. void SerialPortInte(void) interrupt 4 //采用串口中斷法收發(fā)數(shù)據(jù)

  218. {

  219.          unsigned char rbyte;

  220.          if(RI){     //RI=1,判定為串口接收到了數(shù)據(jù),RI要清零,

  221.          RI=0;

  222.                  rbyte=SBUF;

  223.                  if(rbyte==0x0A){           

  224.                     SendString("換行");

  225.                         if(mode<17)

  226.                          mode++;

  227.                  }else if(rbyte==0x0D){

  228.                          SendString("回車");

  229.                          if(mode>0)

  230.                          mode--;

  231.                  }else{

  232.                          SendByte(rbyte);

  233.                  }

  234.      }

  235.          }

  236. //595處理開始

  237. void rck(void)  

  238. {

  239.         st_cp=1; //拉高

  240.         st_cp=0; //拉低

  241. }

  242. void shift(uchar dat)

  243. {

  244.         uchar i;

  245.         for(i=0;i<8;i++)

  246.         {

  247.                 ds=dat&0x80;//提取最高位

  248.                 sh_cp=1;    //上升沿   

  249.                 sh_cp=0;    //下降沿

  250.                 dat<<=1;

  251.         }

  252. }

  253. void DisplayScan()

  254. {

  255.         static uchar i=0;

  256.         shift(wei[i ]);//送位碼

  257. [i ]        shift(dis_buf[i ]);//送段碼

  258. [i ][i ]        rck();//鎖存

  259. [i ][i ]        i=++i%8;//循環(huán)掃描計數(shù)

  260. [i ][i ]}

  261. [i ][i ]//595處理結(jié)束
  262. [i ][i ]

  263. void run_time()//時鐘走動函數(shù)定義

  264. {  

  265.         //從1307中讀出時間

  266.         second=ds1307_read_date(0xd0,1);//返回函數(shù)r值秒        

  267.         minute=ds1307_read_date(0xd0,2);

  268.         hour=ds1307_read_date(0xd0,0);

  269.         //將讀出的時間轉(zhuǎn)換成十進(jìn)值

  270.         second=bcdtodec(second);

  271.         minute=bcdtodec(minute);

  272.         hour=bcdtodec(hour);

  273.         //更新串口發(fā)送時間        


  274. }

  275. uchar dectobcd(uchar dec)//十進(jìn)值到BCD碼

  276. {

  277.         uchar a,b,c;

  278.         a=dec;

  279.         b=0;

  280.         while(a>=10)

  281.                 {

  282.                         a=a-10;

  283.                         b=b+16;

  284.                         c=a+b;

  285.                         dec=c;

  286.                 }         

  287.         return dec;

  288. }

  289. uchar bcdtodec(uchar bcd)//bcd碼轉(zhuǎn)十進(jìn)值

  290. {

  291.         uchar a,b,c;

  292.         a=bcd;

  293.         b=0;

  294.         while(a>=16)

  295.                 {

  296.                         a=a-16;

  297.                         b=b+10;

  298.                         c=a+b;

  299.                         bcd=c;

  300.                 }         

  301.         return bcd;

  302. }


  303. //EC11開始

  304. /**********************EC11動作函數(shù)**********************/

  305. void EC11_Action(signed char num)

  306. {

  307. if(mode==17)

  308. {

  309.         mode0 += num;                          //演示變量 加減 編碼器正旋+1反旋減1

  310. }

  311. else if(mode==0)

  312. {

  313.          fhz += num;

  314. }

  315. else if(mode==1)

  316. {

  317.          mode1 += num;

  318. }

  319. else if(mode==2)

  320. {

  321.          mode2 += num;

  322. }

  323. else if(mode==3)

  324. {

  325.          mode3 += num;

  326. }

  327. else if(mode==4)

  328. {

  329.          mode4 += num;

  330. }

  331. else if(mode==5)

  332. {

  333.          mode5 += num;

  334. }

  335. else if(mode==6)

  336. {

  337.          mode6 += num;

  338. }

  339. else if(mode==7)

  340. {

  341.          mode7 += num;

  342. }

  343. else if(mode==8)

  344. {

  345.          mode8 += num;

  346. }

  347. }

  348. /**********************EC11驅(qū)動函數(shù)**********************/

  349. void EC11_Driver()  //放大循環(huán)里面

  350. {

  351.         static bit turn_R;                  //檢測EC11正轉(zhuǎn)標(biāo)志位

  352.         static bit turn_L;                  //檢測EC11反轉(zhuǎn)標(biāo)志位

  353.         static bit turn_on;                  //檢測EC11動作標(biāo)志位

  354.         static bit turn_on_last;  //備份EC11上一次動作值

  355. /**********************EC11狀態(tài)分析**********************/

  356.         if(EC11_A_Now&&!EC11_B_Now)                                //正轉(zhuǎn)狀態(tài)

  357.         {

  358.                 turn_R = 1;                                                           //正轉(zhuǎn)標(biāo)志

  359.         }

  360.         else if(!EC11_A_Now&&EC11_B_Now)                //反轉(zhuǎn)狀態(tài)

  361.         {

  362.                 turn_L = 1;                                                           //反轉(zhuǎn)標(biāo)志

  363.         }

  364.         else if(!EC11_A_Now&&!EC11_B_Now)                //旋轉(zhuǎn)狀態(tài)

  365.         {

  366.                 turn_on = 1;                                                   //旋轉(zhuǎn)標(biāo)記                           

  367.         }

  368.         else                                                                        //起始狀態(tài) 編碼器未旋轉(zhuǎn)

  369.         {                                                                                //或旋轉(zhuǎn)到起始狀態(tài)

  370.                 turn_on = 0;                                                //旋轉(zhuǎn)標(biāo)志復(fù)位

  371.                 turn_R = 0;                                                        //正轉(zhuǎn)標(biāo)志復(fù)位

  372.                 turn_L = 0;                                                        //反轉(zhuǎn)標(biāo)志復(fù)位

  373.         }

  374. /**********************EC11狀態(tài)處理**********************/

  375.         if(turn_R)                                                                //判定為正轉(zhuǎn)狀態(tài) 進(jìn)行正轉(zhuǎn)處理

  376.         {

  377.                 if(turn_on != turn_on_last)                        //如果編碼器轉(zhuǎn)動

  378.                 {

  379.                         if(turn_on_last == 0)                        //如果編碼器上次值為0

  380.                         {                                                                //則該當(dāng)前值為1

  381.                                 EC11_Action(EC11_A_Code);        //執(zhí)行動作函數(shù) 傳送正轉(zhuǎn)值        

  382.                         }

  383.                 }

  384.                 turn_on_last = turn_on;                                //更新編碼器狀態(tài)

  385.         }

  386.         else if(turn_L)                                                        //判定為正轉(zhuǎn)狀態(tài) 反轉(zhuǎn)處理

  387.         {

  388.                 if(turn_on != turn_on_last)                        //如果編碼器轉(zhuǎn)動

  389.                 {

  390.                         if(turn_on_last == 0)                        //如果編碼器上次值為0

  391.                         {                                                                //則該當(dāng)前值為1

  392.                                 EC11_Action(EC11_B_Code);        //執(zhí)行動作函數(shù) 傳送反轉(zhuǎn)值

  393.                         }        

  394.                 }

  395.                 turn_on_last = turn_on;                                //更新編碼器狀態(tài)

  396.         }

  397.         else                                                                        //不旋轉(zhuǎn)時復(fù)位

  398.         {

  399.                 turn_on_last = 0;                                        //編碼器最后動作狀態(tài)復(fù)位

  400.         }                                

  401. }

  402. /******************EC11_IO狀態(tài)掃描及消抖*******************/

  403. void EC11_Scan()  //放2ms定時器里面

  404. {        

  405.         static unsigned char EC11_A_Buf;                                   //聲明靜態(tài)緩存變量

  406.         static unsigned char EC11_B_Buf;                                   //聲明靜態(tài)緩存變量

  407.         EC11_A_Buf = ((EC11_A_Buf << 1) & 0x05) | EC11_A;  //將編碼器IO狀態(tài)送入緩存 //可更改速度

  408.         EC11_B_Buf = ((EC11_B_Buf << 1) & 0x05) | EC11_B;  //連續(xù)三次都為0則判定為0 //可更改速度

  409.         if(EC11_A_Buf == 0x00)                         //編碼器A引腳電平判定

  410.                 EC11_A_Now = 0;

  411.         else                                                                                           //否則

  412.                 EC11_A_Now = 1;

  413.         if(EC11_B_Buf == 0x00)             //編碼器B引腳電平判定

  414.                 EC11_B_Now = 0;

  415.         else                                                                                           //否則

  416.                 EC11_B_Now = 1;        

  417. }

  418. //EC11結(jié)束

  419. void read_ds18b20_temp() //放2ms定時器里面掃描

  420. {

  421.         static unsigned char ls,hs,i;

  422.         switch(i)

  423.         {

  424.                 case  0: init_ds18b20();        break;

  425.                 case  1: Write_DS18B20(0xcc);   break;

  426.                 case  2: Write_DS18B20(0x44);   break;

  427.                 case 94: init_ds18b20();        break;

  428.                 case 95: Write_DS18B20(0xcc);   break;

  429.                 case 96: Write_DS18B20(0xbe);   break;

  430.                 case 97: ls=Read_DS18B20();     break;

  431.                 case 98: hs=Read_DS18B20();     break;

  432.                 case 99: duqu=((hs<<8)|ls)/1.6*10; break;//保留2位小數(shù)

  433.                                               //case 99: duqu=((hs<<4)&0xf0)|((ls>>4)&0x0f)*100; break;

  434.         }

  435.         i=++i%100;

  436. }


  437. void KEY()  //按鍵

  438. {

  439. // uchar kk; //按鍵 0-255        

  440.         // if(mode<9) mode=0;

  441.         {

  442.     if(!k1)                 //設(shè)置加

  443.                 {

  444.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  445.                         {

  446.                          if(!k1)             //再次判斷按鍵是否按下

  447.                          {                                 

  448.                         i=0;

  449.                         if(mode<17)

  450.                         mode+=1;

  451.                         SendString("mode+1"); //輸出文本

  452.                         SendByte('1'); //輸出HEX 0x31

  453.                         set_voltage=(unsigned int)mode; //強(qiáng)制轉(zhuǎn)換uint輸出

  454.                         OLED_P8x16Str(0,2,35); //M

  455.                         OLED_P8x16Str(8,2,37); //O

  456.                         OLED_P8x16Str(16,2,26); //D

  457.                         OLED_P8x16Str(24,2,27); //E

  458.             OLED_P8x16Str(32,2,10); //:

  459.                         Display2(); //更新輸出

  460.                 //        writedat=1; //寫入24C08 的標(biāo)志;

  461.                 //        printf("設(shè)置加:%u\r\n",(unsigned int)mode); //強(qiáng)制轉(zhuǎn)換成int數(shù)發(fā)送

  462.                   }

  463.            }

  464.     }

  465.     if(!k4 )                 //設(shè)置減

  466.                 {

  467.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  468.                         {

  469.                          if(!k4)             //再次判斷按鍵是否按下

  470.                          {               

  471.                         i=0;

  472.                         if(mode>0)

  473.                         mode-=1;

  474.                         SendString("mode-1");

  475.                         set_voltage=(unsigned int)mode; //強(qiáng)制轉(zhuǎn)換uint輸出

  476.                         Display2(); //更新輸出

  477.                 //        writedat=1; //寫入24C08 的標(biāo)志;

  478.      // printf("設(shè)置減:%u\r\n",(unsigned int)mode); //強(qiáng)制轉(zhuǎn)換成int數(shù)發(fā)送

  479.                    }

  480.                   }

  481.           }

  482.     if(!k5)                 //確認(rèn)

  483.                 {

  484.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  485.                         {

  486.                          if(!k5)             //再次判斷按鍵是否按下

  487.                          {

  488.                         writedat=1; //寫入24C08 的標(biāo)志;

  489.                         mode=0;        

  490.                 //        printf("保存eeprom成功\r\n");

  491.                          }

  492.                  }

  493.                 }        


  494.     if(mode==1)//模式1

  495.                 {

  496.                         if(!k2)  //加

  497.                         {

  498.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  499.                         {

  500.                          if(!k2)             //再次判斷按鍵是否按下

  501.                          {

  502.                                 if(mode1<65535)  // 小于65535

  503.                                         mode1++;    //自加一次

  504.                                         SendString("mode1+");

  505.                         set_voltage=mode1; //強(qiáng)制轉(zhuǎn)換uint輸出

  506.                         OLED_P8x16Str(0,4,35); //M

  507.                         OLED_P8x16Str(8,4,37); //O

  508.                         OLED_P8x16Str(16,4,26); //D

  509.                         OLED_P8x16Str(24,4,27); //E

  510.                         OLED_P8x16Str(32,4,1); //1        

  511.             OLED_P8x16Str(40,4,10); //:

  512.                         Display3(); //更新輸出

  513.                         //        printf("mode1:%d\r\n",mode1);

  514.                          }

  515.                   }                        

  516.                  }

  517.                         if(!k3) //減

  518.                         {

  519.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  520.                         {

  521.                          if(!k3)             //再次判斷按鍵是否按下

  522.                          {                        

  523.                                 if(mode1>0)  //判斷大于1

  524.                                         mode1--;  //自減一次

  525.                                  SendString("mode1-");

  526.                         //        printf("mode1:%d\r\n",mode1);

  527.                          }

  528.                         }                        

  529.                 }

  530.         }                        

  531.                  if(mode==2)//模式2

  532.                 {

  533.                         if(!k2)  //加

  534.                         {

  535.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  536.                         {

  537.                          if(!k2)             //再次判斷按鍵是否按下

  538.                          {

  539.                                 if(mode2<65535)  // 小于65535

  540.                                         mode2++;    //自加一次

  541.                         //        printf("mode2:%d\r\n",mode2);        

  542.                         }

  543.                         }

  544.                         }

  545.                         if(!k3) //減

  546.                         {

  547.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  548.                         {

  549.                          if(!k3)             //再次判斷按鍵是否按下

  550.                          {

  551.                                 if(mode2>0)  //判斷大于1

  552.                                         mode2--;  //自減一次

  553.                         //        printf("mode2:%d\r\n",mode2);

  554.                         }

  555.                    }

  556.                         }                                

  557.           }

  558.     if(mode==3)//模式3

  559.                 {

  560.                         if(!k2)  //加

  561.                         {

  562.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  563.                         {

  564.                          if(!k2)             //再次判斷按鍵是否按下

  565.                          {

  566.                                 if(mode3<65535)  // 小于65535

  567.                                         mode3++;    //自加一次

  568.                         //        printf("mode3:%d\r\n",mode3);        

  569.                         }

  570.                 }

  571.         }

  572.                         if(!k3) //減

  573.                         {

  574.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  575.                         {

  576.                          if(!k3)             //再次判斷按鍵是否按下

  577.                          {

  578.                                 if(mode3>0)  //判斷大于1

  579.                                         mode3--;  //自減一次

  580.                         //        printf("mode3:%d\r\n",mode3);

  581.                         }

  582.                 }

  583.                         }                        

  584.                 }               

  585.                  if(mode==4)//模式4

  586.                 {

  587.                         if(!k2)  //加

  588.                         {

  589.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  590.                         {

  591.                          if(!k2)             //再次判斷按鍵是否按下

  592.                          {

  593.                                 if(mode4<65535)  // 小于65535

  594.                                         mode4++;    //自加一次

  595.                         //        printf("mode4:%d\r\n",mode4);        

  596.                         }

  597.                 }

  598.                         }

  599.                         if(!k3) //減

  600.                         {

  601.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  602.                         {

  603.                          if(!k3)             //再次判斷按鍵是否按下

  604.                          {                                

  605.                                 if(mode4>0)  //判斷大于1

  606.                                         mode4--;  //自減一次

  607.                         //        printf("mode4:%d\r\n",mode4);

  608.                         }

  609.                 }

  610.                         }                                

  611.           }               

  612.     if(mode==5)//模式5

  613.                 {

  614.                         if(!k2)  //加

  615.                         {

  616.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  617.                         {

  618.                          if(!k2)             //再次判斷按鍵是否按下

  619.                          {                                

  620.                                 if(mode5<65535)  // 小于65535

  621.                                         mode5++;    //自加一次

  622.                         //        printf("mode5:%d\r\n",mode5);

  623.                         }

  624.                 }                        

  625.                         }

  626.                         if(!k3) //減

  627.                         {

  628.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  629.                         {

  630.                          if(!k3)             //再次判斷按鍵是否按下

  631.                          {                                

  632.                                 if(mode5>0)  //判斷大于1

  633.                                         mode5--;  //自減一次

  634.                         //        printf("mode5:%d\r\n",mode5);

  635.                         }        

  636.                 }

  637.          }                        

  638.                 }               

  639.                  if(mode==6)//模式6

  640.                 {

  641.                         if(!k2)  //加

  642.                         {

  643.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  644.                         {

  645.                          if(!k2)             //再次判斷按鍵是否按下

  646.                          {                        

  647.                                 if(mode6<65535)  // 小于65535

  648.                                         mode6++;    //自加一次

  649.                         //        printf("mode6:%d\r\n",mode6);        

  650.                         }

  651.                 }

  652.         }

  653.                         if(!k3) //減

  654.                         {

  655.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  656.                         {

  657.                          if(!k3)             //再次判斷按鍵是否按下

  658.                          {                                

  659.                                 if(mode6>0)  //判斷大于1

  660.                                         mode6--;  //自減一次

  661.                         //        printf("mode6:%d\r\n",mode6);

  662.                         }               

  663.                 }

  664.         }                        

  665.           }

  666.     if(mode==7)//模式7

  667.                 {

  668.                         if(!k2)  //加

  669.                         {

  670.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  671.                         {

  672.                          if(!k2)             //再次判斷按鍵是否按下

  673.                          {                                

  674.                                 if(mode7<65535)  // 小于65535

  675.                                         mode7++;    //自加一次

  676.                         //        printf("mode7:%d\r\n",mode7);        

  677.                         }

  678.                 }

  679.         }

  680.                         if(!k3) //減

  681.                         {

  682.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  683.                         {

  684.                          if(!k3)             //再次判斷按鍵是否按下

  685.                          {                                

  686.                                 if(mode7>0)  //判斷大于1

  687.                                         mode7--;  //自減一次

  688.                         //        printf("mode7:%d\r\n",mode7);

  689.                         }

  690.                 }

  691.         }                        

  692.                 }               

  693.                  if(mode==8)//模式8

  694.                 {

  695.                         if(!k2)  //加

  696.                         {

  697.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  698.                         {

  699.                          if(!k2)             //再次判斷按鍵是否按下

  700.                          {                        

  701.                                 if(mode8<65535)  // 小于65535

  702.                                         mode8++;    //自加一次

  703.                         //        printf("mode8:%d\r\n",mode8);        

  704.                         }

  705.                 }

  706.                         }

  707.                         if(!k3) //減

  708.                         {

  709.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  710.                         {

  711.                          if(!k3)             //再次判斷按鍵是否按下

  712.                          {                                

  713.                                 if(mode8>0)  //判斷大于1

  714.                                         mode8--;  //自減一次

  715.                         //        printf("mode8:%d\r\n",mode8);

  716.                         }               

  717.                 }

  718.         }                        

  719.           }               

  720. //////開始執(zhí)行

  721.       if(mode==0) //模式0

  722.                         {

  723.                         if(!k2)  //加

  724.                         {

  725.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  726.                         {

  727.                          if(!k2)             //再次判斷按鍵是否按下

  728.                          {                                

  729.                                 if(fhz<mode1)  // 判斷fhz小于mpde1

  730.                                         fhz++;    //自加一次

  731.                                         Val=valdata/mode1*fhz; //基準(zhǔn)數(shù)5000/頻率上限*設(shè)置運行頻率=輸出

  732.                                   MCP4725_WriteData(Val);        //寫電壓單位V               

  733.                         //        printf("頻率:%uHz\n",(unsigned int)fhz); //打印頻率 //強(qiáng)制轉(zhuǎn)換成int數(shù)發(fā)送

  734.       //  printf("輸出電壓:%dMv\r\n",Val);                //打印MCP4725電壓               

  735.                         }

  736.                 }

  737.         }

  738.                         if(!k3) //減

  739.                         {

  740.                         if(count1==key) //消除抖動計數(shù)5次大約10ms

  741.                         {

  742.                          if(!k3)             //再次判斷按鍵是否按下

  743.                          {                                

  744.                                 if(fhz>0)  //判斷大于0

  745.                                         fhz--;  //自減一次

  746.                                         Val=valdata/mode1*fhz; //基準(zhǔn)數(shù)5000/頻率上限*設(shè)置運行頻率=輸出

  747.                                   MCP4725_WriteData(Val);        //寫電壓單位V

  748.                         //        printf("頻率:%uHz\n",(unsigned int)fhz); //打印頻率 //強(qiáng)制轉(zhuǎn)換成int數(shù)發(fā)送

  749.                         //        printf("輸出電壓:%dMv\r\n",Val);        //打印MCP4725電壓

  750.                         }

  751.                 }

  752.             }                        

  753.                         }


  754.                  if(mode==9)//模式9

  755.                 {

  756.                         if(i==100)  //開啟

  757.                         {

  758.                                 i=0;

  759.                      volt1=ADC(1);//測量通道1

  760.                     volt1=volt1*500/127;

  761.                     volt2=ADC(2);//測量通道2

  762.                     volt2=volt2*500/127;

  763.                                 /*

  764.                                 SendString("table[volt1/100]+0x30");

  765.                                 SendString(".");

  766.                                 SendString("table[volt1%100/10]+0x30");

  767.                                 SendString("table[volt1%10]+0x30");

  768.                                 SendString("V");

  769.                                 SendString("\r\n");

  770.                           SendString("table[volt2/100]+0x30");

  771.                                 SendString(".");

  772.                                 SendString("table[volt2%100/10]+0x30");

  773.                                 SendString("table[volt2%10]+0x30");

  774.                                 SendString("V");

  775.                                 SendString("\r\n");

  776.                                 */

  777.                         //        printf("CH1:%gV\n",(float)volt1/100);        //打印0832CH1電壓//強(qiáng)制轉(zhuǎn)換成float數(shù)發(fā)送使用%g不打印多的0

  778.                         //        printf("CH2:%gV\r\n",(float)volt2/100); //打印0832CH2電壓//強(qiáng)制轉(zhuǎn)換成float數(shù)發(fā)送使用%g不打印多的0

  779.                         }

  780.           }        

  781.                  if(mode==10)//模式10

  782.                 {        

  783.                         if(i==500)  //開啟

  784.                         {

  785.         // duqu=ds18b20_readTemp();     //讀18b20溫度值

  786.                                 //duqu=rd_temperature_f();//調(diào)用DS18B20溫度采集程序:浮點數(shù)

  787.                                 // duqu=duqu*0.0625*100+0.5;

  788.                                 //duqu=duqu*100;               //取1位小數(shù)

  789.                                 //wendu=(unsigned int)x; //轉(zhuǎn)換為整形數(shù)值,由數(shù)碼管顯示

  790.          set_voltage=duqu; //溫度輸出

  791.          Display1();

  792.                                 if(duqu<0)

  793.                                 {

  794.                                         duqu=~duqu+1;

  795.                                         duqu+=1;

  796.                                         //duqu=duqu*0.0625*100+0.5;

  797.                                         dis_buf[1]=table[52];

  798.                                 }

  799.                                         else //if(kaiqi==1)

  800.                                         {

  801.                                         //duqu=duqu*0.0625*100+0.5;        

  802.                                         dis_buf[1]=table[55];

  803.                 }

  804.                                         i=0;

  805.           }

  806.         }



  807.                 /*

  808.                  if(mode==11)//模式11

  809.                 {

  810.                         if(i==100)  //開啟

  811.                         {

  812.                                 i=0;

  813.                                 run_time();        //時鐘走動函數(shù)定義

  814.                                 //printf("xtsz.t15.txt=\"%d:%d:%d\"\xff\xff\xff",(unsigned int)hour,(unsigned int)minute,(unsigned int)second);        //打印小時

  815.                         //        printf("時間:%d-%d-%d\r\n",(unsigned int)hour,(unsigned int)minute,(unsigned int)second);        //打印

  816.                         }

  817.           }               

  818.                                 */

  819.                 if(mode==12)//模式12

  820.                 {

  821.                         if(i==100)  //開啟

  822.                         {

  823.                                 i=0;

  824.                           ADC0 = ADS1115_Read(0)*1000;        //通道0

  825.                         //        printf("ADS1115通道1:");        

  826.                         //        printf("%gmv\n",(float)ADC0/1000);        //打印//強(qiáng)制轉(zhuǎn)換成float數(shù)發(fā)送使用%g不打印多的0

  827.                 }

  828.          }

  829.                          if(mode==13)//模式13

  830.                 {

  831.                         if(i==100)  //開啟

  832.                         {

  833.                                 i=0;

  834.                           ADC1 = ADS1115_Read(1)*1000;        //通道1

  835.                         //        printf("ADS1115通道2:");        

  836.                         //        printf("%gmv\n",(float)ADC1/1000);        //打印//強(qiáng)制轉(zhuǎn)換成float數(shù)發(fā)送使用%g不打印多的0

  837.                 }

  838.         }

  839.                    if(mode==14)//模式14

  840.                 {        

  841.                         if(i==100)  //開啟

  842.                         {

  843.                                 i=0;

  844.                           ADC2 = ADS1115_Read(2)*1000;        //通道2

  845.                         //        printf("ADS1115通道3:");        

  846.                         //        printf("%gmv\n",(float)ADC2/1000);        //打印//強(qiáng)制轉(zhuǎn)換成float數(shù)發(fā)送使用%g不打印多的0

  847.                 }

  848.         }

  849.                         if(mode==15)//模式15

  850.                 {

  851.                         if(i==100)  //開啟

  852.                         {

  853.                                 i=0;

  854.                           //ADC3 = (unsigned int)(ADS1115_Read(3)*1000);        //通道3

  855.                           ADC3 = ADS1115_Read(3)*1000;        //通道3

  856.                         //        printf("ADS1115通道4:");        

  857.                         //        printf("%gmv\n",(float)ADC3/1000);        //打印//強(qiáng)制轉(zhuǎn)換成float數(shù)發(fā)送使用%g不打印多的0

  858.                 }

  859.         }






  860.                   if(k1 && k2 && k3 && k4 && k5 )

  861.                         {

  862.                 //        kk=0;

  863.                   count1=0; //計數(shù)清零

  864.                         }

  865.                 }

  866.                 if(writedat==1) //寫入24C08 的標(biāo)志;

  867.                 {

  868.                         writedat=0; //清除寫入24C08 的標(biāo)志;

  869.                                  num1=(uchar)(mode1/256);

  870.          num2=(uchar)(mode1%256); //num1和num2是將up的0-65535計算成兩個255分別存儲的變量

  871.                                  num3=(uchar)(mode2/256);

  872.          num4=(uchar)(mode2%256); //num3和num4是將down的0-65535計算成兩個255分別存儲的變量


  873.                                  num5=(uchar)(mode3/256);

  874.          num6=(uchar)(mode3%256); //num5和num6是將up的0-65535計算成兩個255分別存儲的變量

  875.                                  num7=(uchar)(mode4/256);

  876.          num8=(uchar)(mode4%256); //num7和num8是將down的0-65535計算成兩個255分別存儲的變量

  877.                                  num9=(uchar)(mode5/256);

  878.          num10=(uchar)(mode5%256); //num9和num10是將up的0-65535計算成兩個255分別存儲的變量

  879.                                  num11=(uchar)(mode6/256);

  880.          num12=(uchar)(mode6%256); //num11和num12是將down的0-65535計算成兩個255分別存儲的變量

  881.                                  num13=(uchar)(mode7/256);

  882.          num14=(uchar)(mode7%256); //num13和num14是將up的0-65535計算成兩個255分別存儲的變量

  883.                                  num15=(uchar)(mode8/256);

  884.          num16=(uchar)(mode8%256); //num15和num16是將down的0-65535計算成兩個255分別存儲的變量


  885.                                  write(0xa0,0x01,num1); //地址1寫入0-255

  886.          delay1(10);  

  887.          write(0xa0,0x02,num2); //地址2寫入0-255

  888.          delay1(10);

  889.          write(0xa0,0x03,num3); //地址3寫入0-255

  890.          delay1(10);         

  891.          write(0xa0,0x04,num4); //地址4寫入0-255

  892.          delay1(10);

  893.                                  write(0xa0,0x05,num5); //地址5寫入0-255

  894.          delay1(10);  

  895.          write(0xa0,0x06,num6); //地址6寫入0-255

  896.          delay1(10);

  897.          write(0xa0,0x07,num7); //地址7寫入0-255

  898.          delay1(10);         

  899.          write(0xa0,0x08,num8); //地址8寫入0-255

  900.          delay1(10);

  901.                                  write(0xa0,0x09,num9); //地址9寫入0-255

  902.          delay1(10);  

  903.          write(0xa0,0x10,num10); //地址10寫入0-255

  904.          delay1(10);

  905.          write(0xa0,0x11,num11); //地址11寫入0-255

  906.          delay1(10);         

  907.          write(0xa0,0x12,num12); //地址12寫入0-255

  908.          delay1(10);

  909.                                  write(0xa0,0x13,num13); //地址13寫入0-255

  910.          delay1(10);  

  911.          write(0xa0,0x14,num14); //地址14寫入0-255

  912.          delay1(10);

  913.          write(0xa0,0x15,num15); //地址15寫入0-255

  914.          delay1(10);         

  915.          write(0xa0,0x16,num16); //地址16寫入0-255

  916.          delay1(10);                 

  917.                 }

  918. switch(mode) //模式

  919.         {

  920.         case 0:  //主顯示

  921.         {     

  922.                    if(flag1s) //1s定時標(biāo)志

  923.                          {

  924.                     dis_buf[0]=table[46];//顯示千萬位

  925.                     dis_buf[1]=table[Val/1000]+0x80;//顯示百萬位 +0x80就是顯示有小數(shù)點

  926.                     dis_buf[2]=table[Val%1000/100];//顯示十萬位

  927.                     dis_buf[3]=table[Val%100/10];//顯示萬位

  928.                     dis_buf[4]=table[Val%10];//顯示千位

  929.                     dis_buf[5]=table[20];//顯示百位

  930.                     dis_buf[6]=table[fhz/10];//顯示十位

  931.                     dis_buf[7]=table[fhz%10];//顯示個位

  932.                          }

  933.                          else

  934.                          {

  935.                     dis_buf[6]=table[55];//顯示十位

  936.                     dis_buf[7]=table[55];//顯示個位                                 

  937.                          }

  938.         }                break;

  939.         case 1: //菜單1

  940.         {

  941.                     dis_buf[0]=table[36];//顯示千萬位

  942.                     dis_buf[1]=table[1];//顯示百萬位

  943.                     dis_buf[2]=table[52];//顯示十萬位

  944.                     dis_buf[3]=table[mode1/10000];//顯示萬位

  945.                     dis_buf[4]=table[mode1%10000/1000];//顯示千位

  946.                     dis_buf[5]=table[mode1%1000/100];//顯示百位

  947.                     dis_buf[6]=table[mode1%100/10];//顯示十位

  948.         dis_buf[7]=table[mode1%10]; //顯示個位

  949.         }break;

  950.         case 2: //菜單2

  951.         {

  952.                     dis_buf[0]=table[36];//顯示千萬位

  953.                     dis_buf[1]=table[2];//顯示百萬位

  954.                     dis_buf[2]=table[52];//顯示十萬位

  955.                     dis_buf[3]=table[mode2/10000];//顯示萬位

  956.                     dis_buf[4]=table[mode2%10000/1000];//顯示千位

  957.                     dis_buf[5]=table[mode2%1000/100];//顯示百位

  958.                     dis_buf[6]=table[mode2%100/10];//顯示十位

  959.         dis_buf[7]=table[mode2%10]; //顯示個位

  960.         }break;

  961.         case 3: //菜單3

  962.         {

  963.                     dis_buf[0]=table[36];//顯示千萬位

  964.                     dis_buf[1]=table[3];//顯示百萬位

  965.                     dis_buf[2]=table[52];//顯示十萬位

  966.                     dis_buf[3]=table[mode3/10000];//顯示萬位

  967.                     dis_buf[4]=table[mode3%10000/1000];//顯示千位

  968.                     dis_buf[5]=table[mode3%1000/100];//顯示百位

  969.                     dis_buf[6]=table[mode3%100/10];//顯示十位

  970.         dis_buf[7]=table[mode3%10]; //顯示個位

  971.         }break;

  972.         case 4: //菜單4

  973.         {

  974.                     dis_buf[0]=table[36];//顯示千萬位

  975.                     dis_buf[1]=table[4];//顯示百萬位

  976.                     dis_buf[2]=table[52];//顯示十萬位

  977.                     dis_buf[3]=table[mode4/10000];//顯示萬位

  978.                     dis_buf[4]=table[mode4%10000/1000];//顯示千位

  979.                     dis_buf[5]=table[mode4%1000/100];//顯示百位

  980.                     dis_buf[6]=table[mode4%100/10];//顯示十位

  981.         dis_buf[7]=table[mode4%10]; //顯示個位

  982.         }break;

  983.         case 5: //菜單5

  984.         {

  985.                     dis_buf[0]=table[36];//顯示千萬位

  986.                     dis_buf[1]=table[5];//顯示百萬位

  987.                     dis_buf[2]=table[52];//顯示十萬位

  988.                     dis_buf[3]=table[mode5/10000];//顯示萬位

  989.                     dis_buf[4]=table[mode5%10000/1000];//顯示千位

  990.                     dis_buf[5]=table[mode5%1000/100];//顯示百位

  991.                     dis_buf[6]=table[mode5%100/10];//顯示十位

  992.         dis_buf[7]=table[mode5%10]; //顯示個位

  993.         }break;

  994.         case 6: //菜單6

  995.         {

  996.                     dis_buf[0]=table[36];//顯示千萬位

  997.                     dis_buf[1]=table[6];//顯示百萬位

  998.                     dis_buf[2]=table[52];//顯示十萬位

  999.                     dis_buf[3]=table[mode6/10000];//顯示萬位

  1000.                     dis_buf[4]=table[mode6%10000/1000];//顯示千位

  1001.                     dis_buf[5]=table[mode6%1000/100];//顯示百位

  1002.                     dis_buf[6]=table[mode6%100/10];//顯示十位

  1003.         dis_buf[7]=table[mode6%10]; //顯示個位

  1004.         }break;

  1005.         case 7: //菜單7

  1006.         {

  1007.                     dis_buf[0]=table[36];//顯示千萬位

  1008.                     dis_buf[1]=table[7];//顯示百萬位

  1009.                     dis_buf[2]=table[52];//顯示十萬位

  1010.                     dis_buf[3]=table[mode7/10000];//顯示萬位

  1011.                     dis_buf[4]=table[mode7%10000/1000];//顯示千位

  1012.                     dis_buf[5]=table[mode7%1000/100];//顯示百位

  1013.                     dis_buf[6]=table[mode7%100/10];//顯示十位

  1014.         dis_buf[7]=table[mode7%10]; //顯示個位

  1015.         }break;

  1016.         case 8: //菜單8

  1017.         {

  1018.                     dis_buf[0]=table[36];//顯示千萬位

  1019.                     dis_buf[1]=table[8];//顯示百萬位

  1020.                     dis_buf[2]=table[52];//顯示十萬位

  1021.                     dis_buf[3]=table[mode8/10000];//顯示萬位

  1022.                     dis_buf[4]=table[mode8%10000/1000];//顯示千位

  1023.                     dis_buf[5]=table[mode8%1000/100];//顯示百位

  1024.                     dis_buf[6]=table[mode8%100/10];//顯示十位

  1025.         dis_buf[7]=table[mode8%10]; //顯示個位

  1026.         }break;        

  1027.         case 9: //菜單9

  1028.         {

  1029.                     dis_buf[0]=table[volt1/100]+0x80;//顯示千萬位

  1030.                     dis_buf[1]=table[volt1%100/10];//顯示百萬位

  1031.                     dis_buf[2]=table[volt1%10];//顯示十萬位

  1032.                     dis_buf[3]=table[46];//顯示萬位

  1033.                     dis_buf[4]=table[volt2/100]+0x80;//顯示千位

  1034.                     dis_buf[5]=table[volt2%100/10];//顯示百位

  1035.                     dis_buf[6]=table[volt2%10];//顯示十位

  1036.         dis_buf[7]=table[46]; //顯示個位

  1037.         }break;   

  1038.         case 10: //菜單10

  1039.         {                  

  1040.                     dis_buf[0]=table[55];//顯示千萬位

  1041.                    // dis_buf[1]=table[55];//顯示百萬位

  1042.                     dis_buf[2]=table[duqu/10000];//顯示十萬位

  1043.                     dis_buf[3]=table[duqu%10000/1000];//顯示萬位

  1044.                     dis_buf[4]=table[duqu%1000/100]+0x80;//顯示千位

  1045.                     dis_buf[5]=table[duqu%100/10];//顯示百位

  1046.                     dis_buf[6]=table[duqu%10];//顯示十位

  1047.         dis_buf[7]=table[15]; //顯示個位

  1048.         }break;               


  1049.         case 11: //菜單11

  1050.         {

  1051.                     dis_buf[0]=table[hour/10];//顯示千萬位

  1052.                     dis_buf[1]=table[hour%10];//顯示百萬位

  1053.                     dis_buf[2]=table[52];//顯示十萬位

  1054.                     dis_buf[3]=table[minute/10];//顯示萬位

  1055.                     dis_buf[4]=table[minute%10];//顯示千位

  1056.                     dis_buf[5]=table[52];//顯示百位

  1057.                     dis_buf[6]=table[second/10];//顯示十位

  1058.         dis_buf[7]=table[second%10]; //顯示個位

  1059.         }break;            

  1060.         case 12: //菜單12

  1061.         {

  1062.         dis_buf[0]=table[36]; //顯示千萬位

  1063.         dis_buf[1]=table[1]; //顯示百萬位

  1064.         dis_buf[2]=table[2]; //顯示十萬

  1065.         dis_buf[3]=table[52]; //顯示萬位

  1066.         dis_buf[4]=table[ADC0/1000]+0x80; //顯示千位

  1067.         dis_buf[5]=table[ADC0%1000/100]; //顯示百位

  1068.         dis_buf[6]=table[ADC0%100/10]; // 顯示十位

  1069.         dis_buf[7]=table[ADC0%10]; //顯示個位

  1070.         }break;

  1071.         case 13: //菜單13

  1072.         {

  1073.         dis_buf[0]=table[36]; //顯示千萬位

  1074.         dis_buf[1]=table[1]; //顯示百萬位

  1075.         dis_buf[2]=table[3]; //顯示十萬

  1076.         dis_buf[3]=table[52]; //顯示萬位

  1077.         dis_buf[4]=table[ADC1/1000]+0x80; //顯示千位

  1078.         dis_buf[5]=table[ADC1%1000/100]; //顯示百位

  1079.         dis_buf[6]=table[ADC1%100/10]; // 顯示十位

  1080.         dis_buf[7]=table[ADC1%10]; //顯示個位

  1081.         }break;

  1082.         case 14: //菜單14

  1083.         {

  1084.         dis_buf[0]=table[36]; //顯示千萬位

  1085.         dis_buf[1]=table[1]; //顯示百萬位

  1086.         dis_buf[2]=table[4]; //顯示十萬

  1087.         dis_buf[3]=table[52]; //顯示萬位

  1088.         dis_buf[4]=table[ADC2/1000]+0x80; //顯示千位

  1089.         dis_buf[5]=table[ADC2%1000/100]; //顯示百位

  1090.         dis_buf[6]=table[ADC2%100/10]; // 顯示十位

  1091.         dis_buf[7]=table[ADC2%10]; //顯示個位

  1092.         }break;

  1093.         case 15: //菜單15

  1094.         {

  1095.         dis_buf[0]=table[36]; //顯示千萬位

  1096.         dis_buf[1]=table[1]; //顯示百萬位

  1097.         dis_buf[2]=table[5]; //顯示十萬

  1098.         dis_buf[3]=table[52]; //顯示萬位

  1099.         dis_buf[4]=table[ADC3/1000]+0x80; //顯示千位

  1100.         dis_buf[5]=table[ADC3%1000/100]; //顯示百位

  1101.         dis_buf[6]=table[ADC3%100/10]; // 顯示十位

  1102.         dis_buf[7]=table[ADC3%10]; //顯示個位

  1103.         }break;

  1104.         case 16: //菜單12

  1105.         {

  1106.                     dis_buf[0]=table[h/10];//顯示千萬位

  1107.                     dis_buf[1]=table[h%10];//顯示百萬位

  1108.                     dis_buf[2]=table[52];//顯示十萬位

  1109.                     dis_buf[3]=table[m/10];//顯示萬位

  1110.                     dis_buf[4]=table[m%10];//顯示千位

  1111.                     dis_buf[5]=table[52];//顯示百位

  1112.                     dis_buf[6]=table[s/10];//顯示十位

  1113.         dis_buf[7]=table[s%10]; //顯示個位

  1114.         }break;

  1115.         case 17: //菜單17

  1116.         {

  1117.                     dis_buf[0]=table[18];//顯示千萬位

  1118.                     dis_buf[1]=table[14];//顯示百萬位

  1119.                     //dis_buf[2]=table[7]+0x80;//顯示十萬位

  1120.                     dis_buf[3]=table[mode0/10000];//顯示萬位

  1121.                     dis_buf[4]=table[mode0%10000/1000];//顯示千位

  1122.                     dis_buf[5]=table[mode0%1000/100];//顯示百位

  1123.                     dis_buf[6]=table[mode0%100/10];//顯示十位

  1124.         dis_buf[7]=table[mode0%10]; //顯示個位

  1125.         }break;        

  1126. }        //default: 如果表達(dá)式的值和以上的case后面的值都沒有匹配上,那么就執(zhí)行這里的代碼。

  1127. }


  1128. void display595out() //595數(shù)碼管輸出

  1129. {

  1130.         //display595();

  1131.         DisplayScan();

  1132. }

  1133. void duqu24cxx()

  1134. {

  1135.         if(rst==1) //判斷如果等于高電平那么就執(zhí)行讀取數(shù)據(jù),如果不是那么就不讀取數(shù)據(jù)同時存儲的數(shù)據(jù)會清零

  1136. {

  1137. num1 = read(0xa0,0x01,0xa1); //地址1讀出0-255

  1138. delay1(10);  //適當(dāng)延時

  1139. num2 = read(0xa0,0x02,0xa1); //地址2讀出0-255

  1140. delay1(10);  //適當(dāng)延時

  1141. num3 = read(0xa0,0x03,0xa1); //地址3讀出0-255

  1142. delay1(10);  //適當(dāng)延時

  1143. num4 = read(0xa0,0x04,0xa1); //地址4讀出0-255

  1144. delay1(10);  //適當(dāng)延時

  1145. num5 = read(0xa0,0x05,0xa1); //地址5讀出0-255

  1146. delay1(10);  //適當(dāng)延時

  1147. num6 = read(0xa0,0x06,0xa1); //地址6讀出0-255

  1148. delay1(10);  //適當(dāng)延時

  1149. num7 = read(0xa0,0x07,0xa1); //地址7讀出0-255

  1150. delay1(10);  //適當(dāng)延時

  1151. num8 = read(0xa0,0x08,0xa1); //地址8讀出0-255

  1152. delay1(10);  //適當(dāng)延時

  1153. num9 = read(0xa0,0x09,0xa1); //地址9讀出0-255

  1154. delay1(10);  //適當(dāng)延時

  1155. num10 = read(0xa0,0x10,0xa1); //地址10讀出0-255

  1156. delay1(10);  //適當(dāng)延時

  1157. num11 = read(0xa0,0x11,0xa1); //地址11讀出0-255

  1158. delay1(10);  //適當(dāng)延時

  1159. num12 = read(0xa0,0x12,0xa1); //地址12讀出0-255

  1160. delay1(10);  //適當(dāng)延時

  1161. num13 = read(0xa0,0x13,0xa1); //地址13讀出0-255

  1162. delay1(10);  //適當(dāng)延時

  1163. num14 = read(0xa0,0x14,0xa1); //地址14讀出0-255

  1164. delay1(10);  //適當(dāng)延時

  1165. num15 = read(0xa0,0x15,0xa1); //地址15讀出0-255

  1166. delay1(10);  //適當(dāng)延時

  1167. num16 = read(0xa0,0x16,0xa1); //地址16讀出0-255

  1168. delay1(10);  //適當(dāng)延時


  1169. mode1 = num1*256 + num2; //計算還原成0-65535

  1170. mode2 = num3*256 + num4; //計算還原成0-65535

  1171. mode3 = num5*256 + num6; //計算還原成0-65535

  1172. mode4 = num7*256 + num8; //計算還原成0-65535

  1173. mode5 = num9*256 + num10; //計算還原成0-65535

  1174. mode6 = num11*256 + num12; //計算還原成0-65535

  1175. mode7 = num13*256 + num14; //計算還原成0-65535

  1176. mode8 = num15*256 + num16; //計算還原成0-65535

  1177. }

  1178. else if(rst==0)

  1179. {

  1180.                                  num1=(uchar)(mode1/256);

  1181.          num2=(uchar)(mode1%256); //num1和num2是將up的0-65535計算成兩個255分別存儲的變量

  1182.                                  num3=(uchar)(mode2/256);

  1183.          num4=(uchar)(mode2%256); //num3和num4是將down的0-65535計算成兩個255分別存儲的變量


  1184.                                  num5=(uchar)(mode3/256);

  1185.          num6=(uchar)(mode3%256); //num5和num6是將up的0-65535計算成兩個255分別存儲的變量

  1186.                                  num7=(uchar)(mode4/256);

  1187.          num8=(uchar)(mode4%256); //num7和num8是將down的0-65535計算成兩個255分別存儲的變量

  1188.                                  num9=(uchar)(mode5/256);

  1189.          num10=(uchar)(mode5%256); //num9和num10是將up的0-65535計算成兩個255分別存儲的變量

  1190.                                  num11=(uchar)(mode6/256);

  1191.          num12=(uchar)(mode6%256); //num11和num12是將down的0-65535計算成兩個255分別存儲的變量

  1192.                                  num13=(uchar)(mode7/256);

  1193.          num14=(uchar)(mode7%256); //num13和num14是將up的0-65535計算成兩個255分別存儲的變量

  1194.                                  num15=(uchar)(mode8/256);

  1195.          num16=(uchar)(mode8%256); //num15和num16是將down的0-65535計算成兩個255分別存儲的變量


  1196.                                  write(0xa0,0x01,num1); //地址1寫入0-255

  1197.          delay1(10);  

  1198.          write(0xa0,0x02,num2); //地址2寫入0-255

  1199.          delay1(10);

  1200.          write(0xa0,0x03,num3); //地址3寫入0-255

  1201.          delay1(10);         

  1202.          write(0xa0,0x04,num4); //地址4寫入0-255

  1203.          delay1(10);

  1204.                                  write(0xa0,0x05,num5); //地址5寫入0-255

  1205.          delay1(10);  

  1206.          write(0xa0,0x06,num6); //地址6寫入0-255

  1207.          delay1(10);

  1208.          write(0xa0,0x07,num7); //地址7寫入0-255

  1209.          delay1(10);         

  1210.          write(0xa0,0x08,num8); //地址8寫入0-255

  1211.          delay1(10);

  1212.                                  write(0xa0,0x09,num9); //地址9寫入0-255

  1213.          delay1(10);  

  1214.          write(0xa0,0x10,num10); //地址10寫入0-255

  1215.          delay1(10);

  1216.          write(0xa0,0x11,num11); //地址11寫入0-255

  1217.          delay1(10);         

  1218.          write(0xa0,0x12,num12); //地址12寫入0-255

  1219.          delay1(10);

  1220.                                  write(0xa0,0x13,num13); //地址13寫入0-255

  1221.          delay1(10);  

  1222.          write(0xa0,0x14,num14); //地址14寫入0-255

  1223.          delay1(10);

  1224.          write(0xa0,0x15,num15); //地址15寫入0-255

  1225.          delay1(10);         

  1226.          write(0xa0,0x16,num16); //地址16寫入0-255

  1227.          delay1(10);

  1228. }        

  1229. }

  1230. void ds1307duqu()

  1231. {

  1232. /*

  1233.         //初始化寫入數(shù)碼管的時分秒

  1234.         second=55;

  1235.         minute=59;

  1236.         hour=01;

  1237.                                 b_second=dectobcd(second);

  1238.                                 b_minute=dectobcd(minute);

  1239.                                 b_hour=dectobcd(hour);

  1240.                                 //將所調(diào)的時間向時鐘寫入

  1241.                                 write_1307(0xd0,0,b_hour);

  1242.                                 write_1307(0xd0,2,b_minute);        

  1243.                                 write_1307(0xd0,1,b_second);

  1244.         //初始化ds1307

  1245.         write_1307(0xd0,0x07,0x10);//初始化1307的控制字,使其SOUT引腳輸出1Hz的方波。

  1246.         //初始化1307的時間/*

  1247.         write_1307(0xd0,6,0x07);                 

  1248.         write_1307(0xd0,5,0x11);   

  1249.         write_1307(0xd0,4,0x24);

  1250.         write_1307(0xd0,3,0x04);

  1251.         write_1307(0xd0,2,0x00);

  1252.         write_1307(0xd0,1,0x00);

  1253.         write_1307(0xd0,0,0x00);

  1254.                                 */

  1255.         /*                                //初始化寫入數(shù)碼管的時分秒

  1256.         second=55;

  1257.         minute=59;

  1258.         hour=01;

  1259.                                 b_second=dectobcd(second);

  1260.                                 b_minute=dectobcd(minute);

  1261.                                 b_hour=dectobcd(hour);

  1262.                                 //將所調(diào)的時間向時鐘寫入

  1263.                                 ds1307_write_date(0xd0,0,b_hour);

  1264.                                 ds1307_write_date(0xd0,2,b_minute);        

  1265.                                 ds1307_write_date(0xd0,1,b_second);

  1266.         */

  1267.         /*

  1268.         //初始化ds1307

  1269.         ds1307_write_date(0xd0,0x07,0x10);//初始化1307的控制字,使其SOUT引腳輸出1Hz的方波。

  1270.         //初始化1307的時間/*

  1271.         ds1307_write_date(0xd0,6,0x07);                 

  1272.         ds1307_write_date(0xd0,5,0x11);   

  1273.         ds1307_write_date(0xd0,4,0x24);

  1274.         ds1307_write_date(0xd0,3,0x04);

  1275.         ds1307_write_date(0xd0,2,0x23); //

  1276.         ds1307_write_date(0xd0,1,0x55); //

  1277.         ds1307_write_date(0xd0,0,0x00); //

  1278.                                 */

  1279. }        


  1280. void init()  //初始化

  1281. {

  1282. MCP4725_WriteData(0);//掉電不保存數(shù)據(jù)

  1283. duqu24cxx(); //讀出24cxx存儲的數(shù)據(jù)        

  1284. ds1307duqu();//寫入DS1307數(shù)據(jù)

  1285. Timer0Init(); //定時器初始化

  1286. SerialInit(); //串口初始化

  1287.         OLED_Init();

  1288.         OLED_CLS();

  1289. //        OLED_P32x64Str(0,0,2); //

  1290.         OLED_hzStr(0,0,2); //數(shù)

  1291.         OLED_hzStr(16,0,3); //字

  1292.         OLED_hzStr(32,0,0); //電

  1293.         OLED_hzStr(48,0,1); //壓

  1294.         OLED_hzStr(64,0,4); //源

  1295.         OLED_P8x16Str(80,0,13); //        

  1296.         OLED_P8x16Str(88,0,0); //

  1297.   OLED_P8x16Str(96,0,0); //

  1298.         OLED_P8x16Str(104,0,0); //

  1299.         OLED_P8x16Str(112,0,0); //

  1300.         OLED_P8x16Str(120,0,49); //

  1301.         Display1(); //更新輸出

  1302.         set_voltage=(unsigned int)mode; //強(qiáng)制轉(zhuǎn)換uint輸出

  1303.         OLED_P8x16Str(0,2,35); //M

  1304.         OLED_P8x16Str(8,2,37); //O

  1305.         OLED_P8x16Str(16,2,26); //D

  1306.         OLED_P8x16Str(24,2,27); //E

  1307.         OLED_P8x16Str(32,2,10); //:

  1308.         Display2(); //更新輸出

  1309. //        OLED_hzStr(96,4,7);  //實

  1310. //        OLED_hzStr(112,4,8); //際

  1311. //        OLED_hzStr(96,6,5);  //設(shè)

  1312. //        OLED_hzStr(112,6,6); //定

  1313. }


  1314. void main()

  1315. {

  1316.   init();

  1317. // printf("初始化完成...\r\n"); //初始化完成后串口發(fā)出

  1318.         SendString("初始化完成...\r\n");//初始化完成后串口發(fā)出

  1319. while(1)

  1320. {

  1321.    //display595out(); //595數(shù)碼管顯示

  1322.          KEY(); //按鍵處理        

  1323.    EC11_Driver();                  //EC11編碼器驅(qū)動函數(shù)

  1324. }

  1325. }


  1326. //定時器中斷   

  1327. void time0() interrupt 1  //初始值大概2毫秒

  1328. {        

  1329.   static uint tcount;

  1330.         static uint tcount2;

  1331.   //TH0=(65536-2000)/256;//2ms

  1332.   //TL0=(65536-2000)%256;//2ms

  1333.   TH0=(65536-1920)/256;//2ms

  1334.   TL0=(65536-1920)%256;//2ms

  1335.         tcount++;

  1336.         count1++;

  1337.         tcount2++;

  1338.         i++;

  1339.          if(tcount==500)

  1340.         {

  1341.                 tcount=0;

  1342.                 s++;

  1343.                 if(s==60)

  1344.                 {

  1345.                   s=0;                                                                                                        

  1346.                   m++;

  1347.                 if(m==60)

  1348.                 {

  1349.                   m=0;

  1350.                   h++;

  1351.                 if(h==24)

  1352.                 {

  1353.                   h=0;

  1354.                  }

  1355.                  }                                                               

  1356.                  }

  1357.                                                                 run_time();        //時鐘走動函數(shù)定義

  1358.          led=~led; //狀態(tài)燈1秒一次

  1359.         }

  1360.          if(tcount2==250)

  1361.          {

  1362.                  flag1s=!flag1s;  //1s定時標(biāo)志

  1363.                  tcount2=0;

  1364.          }


  1365.          display595out(); //595數(shù)碼管顯示

  1366.          EC11_Scan();                           //EC11編碼器掃描

  1367.          read_ds18b20_temp();  //ds18b20溫度讀取

  1368. }
復(fù)制代碼


回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
第一页在线视频| 99视频免费观看| 国产一级久久久| 日韩伦理在线| 91精品福利在线| 亚洲这里只有精品| 在线观看污网站| 国产亚洲欧美日韩俺去了| 色狠狠久久av五月综合|| 国产免费黄色| 久久影院亚洲| 国产日韩精品视频| 六月婷婷综合网| 亚洲人metart人体| 奇米四色中文综合久久| 91成品人影院| 国产伦一区二区三区| 精品国产一区二区三区四区在线观看 | 欧美家庭影院| 色综合久久久久久久| 制服丝袜中文字幕第一页| 黄色免费在线播放| 亚洲欧美国产77777| 69堂免费视频| 中文在线三区| 依依成人综合视频| 一本久道综合色婷婷五月| 黄色小视频在线播放| 亚洲国产激情av| 欧美,日韩,国产在线| 秋霞福利视频| 国产精品久久久久久户外露出| 97超碰人人澡| 欧美精品一区二区三区涩爱蜜| 国产精品美女www爽爽爽| 国产二级片在线观看| 在线看a视频| 亚洲免费观看高清完整版在线观看熊 | 久久激情中文| 91久色国产| 偷窥自拍欧美色图| 三级在线观看一区二区| 国产二区不卡| 国产伦精品一区二区三区高清版禁 | 国产一本一道久久香蕉| 日韩电影免费观看在| jjzzjjzzjjzz| 久久久久久久久久久久久夜| 久久久性生活视频| 欧美zzoo| 色婷婷综合五月| 色天使在线视频| 成人日韩精品| 亚洲小视频在线观看| 国语对白永久免费| 久久在线免费| 成人激情av在线| 国产黄色小视频| 成人精品一区二区三区四区| 国产在线视频在线| 免费黄色在线视频网站| 一本大道久久a久久精二百| 玖玖爱在线观看| 99riav视频一区二区| 在线观看国产精品91| 激情视频网站在线观看| 亚洲免费二区| 99一区二区三区| 黄网网址免费| 国产婷婷精品av在线| 亚欧在线免费观看| 日本片在线观看| 欧美精品一区二区三区在线播放| 久久久久成人网站| 成人av资源电影网站| 国产原创欧美精品| 三级全黄视频| 欧美国产精品v| 日韩av影视大全| 日本电影欧美片| 自拍偷拍亚洲区| 国产福利视频导航| 蜜臀久久99精品久久久画质超高清 | 丝袜国产日韩另类美女| 亚洲免费视频一区| 香蕉影院在线| 欧美精品一二三区| 久久久无码一区二区三区| 国产高清一区二区三区视频 | 爽爽爽爽爽爽爽成人免费观看| 中文字幕理论片| 一区二区三区国产在线| 日韩资源av在线| 神马精品久久| 欧美精品一卡二卡| 五月天婷婷久久| 精品电影一区| 亚洲国产欧美日韩| 可以在线观看的av网站| 欧美一区二区三区视频在线观看| 精品无码人妻一区二区三区品| 97欧美在线视频| 精品一卡二卡三卡四卡日本乱码| 国产bdsm| 在线亚洲高清视频| 久草网视频在线观看| 亚洲精品99| 欧美一区二区三区成人久久片| 蜜桃tv在线播放| 欧美日韩另类国产亚洲欧美一级| 日韩精品――中文字幕| 亚洲性感美女99在线| 日韩精品不卡| 91在线直播| 日韩精品视频免费| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 国产女人18水真多18精品一级做| 手机在线国产视频| 少妇高潮一区二区三区99| 91精品国产高清自在线| 91蝌蚪在线| 亚洲免费在线视频| 国产馆在线观看| 欧美高清视频在线观看mv| 久久综合久久综合这里只有精品| 中文字幕高清在线| 欧美一级黄色大片| 波多野结衣电车痴汉| 日本女优在线视频一区二区| 99在线精品免费视频| 成人超碰在线| 色综合导航网站| 免费观看91视频大全| 亚洲欧美日韩系列| 五月婷婷综合激情网| 亚洲成人99| 亚洲一区在线免费| av在线官网| 色又黄又爽网站www久久| 久久久久久久久久一区二区三区| 精品二区久久| 国产一线二线三线女| 热三久草你在线| 97视频在线观看视频免费视频 | 亚洲最大激情中文字幕| 神马久久影视大全| 日韩一区二区在线看| 一区二区三区四区精品| 污污网站免费观看| 日本免费成人| 国产精品视频大全| 97影院理论| 欧美日韩dvd在线观看| 91在线视频免费播放| 另类小说视频一区二区| 成人综合久久网| 国产精品男女| 国产伦精品一区二区三区高清| 伊人75在线| 国产丝袜一区视频在线观看| 香蕉久久国产av一区二区| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲二区三区不卡| 精品一区二区成人免费视频| free性护士videos欧美| 欧美亚洲第一区| 第四色亚洲色图| 欧美精品第1页| www.国产免费| 国产精品色哟哟| 视频这里只有精品| 丝袜亚洲另类欧美综合| 污网站在线免费| 欧美精品momsxxx| 亚洲日本精品一区| 亚洲伊人av| 国产精品久在线观看| 色播在线视频| 国产亚洲视频在线观看| 高清国产免费| 欧美视频你懂的| www香蕉视频| 国产精品伦一区二区三级视频| 四虎永久免费地址| 免费人成黄页网站在线一区二区| 亚洲自拍偷拍福利| 国产一级免费在线观看| 久久精品国产精品亚洲| 可以免费观看的黄色网址| 欧美美女黄视频| 欧洲成人一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 久久亚洲av午夜福利精品一区| 久久国产生活片100| 亚洲av无码专区在线播放中文| 97久久夜色精品国产| 男人添女人下面高潮视频| 亚洲啊v在线免费视频| 欧美日韩国产综合在线| av影片在线| 国产日韩精品电影| 18视频免费网址在线观看| 久久久免费观看视频| 最新黄色片网站| 国产亚洲欧美aaaa| 日本黄色免费网址| 日韩午夜av一区| 热re66久久精品国产99热| 色婷婷综合五月| 亚洲不卡免费视频| 亚洲欧美国产高清| 青娱乐在线免费视频| 国产婷婷精品av在线| 亚洲免费激情视频| 99免费精品视频| 天天干中文字幕| 国产成人在线免费| 波兰性xxxxx极品hd| 精品一区二区三区在线视频| 免费成人深夜夜行p站| 香蕉亚洲视频| 东京热av一区| 国产日韩精品视频一区二区三区| 色一情一区二区三区| 欧美肥老太太性生活| 美女喷白浆视频| 亚洲成人国产| 激情图片中文字幕| 国产精品www994| 午夜福利123| 欧美人成在线| 国产乱码一区二区三区四区| 亚洲色图网站| 少妇愉情理伦片bd| 亚洲美女一区| 日本黄色免费观看| 日韩电影在线免费看| 国产精品无码一区二区三区| 日韩精品福利网| 性欧美精品中出| 韩日欧美一区二区三区| 天堂av免费在线| 国产成人高清| 精品国偷自产一区二区三区| 免费观看久久av| 国产二区视频在线播放| 精品久久视频| 在线观看的毛片| 欧美婷婷在线| 男男一级淫片免费播放| 日韩av在线播放中文字幕| 精品一区二区6| 丁香六月综合激情| 日本在线视频免费| 中文字幕乱码亚洲精品一区| 中文字幕精品在线观看| 图片区小说区区亚洲影院| 五月婷婷免费视频| 4438亚洲最大| 柠檬在线导航福利| 中文字幕欧美日韩va免费视频| 日本视频二区| 2019中文在线观看| 麻豆视频在线播放| av成人综合网| 开心久久婷婷综合中文字幕| 热这里只有精品| 国产欧美一区二区精品久久久| 一区二区三区 日韩| 国产视频一区三区| 日本人亚洲人jjzzjjz| 不卡一区二区在线| 九色porn蝌蚪| 亚洲五码中文字幕| 可以免费观看的毛片| 欧洲中文字幕精品| 好妞色妞国产在线视频| 亚洲第一视频网站| 麻豆资源在线| 欧美美女18p| a天堂在线资源| 91在线免费看网站| 懂色aⅴ精品一区二区三区| 女女同性女同一区二区三区按摩| 精品在线观看入口| 午夜av中文字幕| 欧美bbbbb| 久久免费视频99| 亚洲日本乱码在线观看| 天天综合天天综合| 亚洲成在人线av| 黄动漫在线免费观看| 国产精品久久视频| 成人看片在线观看| 国产情侣第一页| 欧美/亚洲一区| 手机av免费看| 99久久久无码国产精品| 亚洲综合五月天婷婷丁香| 日本韩国欧美在线| 你懂的免费视频| 欧美成人午夜激情在线| 久做在线视频免费观看| 久久久久久国产精品一区| 99久久免费精品国产72精品九九| 免费日韩中文字幕| 米奇777在线欧美播放| 欧美人妻精品一区二区免费看| 亚洲特级片在线| 四虎永久免费| 亚洲欧洲日本专区| 看电影就来5566av视频在线播放| 国产99视频精品免费视频36| 91亚洲大成网污www| 日韩视频 中文字幕| 99久久亚洲精品| 人人妻人人澡人人爽人人精品| 丁香婷婷综合色啪| 国产情侣在线播放| 日韩欧美国产午夜精品| h色视频在线观看| 成人有码在线播放| 欧美经典一区| 亚洲久久中文字幕| 国产麻豆午夜三级精品| 亚洲精品一区二区二区| 欧美色电影在线| 国产激情二区| 亚洲bt天天射| 女同一区二区三区| 三级视频网站在线观看| 91老司机福利 在线| 成人久久久精品国产乱码一区二区| 欧美精品一区男女天堂| 欧美精品少妇| 久久久久久九九九九| 欧美gay男男猛男无套| 女人裸体性做爰全过| 亚洲自拍与偷拍| 免费看黄色网| 国产精品91在线观看| 电影一区二区三区久久免费观看| 亚洲国产精品久久人人爱蜜臀| 欧美黄片一区二区三区| 一区二区视频在线看| 美女被草91| 91精品国产乱码久久久久久蜜臀| 在线成人视屏| 日本久久精品一区二区| 国产精品亚洲成人| 亚洲成人中文字幕在线| 亚洲男人天堂2024| 国产在线观看91| www.激情网| 日本成人中文字幕| 91禁在线观看| 日韩黄色av网站| 成人午夜在线影视| 9色porny| 麻豆成人久久精品二区三区红 | 国产欧美久久久精品影院| 欧美大交乱xxxx| 69精品小视频| 久久久91麻豆精品国产一区| 亚洲精品乱码久久久久久蜜桃图片| 日本一区二区免费在线观看视频| 国产视频你懂的| 日韩av免费一区| 国产精品17p| www色com| 欧美日韩国产专区| 高清中文字幕在线| 成人蜜桃视频| 国产精品传媒精东影业在线| 精品少妇久久久久久888优播| 欧美日韩的一区二区| 日韩一二三四| 亚洲最新免费视频| 99re在线精品| 中文娱乐网av| 欧美激情久久久久久| 国产一区二区色噜噜| 被黑人猛躁10次高潮视频| 国产精品少妇自拍| 免费看h片网站| 亚洲最大成人免费视频| 99久久九九| 国偷自拍第113页| 亚洲第一精品自拍| 日本片在线看| 午夜久久久精品| 国产精品丝袜91| av福利网址网站| 精品久久蜜桃| 亚洲神马久久| 国产www视频| 久久久久久久久久国产精品| 视频在线一区| 久久噜噜色综合一区二区| 欧美丰满高潮xxxx喷水动漫|