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

標題: 新人求教 單片機測速仿真不行 顯示000 [打印本頁]

作者: asd00022333    時間: 2017-5-17 21:26
標題: 新人求教 單片機測速仿真不行 顯示000

  1. #include <reg52.h>                 
  2. #define uchar unsigned char         
  3. #define uint  unsigned int        
  4. sbit clk = P1^3;          //ds1302
  5. sbit io =  P1^4;         
  6. sbit rst = P1^5;         
  7.                                                 //秒  分   時   日   月  年   星期         
  8. uchar code write_add[]={0x80,0x82,0x84,0x86,0x88,0x8c,0x8a};   //寫地址
  9. uchar code read_add[] ={0x81,0x83,0x85,0x87,0x89,0x8d,0x8b};   //讀地址
  10. uchar code init_ds[]  ={0x55,0x17,0x15,0x01,0x01,0x13,0x13};   
  11. uchar miao,fen,shi,ri,yue,week,nian;
  12. uchar i;

  13. uchar t1_num,t2_num;        //計時間中斷的次數
  14. unsigned long speed1,juli,time2;
  15. float f_hz        ,speed_km,speed_m;

  16. uchar TH11,TL11;
  17. uchar flag_en;   //開始計算速度使能
  18. uchar flag_stop_en;   //要確定車子是否停下了

  19. uint juli_s;             //每秒走的距離
  20. uint juli_z;         //總路程
  21. float zhijing = 0.15;  //直徑 0.55M
  22. uint s_zhijing = 15;

  23. bit flag_1s = 1;             //1s
  24. uchar menu_1;        //菜單設置變量
  25. uchar menu_2;        //菜單設置變量

  26. long zong_lc;        //總量程

  27. uchar flag_200ms;
  28. uint shudu;   //定義速度的變量
  29. uint bj_shudu = 40;         //報警速度


  30. //這三個引腳參考資料
  31. sbit rs=P1^0;         //LCD
  32. sbit rw=P1^1;
  33. sbit e =P1^2;         

  34. uchar code table_num[]="0123456789abcdefg";
  35. uchar i;

  36. sbit beep = P3^7;   //蜂鳴器IO口定義



  37. /******************1ms 延時函數*******************/
  38. void delay_1ms(uint q)
  39. {
  40.         uint i,j;
  41.         for(i=0;i<q;i++)
  42.                 for(j=0;j<120;j++);
  43. }


  44. /********************************************************************
  45. * 名稱 : delay_uint()
  46. * 功能 : 小延時。
  47. * 輸入 : 無
  48. * 輸出 : 無
  49. ***********************************************************************/
  50. void delay_uint(uint q)
  51. {
  52.         while(q--);
  53. }

  54. /********************************************************************
  55. * 名稱 : write_com(uchar com)
  56. * 功能 : 1602命令函數
  57. * 輸入 : 輸入的命令值
  58. * 輸出 : 無
  59. ***********************************************************************/
  60. void write_com(uchar com)
  61. {
  62.         i =0;
  63.         e=0;
  64.         rs=0;
  65.         rw=0;
  66.         P0=com;
  67.         delay_uint(3);
  68.         e=1;
  69.         delay_uint(25);
  70.         e=0;
  71. }

  72. /********************************************************************
  73. * 名稱 : write_data(uchar dat)
  74. * 功能 : 1602寫數據函數
  75. * 輸入 : 需要寫入1602的數據
  76. * 輸出 : 無
  77. ***********************************************************************/
  78. void write_data(uchar dat)
  79. {
  80.         i =0;
  81.         e=0;
  82.         rs=1;
  83.         rw=0;
  84.         P0=dat;
  85.         delay_uint(3);
  86.         e=1;
  87.         delay_uint(25);
  88.         e=0;        
  89. }

  90. /********************************************************************
  91. * 名稱 : write_sfm2(uchar hang,uchar add,uchar date)
  92. * 功能 : 顯示2位十進制數,如果要讓第一行,第五個字符開始顯示"23" ,調用該函數如下
  93.                   write_sfm1(1,5,23)
  94. * 輸入 : 行,列,需要輸入1602的數據
  95. * 輸出 : 無
  96. ***********************************************************************/
  97. void write_sfm2(uchar hang,uchar add,uint date)
  98. {
  99.         if(hang==1)   
  100.                 write_com(0x80+add);
  101.         else
  102.                 write_com(0x80+0x40+add);
  103.         write_data(0x30+date/10%10);
  104.         write_data(0x30+date%10);        
  105. }

  106. /********************************************************************
  107. * 名稱 : write_sfm4(uchar hang,uchar add,uchar date)
  108. * 功能 : 顯示2位十進制數,如果要讓第一行,第五個字符開始顯示"23" ,調用該函數如下
  109.                   write_sfm1(1,5,23)
  110. * 輸入 : 行,列,需要輸入1602的數據
  111. * 輸出 : 無
  112. ***********************************************************************/
  113. void write_sfm4(uchar hang,uchar add,uint date)
  114. {
  115.         if(hang==1)   
  116.                 write_com(0x80+add);
  117.         else
  118.                 write_com(0x80+0x40+add);
  119.         write_data(0x30+date/10000%10);
  120.         write_data(0x30+date/1000%10);
  121.         write_data(0x30+date/100%10);        
  122.         write_data(0x30+date/10%10);
  123.         write_data(0x30+date%10);        
  124.         write_data('k');        
  125.         write_data('m');        
  126. }

  127. void write_sfm7(uchar hang,uchar add,uint date)
  128. {
  129.         if(hang==1)   
  130.                 write_com(0x80+add);
  131.         else
  132.                 write_com(0x80+0x40+add);
  133.         write_data(0x30+date/100000%10);
  134.         write_data(0x30+date/100000%10);
  135.         write_data(0x30+date/10000%10);
  136.         write_data(0x30+date/1000%10);
  137.         write_data('.');        
  138.         write_data(0x30+date/100%10);        
  139.         write_data(0x30+date/10%10);
  140.         write_data('k');        
  141.         write_data('m');        
  142. }

  143. /***********************lcd1602上顯示兩位十進制數************************/
  144. void write_sfm1(uchar hang,uchar add,uchar date)
  145. {
  146.         if(hang==1)   
  147.                 write_com(0x80+add);
  148.         else
  149.                 write_com(0x80+0x40+add);
  150.         write_data(0x30+date % 10);        
  151. }


  152. /********************************************************************
  153. * 名稱 : write_string(uchar hang,uchar add,uchar *p)
  154. * 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示"ab cd ef" ,調用該函數如下
  155.                   write_string(1,5,"ab cd ef;")
  156. * 輸入 : 行,列,需要輸入1602的數據
  157. * 輸出 : 無
  158. ***********************************************************************/
  159. void write_string(uchar hang,uchar add,uchar *p)
  160. {
  161.         if(hang==1)   
  162.                 write_com(0x80+add);
  163.         else
  164.                 write_com(0x80+0x40+add);
  165.                 while(1)
  166.                 {
  167.                         if(*p == '\0')  break;
  168.                         write_data(*p);
  169.                         p++;
  170.                 }        
  171. }


  172. /***********************lcd1602上顯示兩位十進制數************************/
  173. void write_sfm2_ds1302(uchar hang,uchar add,uchar date)
  174. {
  175.         if(hang==1)   
  176.                 write_com(0x80+add);
  177.         else
  178.                 write_com(0x80+0x40+add);
  179.         write_data(table_num[date / 16]);
  180.         write_data(table_num[date % 16]);        
  181. }

  182. /*****************控制光標函數********************/
  183. void write_guanbiao(uchar hang,uchar add,uchar date)
  184. {               
  185.         if(hang==1)   
  186.                 write_com(0x80+add);
  187.         else
  188.                 write_com(0x80+0x40+add);
  189.         if(date == 1)
  190.                 write_com(0x0f);     //顯示光標并且閃爍        
  191.         else
  192.                 write_com(0x0c);   //關閉光標
  193. }         



  194. /********************************************************************
  195. * 名稱 : init_1602()
  196. * 功能 : 初始化1602液晶
  197. * 輸入 : 無
  198. * 輸出 : 無
  199. ***********************************************************************/
  200. void init_1602()      //1602初始化
  201. {
  202.         write_com(0x38);
  203.         write_com(0x0c);
  204.         write_com(0x06);
  205.         delay_uint(1000);
  206.         write_string(1,0,"sd:00km/h  00:00");               
  207.         write_string(2,0,"lc:00.00km      ");        
  208. }

  209. /*************寫一個數據到對應的地址里***************/
  210. void write_ds1302(uchar add,uchar dat)
  211. {               
  212.         rst = 1;                         //把復位線拿高
  213.         for(i=0;i<8;i++)
  214.         {                                     //低位在前
  215.                 clk = 0;                 //時鐘線拿低開始寫數據
  216.                 io = add & 0x01;            
  217.                 add >>= 1;                 //把地址右移一位
  218.                 clk = 1;                 //時鐘線拿高
  219.         }        
  220.         for(i=0;i<8;i++)
  221.         {
  222.                 clk = 0;                 //時鐘線拿低開始寫數據
  223.                 io = dat & 0x01;
  224.                 dat >>= 1;                 //把數據右移一位
  225.                 clk = 1;                 //時鐘線拿高
  226.         }
  227.         rst = 0;                         //復位線合低
  228.         clk = 0;
  229.         io = 0;
  230. }

  231. /*************從對應的地址讀一個數據出來***************/
  232. uchar read_ds1302(uchar add)
  233. {
  234.         uchar value,i;
  235.         rst = 1;                         //把復位線拿高
  236.         for(i=0;i<8;i++)
  237.         {                                     //低位在前
  238.                 clk = 0;                 //時鐘線拿低開始寫數據
  239.                 io = add & 0x01;            
  240.                 add >>= 1;                 //把地址右移一位
  241.                 clk = 1;                 //時鐘線拿高
  242.         }               
  243.         for(i=0;i<8;i++)
  244.         {
  245.                 clk = 0;                 //時鐘線拿低開始讀數據
  246.                 value >>= 1;
  247.                 if(io == 1)
  248.                         value |= 0x80;
  249.                 clk = 1;                 //時鐘線拿高
  250.         }
  251.         rst = 0;                         //復位線合低
  252.         clk = 0;
  253.         io = 0;
  254.         return value;                 //返回讀出來的數據
  255. }



  256. /*************把要的時間 年月日 都讀出來***************/
  257. void read_time()
  258. {
  259.         miao = read_ds1302(read_add[0]);        //讀秒
  260.         fen  = read_ds1302(read_add[1]);        //讀分
  261.         shi  = read_ds1302(read_add[2]);        //讀時
  262.         ri   = read_ds1302(read_add[3]);        //讀日
  263.         yue  = read_ds1302(read_add[4]);        //讀月
  264.         nian = read_ds1302(read_add[5]);        //讀年
  265.         week = read_ds1302(read_add[6]);        //讀星期
  266. }

  267. /*************把要寫的時間 年月日 都寫入ds1302里***************/
  268. void write_time()
  269. {
  270.         write_ds1302(0x8e,0x00);                        //打開寫保護
  271.         write_ds1302(write_add[0],miao);        //寫秒
  272.         write_ds1302(write_add[1],fen);                //寫分
  273.         write_ds1302(write_add[2],shi);                //寫時
  274.         write_ds1302(write_add[3],ri);                //寫日
  275.         write_ds1302(write_add[4],yue);                //寫月
  276.         write_ds1302(write_add[5],nian);        //寫星期
  277.         write_ds1302(write_add[6],week);        //寫年
  278.         write_ds1302(0x8e,0x80);                        //關閉寫保護
  279. }

  280. /*************定時器0初始化程序***************/
  281. void init_1602_ds1302()
  282. {
  283.         write_sfm2_ds1302(1,11,shi);        
  284.         write_sfm2_ds1302(1,14,fen);        
  285. }

  286. /***********外部中斷0初始化程序****************/
  287. void init_int0()
  288. {
  289.         EX0=1;                          //允許外部中斷0中斷
  290.         EA=1;                           //開總中斷
  291.         IT0 = 1;                   //外部中斷0負跳變中斷
  292. }


  293. /*************定時器0初始化程序***************/
  294. void time_init()          //定時器0初始化程序
  295. {
  296.         EA   = 1;                   //開總中斷
  297.         TMOD = 0X11;          //定時器0、工作方式1
  298.         ET0  = 1;                  //開定時器0中斷
  299.         TR0  = 1;                  //允許定時器0定時
  300.         ET1  = 1;                  //開定時器1中斷
  301.         TR1  = 1;                  //允許定時器1定時
  302. }


  303. /***********計算速度函數**************/
  304. void menu_dis()          //計算速度函數
  305. {
  306.         static uchar value;
  307.         if(menu_1 == 0)
  308.         {        
  309.                 if(flag_1s == 1)   
  310.                 {        
  311.                         flag_1s = 0;                 
  312.                         if(flag_en == 0)
  313.                         {
  314.                                 value ++;
  315.                                 if(value >= 3)        //2秒
  316.                                 {        
  317.                                         speed_km = 0;  //速度為0
  318.                                         shudu = (uint)speed_km;        
  319.                                         value = 0;                                
  320.                                 }
  321.                         }
  322.                         if((flag_en == 1))
  323.                         {        
  324.                                 value = 0;               
  325.                                 flag_en = 0;         
  326.                                  //1s = 1 / 1000000us;          // 1m/s=0.001km除以1/3600h=3.6km/h                        
  327.                                 f_hz = 1/(t2_num * 65536.0 + TH11 * 256 + TL11) / 1000000 ;  //算出來就是秒
  328.                                 t2_num = 0;        //把變量清零
  329.                                 TH11 = 0;
  330.                                 TL11 = 0;                                          
  331.                                 speed_m = f_hz * zhijing * 3.14/4  ;        //算出來的是m/s
  332.                                 juli_z = (juli_z + (uint)speed_m) ;        //總路程m        
  333.                                 speed_km = speed_m * 3.6 ;        //(帶個小數點) km/s               
  334.                             shudu = (uint)speed_km;
  335.                                 zong_lc += speed_m;
  336.                         }               
  337.                         write_sfm2(1,3,shudu);               
  338.                         write_sfm4(2,3,juli_z);        

  339.                 }
  340.         }
  341. }

  342. /********************獨立按鍵程序*****************/
  343. uchar key_can;         //按鍵值

  344. void key()         //獨立按鍵程序
  345. {
  346.         static uchar key_new;
  347.         key_can = 20;                   //按鍵值還原
  348.         P3 |= 0x78;                     //對應的按鍵IO口輸出為1
  349.         if((P3 & 0x78) != 0x78)                //按鍵按下
  350.         {
  351.                 delay_1ms(1);                     //按鍵消抖動
  352.                 if(((P3 & 0x78) != 0x78) && (key_new == 1))
  353.                 {                                                //確認是按鍵按下
  354.                         key_new = 0;
  355.                         switch(P3 & 0x78)
  356.                         {
  357.                                 case 0x70:  key_can = 4;  break;         //得到按鍵值
  358.                                 case 0x68:  key_can = 3;  break;         //得到按鍵值
  359.                                 case 0x58:  key_can = 2;  break;         //得到按鍵值
  360.                                 case 0x38:  key_can = 1;  break;         //得到按鍵值
  361.                         }
  362.                 }                        
  363.         }
  364.         else
  365.                 key_new = 1;        
  366. }


  367. /**********************設置函數************************/
  368. void key_with()
  369. {
  370.         if(key_can == 1)        //設置鍵
  371.         {
  372.                 menu_1++;
  373.                 if(menu_1 == 1)          //設置時間
  374.                 {
  375.                         menu_2 = 1;
  376.                         write_string(1,0,"    :  :    W:  ");                        
  377.                         write_string(2,0," 20  -  -       ");        
  378.                 }
  379.                 if(menu_1 == 2)          //設置報警速度
  380.                 {
  381.                         menu_2 = 1;
  382.                         write_string(1,0,"set-sd:00km/h   ");                        
  383.                         write_string(2,0,"zlc:             ");        
  384.                 }
  385.                 if(menu_1 == 3)          //設置直徑
  386.                 {
  387.                         menu_2 = 1;
  388.                         write_string(1,0,"  Set Zhijing  ");                        
  389.                         write_string(2,0,"               ");        
  390.                 }
  391.                 menu_2 = 1;

  392.                 if(menu_1 > 2)    //回到正常顯示
  393.                 {
  394.                         menu_1 = 0;
  395.                         write_guanbiao(1,2,0);          //關閉光標
  396.                         init_1602();      //1602初始化     //初始化液晶顯示               
  397.                 }
  398.         }
  399.         if(key_can == 2)        //選擇鍵
  400.         {
  401.                 if(menu_1 == 1)                  //設置時間
  402.                 {
  403.                         menu_2 ++;
  404.                         if(menu_2 > 7)
  405.                                 menu_2 = 1;
  406.                 }
  407.                 if(menu_1 == 2)                 //設置
  408.                 {
  409.                         menu_2 ++;
  410.                         if(menu_2 > 2)
  411.                                 menu_2 = 1;                                
  412.                 }

  413.         }
  414.         if(menu_1 == 1)
  415.         {
  416.                 if(menu_2 == 1)                  //設置時
  417.                 {
  418.                         if(key_can == 3)        //加
  419.                         {
  420.                                 shi+=0x01;
  421.                                 if((shi & 0x0f) >= 0x0a)
  422.                                         shi = (shi & 0xf0) + 0x10;
  423.                                 if(shi >= 0x24)
  424.                                         shi = 0;
  425.                         }               
  426.                         if(key_can == 4)        //減
  427.                         {
  428.                                 if(shi == 0x00)
  429.                                         shi = 0x24;
  430.                                 if((shi & 0x0f) == 0x00)
  431.                                         shi = (shi | 0x0a) - 0x10;
  432.                                 shi -- ;
  433.                         }                                          
  434.                 }
  435.                 if(menu_2 == 2)                  //設置分
  436.                 {
  437.                         if(key_can == 3)        //加
  438.                         {
  439.                                 fen+=0x01;
  440.                                 if((fen & 0x0f) >= 0x0a)
  441.                                         fen = (fen & 0xf0) + 0x10;
  442.                                 if(fen >= 0x60)
  443.                                         fen = 0;
  444.                         }               
  445.                         if(key_can == 4)        //減         
  446.                         {
  447.                                 if(fen == 0x00)
  448.                                         fen = 0x5a;
  449.                                 if((fen & 0x0f) == 0x00)
  450.                                         fen = (fen | 0x0a) - 0x10;
  451.                                 fen -- ;
  452.                         }        
  453.                 }
  454.                 if(menu_2 == 3)                  //設置秒
  455.                 {
  456.                         if(key_can == 3)        //加
  457.                         {
  458.                                 miao+=0x01;
  459.                                 if((miao & 0x0f) >= 0x0a)
  460.                                         miao = (miao & 0xf0) + 0x10;
  461.                                 if(miao >= 0x60)
  462.                                         miao = 0;
  463.                         }        
  464.                         if(key_can == 4)        //減         
  465.                         {
  466.                                 if(miao == 0x00)
  467.                                         miao = 0x5a;
  468.                                 if((miao & 0x0f) == 0x00)
  469.                                         miao = (miao | 0x0a) - 0x10;
  470.                                 miao -- ;                        
  471.                         }
  472.                 }
  473.                 if(menu_2 == 4)                  //設置星期
  474.                 {
  475.                         if(key_can == 3)        //加
  476.                         {
  477.                             week+=0x01;
  478.                                 if((week & 0x0f) >= 0x0a)
  479.                                         week = (week & 0xf0) + 0x10;
  480.                                 if(week >= 0x08)
  481.                                         week = 1;
  482.                         }               
  483.                         if(key_can == 4)        //減         
  484.                         {
  485.                                 if(week == 0x01)
  486.                                         week = 0x08;
  487.                                 if((week & 0x0f) == 0x00)
  488.                                         week = (week | 0x0a) - 0x10;
  489.                                 week -- ;
  490.                         }        
  491.                 }
  492.                 if(menu_2 == 5)                  //設置年
  493.                 {
  494.                         if(key_can == 3)        //加
  495.                         {
  496.                             nian+=0x01;
  497.                                 if((nian & 0x0f) >= 0x0a)
  498.                                         nian = (nian & 0xf0) + 0x10;
  499.                                 if(nian >= 0x9a)
  500.                                         nian = 1;
  501.                         }               
  502.                         if(key_can == 4)        //減         
  503.                         {
  504.                                 if(nian == 0x01)
  505.                                         nian = 0x9a;
  506.                                 if((nian & 0x0f) == 0x00)
  507.                                         nian = (nian | 0x0a) - 0x10;
  508.                                 nian -- ;               
  509.                         }        
  510.                 }
  511.                 if(menu_2 == 6)                  //設置月
  512.                 {
  513.                         if(key_can == 3)        //加
  514.                         {
  515.                             yue+=0x01;
  516.                                 if((yue & 0x0f) >= 0x0a)
  517.                                         yue = (yue & 0xf0) + 0x10;
  518.                                 if(yue >= 0x13)
  519.                                         yue = 1;
  520.                         }               
  521.                         if(key_can == 4)        //減         
  522.                         {
  523.                                 if(yue == 0x01)
  524.                                         yue = 0x13;
  525.                                 if((yue & 0x0f) == 0x00)
  526.                                         yue = (yue | 0x0a) - 0x10;
  527.                                 yue -- ;                                       
  528.                         }        
  529.                 }
  530.                 if(menu_2 == 7)                  //設置日
  531.                 {
  532.                         if(key_can == 3)        //加
  533.                         {
  534.                     ri+=0x01;
  535.                         if((ri & 0x0f) >= 0x0a)
  536.                                 ri = (ri & 0xf0) + 0x10;
  537.                         if(ri >= 0x32)
  538.                                 ri = 0;                        
  539.                         }               
  540.                         if(key_can == 4)        //減         
  541.                         {
  542.                                 if(ri == 0x01)
  543.                                         ri = 0x32;
  544.                                 if((ri & 0x0f) == 0x00)
  545.                                         ri = (ri | 0x0a) - 0x10;
  546.                                 ri -- ;                        
  547.                         }        
  548.                 }
  549.                 write_sfm2_ds1302(1,2,shi);           //顯示時
  550.                 write_sfm2_ds1302(1,5,fen);           //顯示分
  551.                 write_sfm2_ds1302(1,8,miao);           //顯示秒
  552.                 write_sfm1(1,14,week);           //顯示星期                                       
  553.                 write_sfm2_ds1302(2,3,nian);           //顯示年
  554.                 write_sfm2_ds1302(2,6,yue);           //顯示月
  555.                 write_sfm2_ds1302(2,9,ri);           //顯示日
  556.                 switch(menu_2)           // 光標顯示
  557.                 {
  558.                         case 1:  write_guanbiao(1,2,1);  break;
  559.                         case 2:  write_guanbiao(1,5,1);  break;
  560.                         case 3:  write_guanbiao(1,8,1);  break;
  561.                         case 4:  write_guanbiao(1,14,1); break;
  562.                         case 5:  write_guanbiao(2,3,1);  break;
  563.                         case 6:  write_guanbiao(2,6,1);  break;
  564.                         case 7:  write_guanbiao(2,9,1);  break;
  565.                 }
  566.                 write_time();           //把時間寫進去
  567.         }        

  568.         if(menu_1 == 2)
  569.         {               
  570.                 if(menu_2 == 1)                  //設置速度
  571.                 {
  572.                         if(key_can == 3)        //加
  573.                         {
  574.                                 bj_shudu++;
  575.                                 if(bj_shudu >= 99)
  576.                                         bj_shudu = 99;
  577.                         }        
  578.                         if(key_can == 4)        //減         
  579.                         {
  580.                                 if(bj_shudu != 0)
  581.                                         bj_shudu -- ;                        
  582.                         }
  583.                 }        
  584.                 if(menu_2 == 2)                  //把總量程清零
  585.                 {
  586.                         if(key_can == 3)        
  587.                         {
  588.                                 zong_lc= 0;
  589.                         }        
  590.                         if(key_can == 4)                  
  591.                         {
  592.                                 zong_lc= 0;                        
  593.                         }
  594.                 }        


  595.                 write_sfm2(1,7,bj_shudu);   //顯示報警速度
  596.                 write_sfm7(2,4,zong_lc);   //顯示
  597.                
  598.                 switch(menu_2)           // 光標顯示
  599.                 {
  600.                         case 1:  write_guanbiao(1,6,1);  break;
  601.                         case 2:  write_guanbiao(2,3,1);  break;
  602.                 }
  603.         }
  604.         if(menu_1 == 3)
  605.         {               
  606.                 if(key_can == 3)        //加
  607.                 {
  608.                         s_zhijing++;
  609.                         if(s_zhijing >= 999)
  610.                                 s_zhijing = 999;
  611.                 }        
  612.                 if(key_can == 4)        //減         
  613.                 {
  614.                         if(s_zhijing != 0)
  615.                                 s_zhijing -- ;                        
  616.                 }
  617.                 zhijing = s_zhijing ;
  618.                 write_sfm2(2,5,s_zhijing);                //顯示
  619.         }
  620. }

  621. /****************報警函數***************/
  622. void clock_h_l()
  623. {
  624.         static uchar value;           
  625.         if((shudu >= bj_shudu))
  626.         {
  627.                 value ++;  //消除實際距離在設定距離左右變化時的干擾
  628.                 {
  629.                         beep = ~beep;           //蜂鳴器報警                        
  630.                 }        
  631.         }
  632.         else
  633.         {
  634.                 beep = 1;        
  635.         }                        
  636. }


  637. /******************主程序**********************/           
  638. void main()
  639. {
  640.         init_1602();      //1602初始化
  641.         init_int0();
  642.         time_init();          //定時器0初始化程序
  643.         while(1)
  644.         {         //  shudu = 11;
  645.                 key();                         //按鍵程序
  646.                 if(key_can < 10)
  647.                 {
  648.                         key_with();        

  649.                 }
  650.                 if(flag_200ms == 1)
  651.                 {
  652.                         flag_200ms = 0;
  653.                         read_time();                  //讀時間
  654.                         init_1602_ds1302();   //顯示時鐘
  655.                         menu_dis();          //計算速度函數
  656.                         clock_h_l();        //報警函數
  657.                 }
  658.         }
  659. }


  660. /*********************外部中斷0中斷服務程序************************/
  661. void int0() interrupt 0
  662. {
  663.         static uchar value=1;
  664.         switch(value)
  665.         {
  666.                 case 0:
  667.                         t1_num = 0;                 //第一次就把變量清零
  668.                         TH1 = 0;
  669.                         TL1 = 0;
  670.                         break;
  671.                 case 1:
  672.                                 t2_num = t1_num;  //保存
  673.                                 TH11 = TH1;
  674.                                 TL11 = TL1;
  675.                                 flag_en = 1;
  676.                         break;
  677.         }               
  678. }

  679. /*************定時器0中斷服務程序***************/
  680. void time0_int() interrupt 1
  681. {        
  682.         static uchar value=1;
  683.         TH0 = 0x3c;
  684.         TL0 = 0xb0;     // 50ms
  685.         value++;
  686.         if(value % 4 == 0)
  687.                 flag_200ms = 1;

  688.         if(value >= 20)  //1秒   才是一秒鐘的速度
  689.         {
  690.                 value = 0;
  691.                 flag_1s = 1;
  692.         }
  693. }

  694. /*************定時器1中斷服務程序***************/
  695. void time1_int() interrupt 3
  696. {
  697.         t1_num++;
  698. }

