找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2927|回复: 0
收起左侧

霍尔测速单片机源程序

[复制链接]
ID:192612 发表于 2017-4-23 13:38 | 显示全部楼层 |阅读模式
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. //sbit out=P2^2;
  5. sbit dula=P2^6;
  6. sbit wela=P2^7;
  7. sbit rs=P1^0;
  8. sbit rw=P1^1;
  9. sbit en=P2^5;
  10. uint z,n;
  11. uchar num,a1,a2,a3,c,flag=0;
  12. uchar code table []={"0123456789"};
  13. void delayms(uint xms)
  14. {
  15.         uint i,j;
  16.                 for(i=xms;i>0;i--)
  17.                         for(j=110;j>0;j--);
  18. }
  19. void write_com(uchar com)                //写命令
  20. {
  21.         rs=0;
  22.         rw=0;
  23.         en=0;
  24.         P0=com;
  25.         delayms(4);
  26.         en=1;
  27.         delayms(4);
  28.         en=0;
  29. }
  30. void         write_byt(uchar date)           //写数据
  31. {
  32.         rs=1;
  33.         rw=0;
  34.         en=0;
  35.         P0=date;
  36.         delayms(4);
  37.         en=1;
  38.         delayms(4);
  39.         en=0;
  40. }
  41. void lcdinit()                 //初始化
  42. {        
  43.         write_com(0x38);    //设置16*2显示  5*7点阵   8位数据口
  44.            write_com(0x0c);        //设置开显示  不显示光标
  45.         write_com(0x06);   //写入字符后地址指针加1
  46.         write_com(0x01);        //显示清0;
  47. }

  48. void init()
  49. {
  50.         TMOD=0x01;
  51.         TH0=0x4C;
  52.         TL0=0x00;
  53.         EA=1;
  54.         ET0=1;
  55.         TR0=1;
  56.         EX1=1;
  57.         IT1=1;
  58. }
  59. void main()
  60. {
  61.         init();
  62.         lcdinit();
  63.         while(1)
  64.         {
  65.         write_com(0x80);
  66.         write_byt('R');
  67.                 if(flag==1)
  68.                 {
  69.                         write_byt(table[a1]);
  70.                         write_byt(table[a2]);
  71.                         write_byt(table[a3]);
  72.                         flag=0;
  73.                 }
  74.         }
  75.         
  76. }
  77. void t0() interrupt 1
  78. {
  79.         TH0=0x4C;
  80.         TL0=0x00;
  81.         c++;

  82.         if(c==20)
  83.         {
  84.                
  85.                 c=0;
  86.                 EX1=0;
  87.                 n=60*z;
  88.                 z=0;
  89.                 flag=1;
  90.             TH0=0x4C;
  91.              TL0=0x00;
  92.                 EX1=1;
  93.         }
  94.         
  95.              a1=n/100;
  96.              a2=n%100/10;
  97.             a3=n%10;


  98. }
  99. void ji() interrupt 2
  100. {
  101.         num++;

  102.         if(num==2)
  103.         {
  104.                 z++;
  105.                 num=0;
  106.         }
  107.         
  108. }

复制代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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