色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)中斷測(cè)量速度的程序帶仿真文件

          單片機(jī)中斷測(cè)量速度的程序帶仿真文件

          作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏

          用protues仿真的,仿真文件從http://www.51hei.com/bbs/dpj-19412-1.html下載,電路圖都在里面.下面是源代碼是用單片機(jī)的int0中斷來實(shí)現(xiàn)的.

          本文引用地址:http://cafeforensic.com/article/201612/325016.htm

          #include "d:c51eg51.h"
          #include "d:c51intrins.h"


          sbit LCM_RS=P3^0;
          sbit LCM_RW=P3^1;
          sbit LCM_EN=P3^7;

          #define BUSY 0x80 //常量定義
          #define DATAPORT P1
          #define uchar unsigned char
          #define uint unsigned int
          #define L50

          uchar str0[16],str1[16],count;
          uint speed;
          unsignedlongtime;

          void ddelay(uint);
          void lcd_wait(void);
          void display();
          void initLCM();
          void WriteCommandLCM(uchar WCLCM,uchar BusyC);
          void STR();
          void account();


          /*********延時(shí)K*1ms,12.000mhz**********/

          void int0_isr(void) interrupt 0 /*遙控使用外部中斷0,接P3.2口*/
          {
          unsigned int temp;
          time=count;
          TR0=0;
          temp=TH0;
          temp=((temp << 8) | TL0);
          TH0=0x3c;
          TL0=0xaf;
          count=0;
          TR0=1;
          time=time*50000+temp;
          }

          void time0_isr(void) interrupt 1 /*遙控使用定時(shí)計(jì)數(shù)器1 */
          {
          TH0 =0x3c;
          TL0 =0xaf;
          count++;
          }

          void main(void)
          {
          TMOD=0x01; /*TMOD T0選用方式1(16位定時(shí)) */
          IP|=0x01; /*INT0 中斷優(yōu)先*/
          TCON|=0x11; /*TCON EX0下降沿觸發(fā),啟動(dòng)T0*/
          IE|=0x83;
          TH0=0x3c;
          TL0=0xaf;

          initLCM();
          WriteCommandLCM(0x01,1); //清顯示屏
          for(;;)
          {
          account();
          display();
          }
          }

          void account()
          {
          unsignedlonga;
          if (time!=0)
          {
          a=L*360000000/time;
          }
          speed=a;
          }

          void STR()
          {
          str0[0]=S;
          str0[1]=p;
          str0[2]=e;
          str0[3]=e;
          str0[4]=d;
          str0[5]= ;
          str0[6]=(speed%100000)/10000+0x30;
          str0[7]=(speed%10000)/1000+0x30;
          str0[8]=(speed%1000)/100+0x30;
          str0[9]=.;
          str0[10]=(speed%100)/10+0x30;
          str0[11]=speed%10+0x30;
          str0[12]=k;
          str0[13]=m;
          str0[14]=/;
          str0[15]=h;
          }


          上一頁 1 2 下一頁

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