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

標(biāo)題: 自行車測(cè)速源程序 [打印本頁]

作者: 上帝視角    時(shí)間: 2017-5-15 21:31
標(biāo)題: 自行車測(cè)速源程序
#include<reg52.h>
#include <intrins.h>
#define uint  unsigned int
#define uchar unsigned char
void delay(uint z)
{
   uint a,b;
   for(a=z;a>0;a--)
     for(b=60;b>0;b--);
}
sbit LcdRs        = P2^0;
sbit LcdRw        = P2^1;
sbit LcdEn          = P2^2;
#define  DBPort         P0
#define LCD_COMMAND         0
#define LCD_DATA         1
#define LCD_CLEAR_SCREEN        0x01
#define LCD_HOMING                  0x02
void LCD_Write(bit style, unsigned char input)
{
  LcdRs=style;
        LcdRw=0;
        DBPort=input;       
        delay(5);
        LcdEn=1;
        delay(5);
        LcdEn=0;
}
#define LCD_SHOW                        0x04
#define LCD_HIDE                        0x00  
#define LCD_CURSOR                        0x02
#define LCD_NO_CURSOR                0x00             
#define LCD_FLASH                        0x01
#define LCD_NO_FLASH                0x00   
void LCD_SetDisplay(unsigned char DisplayMode)
{
        LCD_Write(LCD_COMMAND, 0x08|DisplayMode);       
}
#define LCD_AC_UP                        0x02
#define LCD_AC_DOWN                        0x00
#define LCD_MOVE                        0x01
#define LCD_NO_MOVE                        0x00
void LCD_SetInput(unsigned char InputMode)
{
        LCD_Write(LCD_COMMAND, 0x04|InputMode);
}
void LCD_Initial()
{
        LcdEn=0;
        LCD_Write(LCD_COMMAND,0x38);
        delay(5);
        LCD_Write(LCD_COMMAND,0x38);
        delay(5);
       
   LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);
        delay(5);
        LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);
        delay(5);
        LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);
        delay(5);
}
void GotoXY(unsigned char x, unsigned char y)
{
        if(y==0)
                LCD_Write(LCD_COMMAND,0x80|x);
        if(y==1)
                LCD_Write(LCD_COMMAND,0x80|(x-0x40));
}
void Print(unsigned char *str)
{
        while(*str)
        {
                LCD_Write(LCD_DATA,*str);
                str++;
                delay(1);
       
}
}
void Timer1Init(void)                //50ms@12.000MHz
{
        TMOD &= 0x0F;
        TMOD |= 0x10;
        TL1 = 0xB0;
        TH1 = 0x3C;
        TF1 = 0;
        TR1 = 1;
        ET1=1;
        EA=1;
}
unsigned char        count=0;
unsigned int speed=0;
long        temp1=0,temp2=0;
long        s=0;
void        Timer1_IRQ()        interrupt 3
{
                TR1 = 0;
                TL1 = 0xB0;
                TH1 = 0x3C;
                TR1 = 1;
                count++;
                if(count==10)
                {
                        temp2=TH0;
                        temp2<<=8;
                        temp2+=TL0;
                        if(temp2<temp1)        s+=65535;
                        speed=(temp2-temp1)*5;
                        temp1=temp2;
                        count=0;
                }
}
void        Count0Init(void)
{
        TMOD &= 0xF0;
        TMOD |= 0x05;
        TL0 = 0;
        TH0 = 0;
        TF0 = 0;
        TR0 = 1;
}
unsigned int        c=20;
long        u=0;
sbit        k1=P3^0;
sbit        k2=P3^1;
void main()
{
       
        Timer1Init();
        Count0Init();       
        LCD_Initial();
        while(1)
        {
                       
                        GotoXY(0,0);
                        Print("V:");
                        LCD_Write(1,speed/100+0x30);
                        LCD_Write(1,speed%100/10+0x30);
                        LCD_Write(1,'.');
                        LCD_Write(1,speed%10+0x30);
                        LCD_Write(1,' ');
                        Print("C:");
                        LCD_Write(1,c/100+0x30);
                        LCD_Write(1,c%100/10+0x30);
                        LCD_Write(1,'.');
                        LCD_Write(1,c%10+0x30);
                        Print("CM");
                        GotoXY(1,1);
                        Print("Total:");
                        u=(s+temp1)*c/40;
                        LCD_Write(1,u/100000+0x30);
                        LCD_Write(1,u%100000/10000+0x30);
                        LCD_Write(1,u%10000/1000+0x30);
                        LCD_Write(1,u%1000/100+0x30);
                        LCD_Write(1,'.');
                        LCD_Write(1,u%100/10+0x30);
                        LCD_Write(1,'M');
                        if(k2==0)
                        {
                                delay(5);
                                if(k2==0)
                                {
                                        while(k2==0);
                                        c++;
                                }
                        }
                        if(k1==0)
                        {
                                delay(5);
                                if(k1==0)
                                {
                                        while(k2==0);
                                        if(c>0)        c--;
                                }
                        }
        }
}






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩精品亚洲专区在线观看 | 国产一区| 成人在线观| 日韩精品免费一区 | 4h影视| 国产精品久久久久aaaa | av大全在线观看 | 黑人巨大精品欧美一区二区一视频 | 国产蜜臀97一区二区三区 | 天堂一区二区三区 | 天天操天天玩 | 久久久久久久国产 | 国产精品一区二区在线免费观看 | 久久国产精品一区二区三区 | 一区二区三区视频在线 | 综合久| 精品国产欧美一区二区三区不卡 | 国产一级视频免费播放 | 成人在线一区二区三区 | 久久com | 欧美一区永久视频免费观看 | 国产精品久久久亚洲 | 精品伊人久久 | 99re国产精品 | 久久久成人一区二区免费影院 | 在线啊v | 久久91av | 亚洲精品一二三区 | 91久久精品国产91久久性色tv | 在线观看国产wwwa级羞羞视频 | aaa一区 | av永久| 欧美一区二区三区在线免费观看 | 中文字幕一区二区三区精彩视频 | 一区免费看| 欧美成人免费在线视频 | 国产乱码高清区二区三区在线 | 精品一二三区视频 | 色婷婷久久久亚洲一区二区三区 | 波多野结衣精品在线 | 中文字幕在线看 |