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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

用具有51單片機(jī)內(nèi)核的15W做的自地車路碼表

[復(fù)制鏈接]
ID:217954 發(fā)表于 2017-7-17 21:22 | 顯示全部樓層 |閱讀模式
    15W4K內(nèi)核和51一樣,比51更快存儲(chǔ)更大,資源更多,我的程序更改下定時(shí)器數(shù)值應(yīng)該基本可以在51下運(yùn)行,IAP15可以用片內(nèi)FLASH作用戶EEPROM,我還沒試,所以本路碼表沒有反數(shù)據(jù)存儲(chǔ),過兩天試試 IMG_20170717_202448.jpg
IMG_20170717_202406.jpg IMG_20170717_203343.jpg

單片機(jī)源程序如下:
  1. /******************************************************************************
  2.                         LCD12864液晶并行模式顯示
  3.                 若液晶看不清楚字,請(qǐng)旋轉(zhuǎn)對(duì)比度調(diào)節(jié)的電位器到字清晰為止
  4. ******************************************************************************/
  5. #include "main.h"
  6. #include "delay.h"
  7. #include "lcd12864.h"



  8. /*************        本地變量聲明        **************/
  9. u8 count = 0;



  10.     unsigned char bc_lc[]=("本次: 000.000km");
  11.         unsigned char z_lc[]=("總公里:0000.0km");
  12.         unsigned char speed[]=("速度:00.000KM/H");
  13.         unsigned char sec=0,min=0,hour=0,counter=0;
  14.         unsigned char time[]=("騎行00時(shí)00分00秒");
  15.         unsigned int temp=0;
  16.         unsigned int speedint=0;
  17.         unsigned int once_counter=0;        //單次騎行計(jì)數(shù)
  18.         unsigned char all_counter_1,all_counter_2,all_counter_3;
  19.         unsigned long all_counter=0,temp1=0;

  20. /*************        本地函數(shù)聲明        **************/
  21. volatile unsigned int t_counter=0,s_counter=0;
  22. volatile unsigned char int_flag=0,t0_flag=0;

  23. void t0_srv(void) interrupt 1 using 1
  24. {
  25.         TR0 = 0;
  26.         ET0 = 0;

  27.         t_counter++;
  28.         t0_flag = 1;

  29.         if(t_counter<5)
  30.         {
  31.                 IE0 = 0;
  32.         }
  33.         if(t_counter==5)
  34.         {
  35.                 EX0 = 1;         //50ms后開int0中斷, 防抖動(dòng).
  36.             
  37.         }

  38.         TH0 = 0xD8;                 //(65536-1000)/256
  39.         TL0 = 0xF0;                 //(65536-10000)%256
  40.         TR0 = 1;
  41.         ET0 = 1;


  42.         
  43.                
  44. }

  45. void int0_srv(void) interrupt 0        using 0
  46. {
  47.         EX0 = 0;
  48.         int_flag = 1;
  49.         s_counter++;
  50.         
  51. }

  52. void Timer0_10ms(void)                //10毫秒@12.000MHz
  53. {
  54.         AUXR &= 0x7F;                //定時(shí)器時(shí)鐘12T模式
  55.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  56.         TMOD |= 0x01;                //設(shè)置定時(shí)器模式
  57.         TL0 = 0xF0;                //設(shè)置定時(shí)初值
  58.         TH0 = 0xD8;                //設(shè)置定時(shí)初值
  59.         TF0 = 0;                //清除TF0標(biāo)志
  60.         TR0 = 1;                //定時(shí)器0開始計(jì)時(shí)
  61. }



  62. /*************  外部函數(shù)和變量聲明 *****************/



  63. /******************** IO配置函數(shù) **************************/
  64. void        GPIO_config(void)
  65. {
  66.         P5M0 &= ~(1<<5);                //設(shè)置P5.5為準(zhǔn)雙向口
  67.         P5M1 &= ~(1<<5);
  68. }

  69. /******************** 主函數(shù) **************************/
  70. void main(void)
  71. {
  72.         GPIO_config();


  73.         LCD12864_HAIZI_SET();                                                        //設(shè)置為普通模式
  74.                 LCD12864_Reset();                                                        //初始化液晶


  75.         EA  = 0;               
  76.         IT0 = 1;                //int0 下降沿中斷
  77.         EX0 = 1;                //允許外部中斷0
  78.         Timer0_10ms();
  79.         ET0 = 1;
  80.         EA         = 1;



  81.         
  82.                
  83.                
  84.         while(1)                                                                                       
  85.         {               
  86.                 if(t0_flag == 1)
  87.                 {
  88.                         t0_flag = 0;
  89.                         counter++;
  90.                         if(counter == 100)
  91.                         {
  92.                                 counter = 0;
  93.                                 sec ++;
  94.                                                                
  95.                                 if(sec == 60)
  96.                                 {
  97.                                         sec = 0;
  98.                                         min ++;
  99.                                         if(min == 60)
  100.                                         {
  101.                                                 min = 0;
  102.                                                 hour ++;
  103.                                         }
  104.                                 }
  105.                                 time[4]=hour/10+'0';
  106.                                 time[5]=hour%10+'0';
  107.                                 time[8]=min/10+'0';
  108.                                 time[9]=min%10+'0';
  109.                                 time[12]=sec/10+'0';
  110.                                 time[13]=sec%10+'0';
  111.                                 
  112.                         }
  113.                 }
  114.         if(t_counter>500)
  115.                 {
  116.                         t_counter = 0;
  117.                         speedint=0;        
  118.                         speed[6]=speedint*3600/10000+'0';
  119.             speed[7]=speedint*3600%10000/1000+'0';
  120.             speed[9]=speedint*3600%1000/100+'0';                 //5秒沒有切割速度為0
  121.                      speed[10]=speedint*3600%100/10+'0';
  122.                     speed[11]=speedint*3600%10+'0';
  123.                         
  124.                 }
  125.         
  126.         
  127.         if(int_flag==1)
  128.                 {
  129.                         int_flag = 0;
  130.                         temp = t_counter;
  131.                         t_counter = 0;
  132.                
  133.                         
  134.                         speedint =734400 /temp;                                                                           //顯示速度
  135.                         speed[6]=speedint/10000+'0';
  136.             speed[7]=speedint%10000/1000+'0';
  137.             speed[9]=speedint%1000/100+'0';                 //速度轉(zhuǎn)化為字符串00.000KM/H樣式

  138. ……………………

  139. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
0.png
所有資料51hei提供下載:
自行車碼表.rar (103.5 KB, 下載次數(shù): 28)

評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:652342 發(fā)表于 2019-11-29 13:41 | 顯示全部樓層
謝謝 參考了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级毛片大全免费播放 | 亚洲精品国产偷自在线观看 | 91色网站 | 亚州精品成人 | 久色视频在线 | 人人鲁人人莫人人爱精品 | 日本一区二区三区在线观看 | 国产精品久久久久999 | 色综合久久久久 | 99pao成人国产永久免费视频 | 日韩免费视频一区二区 | 婷婷丁香综合网 | 999国产精品视频 | 欧美一区二区三区精品 | 国产乱码精品一区二区三区中文 | 国产一区二 | 日日干日日射 | 国产精品日日摸夜夜添夜夜av | 日韩欧美国产一区二区三区 | 欧美精品成人一区二区三区四区 | 一区二区中文 | 成人欧美一区二区三区在线观看 | 亚洲电影一区二区三区 | 天天干夜夜操视频 | 一区二区视频免费观看 | 精品国产一区二区国模嫣然 | 久久草在线视频 | 国产在线视频一区二区董小宛性色 | 国产欧美综合在线 | 国产精品久久久久久吹潮 | 精品欧美乱码久久久久久 | av永久| 色综合九九 | 精品国产一区二区三区免费 | 久久精品久久久 | 亚洲成人久久久 | 日韩欧美一级 | 日韩精品免费播放 | 国产视频精品在线 | 免费久久网 | 一起操网站 |