找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2083|回复: 0
打印 上一主题 下一主题
收起左侧

自行车测速系统程序

[复制链接]
跳转到指定楼层
楼主
ID:254688 发表于 2017-11-28 15:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自行车测速系统 基于单片机c
自行车测速 c.docx (11.66 KB, 下载次数: 10)
  1. #include <AT89X51.H>   
  2. #define uchar unsigned char   
  3. #define uint unsigned int   
  4.    
  5. uchar code seg7code[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};   
  6. uint sec,miaoshu,tcnt,count;   
  7.    
  8. sbit p00=P0^0; //各个口定义   
  9. sbit p01=P0^1;   
  10. sbit p02=P0^2;   
  11. sbit p03=P0^3;   
  12. sbit p04=P0^4;   
  13. sbit p05=P0^5;   
  14.    
  15. void Delay(uchar t)   
  16. {   
  17.     uchar i;   
  18.     while(t--)   
  19.     {   
  20.         for ( i = 0; i < 200 ;i ++);   
  21.     }   
  22. }   
  23.    
  24.    
  25.    
  26. void t0(void) interrupt 1 using 0 //定时T0中断服务函数   
  27. {   
  28.     tcnt++; //每过250ust tcnt 加一   
  29.     if(tcnt==40) //计满40 次(1/100 秒)时   
  30.     {         
  31.         tcnt=0; //重新再计   
  32.         sec++;   
  33.         if(sec==100) //定时1 秒,在从零开始计时   
  34.         {   
  35.             sec=0;   
  36.             TH0=0x06; //对TH0 TL0 赋值   
  37.             TL0=0x06;   
  38.             miaoshu=count;   
  39.             count=0;   
  40.         }   
  41.     }   
  42. }   
  43.    
  44. void t1(void) interrupt 3 using 0 //计数T1中断服务函数   
  45. {      
  46.     count=count+1;   
  47.     TF0=1;   
  48.     TH1=255;      
  49.     TL1=255;   
  50.     TR1=1;   
  51.     EA=1;   
  52. }   
  53.    
  54. void LED()   
  55. {   
  56.     if (miaoshu>=100)   
  57.     {      
  58.         p04=0;P1=0x00;     
  59.     }   
  60.     else   
  61.     {   
  62.         p04=1;P1=0xFF;   
  63.     }   
  64.    
  65.     P2=seg7code[miaoshu/1000];   
  66.     p00=1;   
  67.     Delay(5);   
  68.     p00=0;   
  69.    
  70.     P2=seg7code[miaoshu/100%10];   
  71.     p01=1;   
  72.     Delay(5);   
  73.     p01=0;   
  74.    
  75.     P2=seg7code[(miaoshu%100)/10];   
  76.     p02=1;   
  77.     Delay(5);   
  78.     p02=0;   
  79.    
  80.     P2=seg7code[miaoshu%10];   
  81.     p03=1;   
  82.     Delay(5);   
  83.     p03=0;   
  84. }   
  85.    
  86. void main(void)//主程序   
  87. {      
  88.     TMOD=0x62; //定时器T0工作在方式2 自动重装方式,计数器T1工作在方式2 自动重装方式   
  89.     TH0=0x06; //对TH0 TL0 赋值   
  90.     TL0=0x06;   
  91.     TR0=1; //开始定时   
  92.     ET0=1; //允许T0 产生中断   
  93.     EA=1;   
  94.     TH1=255;   
  95.     TL1=255;   
  96.     TR1=1;   
  97.     ET1=1;   
  98.    
  99.     EA=1;   
  100.     sec=0;   
  101.     miaoshu=0;tcnt=0;count=0;   
  102.     while(1)//调用各个函数模块,死循环   
  103.     {   
  104.         LED();   
  105.     }   
  106. }   
  107.    
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表