|
拿單片機(jī)運(yùn)算,光電旋轉(zhuǎn)編碼器測量數(shù)據(jù),很是羞愧哦,就給了個(gè)省三
給大家需要光電旋轉(zhuǎn)編碼器程序的同學(xué)參考下吧
不知道怎么上傳c文件,就這樣吧
單片機(jī)源程序如下:
- #include <reg52.h>
- #include <intrins.h>
- #include <stdio.h>
- #include <string.h>
- #include <absacc.h>
- #include <math.h>
- #define uchar unsigned char
- #define uint unsigned int
- long i = 0;
- long j = 0;
- float speed,angle_speed=0,distance,angle_speed2 ,PI=3.14,D=0.027,R=0.0135,NUMBER=600.0;
- int tt = 0;
- int g=0;
- int k = 0;
- int allk=0;
- sbit k1=P1^0;
- sbit k2=P1^1;
- sbit E=P2^7;
- sbit RW=P2^5;
- sbit RS=P2^6;
- sbit PSB = P1^0;
- uchar b[10];
- void Delay(uint i);
- void Outside_Init(void)
- {
- EX0 = 1;
- IT0 = 1;
- EX1 = 1;
- IT1 = 1;
- EA = 1;
- }
- void Outside_Int1(void) interrupt 2
- {
- i++;
- }
- void delays()
- {
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- }
- // bit Busy(void)
- // {
- // bit busy_flag = 0;
- // RS = 0;
- // RW = 1;
- // E = 1;
- // delays();
- // busy_flag = (bit)(P0 & 0x80);
- // E = 0;
- // return busy_flag;
- // }
- void wcmd(uchar del)
- {
- // while(Busy());
- RS = 0;
- RW = 0;
- E = 0;
- delays();
- P0 = del;
- delays();
- E = 1;
- delays();
- E = 0;
- }
- void wdata(uchar del)
- {
- // while(Busy());
- RS = 1;
- RW = 0;
- E = 0;
- delays();
- P0 = del;
- delays();
- E = 1;
- delays();
- E = 0;
- }
- void L1602_init(void)
- {
- PSB=1;
- wcmd(0x30);
- Delay(10);
- wcmd(0x0c);
- Delay(10);
- wcmd(0x01);
- Delay(10);
- wcmd(0x80);
- Delay(10);
- }
- void Delay(uint i)
- {
- uint x,j;
- for(j=0;j<i;j++)
- for(x=0;x<=148;x++);
- }
- void Time0_Init()
- {
- TMOD=0x01;
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- ET0=0;
- TR0=0;
- }
- void Time0_Int() interrupt 1
- {
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- tt++;
- g++;
- if(tt==2)
- {
- allk=allk+i;
- angle_speed=3;
- k=i;
- distance=PI*D/NUMBER;
- speed=k*distance/0.1;
- angle_speed2=speed/R ;
- tt=0; i=0;
- }
-
- }
- void main()
- {
- float ZD,ZD1,ZD2;
- uchar a[10];
- uchar c[]="脈沖觸發(fā)";
- uchar d[]="轉(zhuǎn)動(dòng)慣量";
- uchar e[]="轉(zhuǎn)動(dòng)慣量測量儀";
- uchar f[]="大連民族大學(xué)";
- L1602_init();
- Time0_Init();
- Outside_Init();
- wcmd(0x80);
- Delay(10);
- for(j=0;j<14;j++)wdata(e[j]);
- wcmd(0x88);
- Delay(10);
- for(j=0;j<12;j++)wdata(f[j]);
- while(1)
- {
- if(k1==0){Delay(7);if(k1==0)wcmd(0x01);break; }
- }
- wcmd(0x01);
- Delay(10);
- wcmd(0x90);
- Delay(10);
- for(j=0;j<8;j++)wdata(c[j]);
- wcmd(0x88);
- Delay(10);
- for(j=0;j<8;j++)wdata(d[j]);
- ET0=1;
- TR0=1;
- while(1)
- {
-
- if(allk>=100)
- {
- g=0;
- while(angle_speed2>=5||angle_speed2<=6);
- while(1)
- {
- if(g==20||g==21)
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
新建文本文檔.zip
(1.27 KB, 下載次數(shù): 9)
2017-11-5 18:59 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|