1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: 51單片機舵機程序 [打印本頁]

作者: sun136    時間: 2018-5-29 17:32
標題: 51單片機舵機程序
#include<reg52.h>

sbit key1 = P3^0;  
sbit key2 = P3^1;  
sbit pwm1= P2^7;  //引腳位定義

unsigned int target =6,percent = 0;  //聲明target 目標 = 6,percent 百分百 = 0

void Timer0Initial();  //定時器0 TH0 TL0初始賦值函數
void initial_Timer();  //定時器0初始化配置函數
void delay(unsigned int x);  //1ms延時函數
void keyscan();                                                   //按鍵函數
void initial();  //系統初始化函數
void Timer0();//定時器0 中斷服務程序

void main()  //主函數
{  
    initial();  //系統初始化
    while(1)  
    {  
        keyscan();  //按鍵處理函數
    }  
}

void keyscan()  //按鍵處理函數
{  
    if(key1 == 0)  //按鍵1是否按下
    {  
    delay(3);                  //延時3ms
    if(key1 == 0)  
    {  
        if(target >= 7)  //target 是否大于等于 7
        {  
            target -= 1;  //target - 1
        }  
        while(key1 == 0)  //按鍵1按下
        {P1 = 0x00;}                 
    }  
    P1 = 0xFF;  
    }  

    if(key2 == 0)  
    {  
        delay(3);  
        if(key2 == 0)  
        {  
            if(target <= 26)  //target 是否小于等于 26
            {  
                target += 1;  //target + 1
            }  
            while(key2 == 0)  
            {P1 = 0x00;}  
        }  
        P1 = 0xFF;  
    }  
}  

void initial()  //系統初始化函數
{  
    key1 = 1;  
    key2 = 1;  
    P1 = 0xff;  
    initial_Timer();  //定時器0 初始化
}  

/*使用11.0592mhz晶振
92次計時為100us
void Timer0Initial()  //定時器0 高八位 低八位  初始賦值
{  
    TH0 = (65536-92)/256;  
    TL0 = (65536-92)%256;  
}  //該初值使每0.1ms產生一次中斷
void initial_Timer()  //定時器中斷0 初始化
{  
    EA = 1;        
    ET0 = 1;      
    TMOD = 0x01;      
    Timer0Initial();      
    TR0 = 1;              
}  

void delay(unsigned int x)  //1ms延時函數
{  
    unsigned int i,j;  
    for(i = 0;i< x; ++i)  
        for(j = 120; j >0 ; --j)  
            ;  
}  

void Timer0() interrupt 1 using 0  //定時器0 中斷服務程序
{  
    percent += 1;   //per + 1
    if(percent == 200)  //per 是否等于 200
    {  
        percent = 0;  //per = 0
        pwm1 = 1;                 //信號線輸出高電平
    }  
    if(percent == target)  //par 是否等于 tar
    {  
        pwm1 = 0;  //信號線輸出低電平
    }  
    Timer0Initial();  //定時器0 初始賦值

}  

QQ截圖20180529173147.png (167.9 KB, 下載次數: 15)

QQ截圖20180529173147.png

QQ截圖20180529173156.png (123.54 KB, 下載次數: 28)

QQ截圖20180529173156.png

QQ截圖20180529173203.png (117.85 KB, 下載次數: 16)

QQ截圖20180529173203.png





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1