復制代碼






歡迎光臨 (http://www.izizhuan.cn/bbs/) Powered by Discuz! X3.1
17videosex性欧美| 欧美日韩国产首页在线观看| 韩国精品免费视频| 老司机一区二区三区| 欧美黄色精品| 国内久久视频| 欧美日本一区二区视频在线观看| 欧美va久久久噜噜噜久久| 国产日韩欧美一区二区三区| 精品成av人一区二区三区| 亚洲va久久久噜噜噜久久| 国产欧美一区二区三区精品观看| 久草精品在线| 香蕉视频官网在线观看日本一区二区| 天天做综合网| 亚洲美女啪啪| 日本成人在线不卡视频| 国产乱人伦偷精品视频不卡| 丁香婷婷综合色啪| 99国产精品国产精品毛片| proumb性欧美在线观看| 国产日韩av一区二区| 亚洲日本在线看| 欧美日韩激情视频8区| 天天综合天天做天天综合| 日本韩国精品在线| 欧美成人福利视频| 亚洲色图18p| 欧美激情综合色| 国产精品美女久久久久av超清| 成人亲热视频网站| 国产一区免费视频| 中日韩在线视频| 男人的天堂狠狠干| 成人综合久久网| 国产熟妇久久777777| 欧美日韩三级在线观看| 性高潮视频在线观看| 黄频网站在线观看| 国产成人精品一区二区免费视频| a级免费观看| 亚洲成人男人天堂| √最新版天堂资源网在线| 亚洲国产伊人| 欧美日韩国产在线观看网站| 一区二区三区导航| 不卡区在线中文字幕| 一级女性全黄久久生活片免费| 91传媒视频在线播放| 亚洲精品电影久久久| 欧美黑人性视频| 91视频婷婷| 成人污网站在线观看| 日韩成人精品视频在线观看| 欧美性xxxx图片| 国产超碰人人爽人人做人人爱| 亚洲精品久久久久久久久久久久久久 | 日本a在线免费观看| 中文字幕 日韩 欧美| 亚洲欧洲久久久| 无码人妻一区二区三区线| 亚洲色图一二三区| 黄网站免费观看| 牛牛电影国产一区二区| 欧美男人操女人视频| 久久精品官网| 国产精品久久久久久妇女6080 | 欧美老少做受xxxx高潮| 91成人免费在线观看| 国产视频在线观看网站| 中文字幕三级电影| 中国女人真人一级毛片| 成人亚洲国产| 在线激情小视频| 大桥未久女教师av一区二区| 男人天堂欧美日韩| 亚洲精品美腿丝袜| 国产丝袜一区二区三区免费视频| 国产精品精品久久久| 国产a级黄色大片| 国产特级黄色录像| 丰满人妻一区二区| 亚洲精品一区二区| 激情欧美一区二区三区黑长吊| 亚洲综合自拍| 国产清纯美女被跳蛋高潮一区二区久久w | 亚州av中文字幕在线免费观看| 人在线成免费视频| 亚洲影视一区| 久久久美女毛片| 日韩欧美国产精品| 国产精品久久久久影院日本| 丁香婷婷综合激情| 潘金莲一级黄色片| 亚欧在线观看视频| 午夜视频在线观看韩国| 国产精品毛片aⅴ一区二区三区| 伊人久久亚洲影院| 亚洲精品视频一区| zzjj国产精品一区二区| 欧美日韩精品不卡| 日本一卡二卡在线| 国产超碰人人模人人爽人人添| 电影天堂最新网址| 日韩三级成人| 精品一区二区三区在线观看国产| 在线观看日韩毛片| 国产ts人妖一区二区三区| 国产成人一区二区三区别| 午夜激情福利网| 国产免费一级| 国内激情视频在线观看| 欧美日韩亚洲一区二区三区在线| 国产精品理论片在线观看| 亚洲香蕉在线观看| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 国产成人午夜电影网| 欧美日韩五月天| 国产精品视频成人| 欧美在线aaa| 国产又粗又猛视频| 资源视频在线播放免费| 欧美人妖在线观看| 久久精品视频一区二区| 伊人青青综合网站| 日韩视频在线观看视频| 欧美日韩在线国产| 操操操日日日| 美女精品视频在线| 99国产欧美久久久精品| 亚洲天堂一区二区三区| 亚洲免费精品视频| 毛片a片免费观看| h在线免费观看| 99视频这里有精品| 成人免费视频app| 亚洲人成电影网站色xx| 一区二区精品在线| 国产亚洲欧美精品久久久www| 狠狠擦狠狠操| 色播一区二区| 2020国产成人综合网| 色综合影院在线| 97在线国产视频| 9i精品福利一区二区三区| 亚州黄色一级| 99热国内精品| 欧美色欧美亚洲高清在线视频| 国产精品夜间视频香蕉| 五月天激情小说| 精品视频一区二区观看| 国产精品伦一区二区| 高清在线观看日韩| 日韩在线激情视频| 久久久久久久久久福利| 午夜精品久久久久久久99热黄桃 | 久久99久久久久久久噜噜| 中文字幕无码精品亚洲资源网久久| 欧美午夜理伦三级在线观看| 懂色av中文一区二区三区| 精品国产成人在线影院| 欧美一区二区在线视频观看| caoporn91| 四虎黄色影院| 日韩精选在线| 亚洲成人黄色影院| 国产在线观看一区二区三区| 久久久久久久久免费看无码 | 亚洲综合精品视频| 成人午夜在线影视| 狠狠狠色丁香婷婷综合激情| 亚洲视频专区在线| 亚洲福利视频专区| 日韩美女一区| 日韩手机在线视频| 91大神在线网站| 日韩va亚洲va欧美va久久| 亚洲精品二三区| 精品少妇一区二区三区在线| 免费国产黄色片| 韩国成人漫画| 91麻豆6部合集magnet| 久久频这里精品99香蕉| 亚洲啪av永久无码精品放毛片 | 久久亚洲一区二区三区四区| 97在线免费观看| 免费看黄色aaaaaa 片| 4hu最新网址| 久久精品高清| 日韩午夜av一区| 日韩精品一区二区免费| www.天堂在线| 成人综合网站| 一区二区三区小说| 精品一区二区三区国产| 成人毛片一区二区三区| 欧美黑人猛交的在线视频| 国产成人三级在线观看| 国内精品中文字幕| 第一次破处视频| 一级片在线免费看| 久久只有精品| 美日韩在线视频| 182在线视频| 日日噜噜夜夜狠狠视频| 国产精品美女| 日韩中文在线中文网在线观看| 亚洲 自拍 另类 欧美 丝袜| 91九色porny视频| 在线免费观看欧美| 丝袜美腿精品国产二区| 久久人人爽人人人人片| 一个人看的www一区| 久草精品在线观看| 5278欧美一区二区三区| 永久免费看mv网站入口| 第一视频专区在线| av不卡在线观看| 亚洲自拍偷拍福利| 久久这里只有精品9| 欧美三区四区| 欧美性xxxx18| www.夜夜爱| 国产精品国产三级国产试看| 久久综合成人| 在线精品视频视频中文字幕| 中文字幕在线视频播放| 最新av在线网站| 国产成人免费av在线| 国产在线视频不卡| 一区二区乱子伦在线播放| 国产精品99| 欧美丝袜丝交足nylons图片| 国产aaa一级片| 爱爱网站免费| 日本女优在线视频一区二区| 日本成人激情视频| 伊人手机在线视频| 亚洲精品国产嫩草在线观看| 欧美性极品xxxx娇小| 精品99在线视频| 性直播在线观看| 国产一区二区三区免费在线观看| 91精品久久久久久久久青青| 中文字幕日本视频| 亚洲精品a区| 亚洲第一偷拍网| 天天插天天射天天干| av在线播放av| 亚洲欧美日韩小说| 激情视频小说图片| 玖玖在线视频| 国产在线精品一区二区夜色| 99视频网站| 手机在线精品视频| 色88久久久久高潮综合影院| 波霸ol色综合久久| 久久香蕉精品视频| 成人在线视频观看| 精品欧美黑人一区二区三区| 亚洲观看黄色网| 中文av资源在线| 精品福利在线视频| 亚洲最大综合网| 日韩电影免费| 一区精品在线播放| 日韩中文字幕在线视频观看| a√免费观看在线网址www| 国产福利一区二区三区视频在线| 97伦理在线四区| 又粗又大的机巴好爽欧美| 国产精品综合| 91啪国产在线| 好男人中文字幕官网| 亚洲久久一区| 亚洲自拍av在线| 欧美性活一级视频| 狂野欧美性猛交xxxx巴西| av一区二区三区在线观看| 亚洲激情丁香| 国产精品五区| 9a蜜桃久久久久久免费| 久久久久久日本一区99| 久久一区激情| 精品伦理一区二区三区| 在线免费观看电影网站入口| 精品亚洲porn| 亚洲成人午夜在线| 天天干天天操天天爽| 91麻豆国产精品久久| 少妇久久久久久被弄到高潮| 2021av天天| 中文字幕一区二区在线播放| 成人精品视频一区二区| 精品视频二区| 日本道精品一区二区三区 | 99日在线视频| 成人免费网址| 91精品国产综合久久香蕉麻豆 | 白白色免费视频| 成人黄色毛片| 国产一区二区三区视频| 亚洲精品中文字幕乱码三区91| 国产亚洲电影| 国产福利视频一区二区| 亚洲人成绝费网站色ww| 石原莉奈在线亚洲三区| 日韩精品av一区二区三区| 成年人免费网站| 一区二区三区av电影| av在线播放网址| 亚洲最大的免费视频网站| 久久亚洲国产精品成人av秋霞| 国产日韩欧美视频在线观看| 亚洲在线国产日韩欧美| 久久久久久九九| 成全视频全集| 亚洲午夜av在线| 变态另类丨国产精品| 欧美视频免费看| 久久99久久99精品中文字幕| 人妻与黑人一区二区三区| 久久精品毛片| 免费在线观看污污视频| 伪装者在线观看完整版免费| 日本精品免费观看高清观看| 后入内射无码人妻一区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 美女扒开内裤让男人桶| 国产精品一区二区果冻传媒| 欧美一级欧美一级| 成人区精品一区二区不卡| 日韩av综合中文字幕| 伊人网视频在线| 老司机亚洲精品| 久操手机在线视频| 在线中文字幕-区二区三区四区| 精品成人在线观看| 涩涩视频在线观看| 丝袜脚交一区二区| 韩日视频在线观看| 四虎影视国产在线视频| 亚洲欧洲免费视频| 亚洲精品久久久久久久久久| 国模无码大尺度一区二区三区| 亚洲中文字幕无码av永久| 18av在线视频| 中文字幕国产日韩| 亚洲色图首页| 久久网这里都是精品| 永久免费看片在线观看| 77成人影视| 日韩人妻无码精品久久久不卡| 精品亚洲成a人片在线观看| 在线综合亚洲欧美在线视频| 久久久久亚洲av无码专区| 99精品视频在线观看免费播放| 国产精品美女久久久久av福利| 免费观看羞羞视频网站| 在线亚洲欧美专区二区| 日本a在线观看| 亚洲一区自拍| 成年人网站免费视频| 国产福利电影在线播放| 欧美老女人在线视频| 国产另类图片| 亚洲国产精品久久人人爱| 黄色一级视频免费| 午夜一区二区三区不卡视频| 丁香婷婷综合激情| 欧美日韩精品免费观看视完整| 51色欧美片视频在线观看| 成年黄网站在线观看免费| 日本韩国一区二区| а中文在线天堂| 国产精品一区二区免费不卡 | 亚洲精品wwww| 欧美一级片免费| 欧美激情自拍偷拍| 99精品中文字幕| 99伊人成综合| 热久久精品免费视频| 精品国产一区二区三区性色av | 奇米精品一区二区三区四区| 黄色一级免费大片| 99久久香蕉| 久久香蕉综合色| 3d玉蒲团在线观看| 91av在线不卡| 日本fc2在线观看| 国产视频在线观看一区二区| 精品视频麻豆入口| 日本高清不卡视频| 午夜免费福利视频| 亚洲免费观看高清完整版在线 | 在线观看视频污| 在线观看欧美日韩国产| 十大免费污污软件| 制服丝袜亚洲精品中文字幕| 日本毛片在线观看|