freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的超聲波避障小車設(shè)計(jì)方案-資料下載頁

2025-05-12 23:34本頁面
  

【正文】 行,列,需要輸入1602的數(shù)據(jù)* 輸出 : 無***********************************************************************/void L1602_char(uchar hang,uchar lie,char sign){ uchar a。 if(hang == 1) a = 0x80。 if(hang == 2) a = 0xc0。 a = a + lie 1。 wcmd(a)。 wdata(sign)。}/********************************************************************* 名稱 : L1602_string(uchar hang,uchar lie,uchar *p)* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個(gè)字符開始顯示ab cd ef ,調(diào)用該函數(shù)如下 L1602_string(1,5,ab cd ef。)* 輸入 : 行,列,需要輸入1602的數(shù)據(jù)* 輸出 : 無***********************************************************************/void L1602_string(uchar hang,uchar lie,uchar *p){ uchar a,b=0。 if(hang == 1) a = 0x80。 if(hang == 2) a = 0xc0。 a = a + lie 1。 while(1) { wcmd(a++)。 if((*p == 39。\039。)||(b==16)) break。 b++。 wdata(*p)。 p++。 }}/********************************************************************* 名稱 : display(uint temp)* 功能 : 顯示數(shù)據(jù)* 輸入 : temp 要顯示的數(shù)據(jù)* 輸出 : 無***********************************************************************/void display(uint temp){ uint bai,shi,ge。 bai=temp/100+48。 shi=temp%100/10+48。 ge=temp%100%10+48。 L1602_char(1,9,bai )。 L1602_char(1,10,shi )。 L1602_char(1,11,ge)。}void display_s(uint temp){ uint bai,shi,ge。 bai=temp/100+48。 shi=temp%100/10+48。 ge=temp%100%10+48。 L1602_char(2,9,bai )。 L1602_char(2,10,shi )。 L1602_char(2,11,ge)。}/********************************************************************* 名稱 : LDC_Init(void)* 功能 : LCD1602初始化程序***********************************************************************/void LDC_Init(void){ P25 = 0。 wcmd(0x38)。 wcmd(0x08)。 wcmd(0x0c)。 wcmd(0x04)。 wcmd(0x01)。 L1602_string(1,1,space: cm)。 L1602_string(2,1,Speed: cm/s)。 }/********************************************************************* 名稱 : pwm_init()* 功能 : PWM 初始化程序***********************************************************************/void pwm_init(){ P_SW2 |= 0x80。 //使能訪問XSFR PWMCFG = 0x00。 //配置PWM的輸出初始電平為低電平 PWMCKS = 0x00。 //選擇PWM的時(shí)鐘為Fosc/(0+1) PWMC = CYCLE。 //設(shè)置PWM周期 PWM2T1 = 0x0000。 //設(shè)置PWM2第1次反轉(zhuǎn)的PWM計(jì)數(shù) PWM2T2 = CYCLE * 1/ 100。 //占空比為(PWM2T2PWM2T1)/PWMC PWM2CR = 0x00。 //,不使能PWM2中斷 PWM3T1 = 0x0000。 //設(shè)置PWM2第1次反轉(zhuǎn)的PWM計(jì)數(shù) PWM3T2 = CYCLE * 1/ 100。 //占空比為(PWM2T2PWM2T1)/PWMC PWM3CR = 0x00。 //,不使能PWM2中斷 PWM4T1 = 0x0000。 //設(shè)置PWM2第1次反轉(zhuǎn)的PWM計(jì)數(shù) PWM4T2 = CYCLE * 1/ 100。 //占空比為(PWM2T2PWM2T1)/PWMC PWM4CR = 0x00。 //,不使能PWM2中斷 PWM5T1 = 0x0000。 //設(shè)置PWM2第1次反轉(zhuǎn)的PWM計(jì)數(shù) PWM5T2 = CYCLE * 1/ 100。 //占空比為(PWM2T2PWM2T1)/PWMC PWM5CR = 0x00。 //,不使能PWM2中斷 PWMCR = 0x0f。 //使能PWM信號(hào)輸出 PWMCR |= 0x80。 //使能PWM模塊 P_SW2 amp。= ~0x80。}/***********************小車后退函數(shù)************************/ void back() { P_SW2 |= 0x80。 PWM2T2 = CYCLE * 1/ 100。 PWM3T2 = CYCLE * 50/ 100。 PWM4T2 = CYCLE * 50/ 100。 PWM5T2 = CYCLE * 1/ 100。 P_SW2 amp。= ~0x80。 }/***********************小車前進(jìn)函數(shù)************************/void go(){ P_SW2 |= 0x80。 PWM2T2 = CYCLE * 80/ 100。 PWM3T2 = CYCLE * 1/ 100。 PWM4T2 = CYCLE * 1/ 100。 PWM5T2 = CYCLE * 80/ 100。 P_SW2 amp。= ~0x80。 }/***********************小車左轉(zhuǎn)函數(shù) 左邊輪子后退 右邊輪子前進(jìn)************************/void left_s(){ P_SW2 |= 0x80。 PWM2T2 = CYCLE * 80/ 100。 PWM3T2 = CYCLE * 1/ 100。 PWM4T2 = CYCLE * 80/ 100。 PWM5T2 = CYCLE * 1/ 100。 P_SW2 amp。= ~0x80。 } /***********************小車停下函數(shù)************************/ void stop() { P_SW2 |= 0x80。 PWM2T2 = CYCLE * 1/ 100。 PWM3T2 = CYCLE * 1/ 100。 PWM4T2 = CYCLE * 1/ 100。 PWM5T2 = CYCLE * 1/ 100。 P_SW2 amp。= ~0x80。 。 }/***********************小車右轉(zhuǎn)函數(shù) 左邊輪子前進(jìn) 右邊輪子后退************************/void right_s(){ P_SW2 |= 0x80。 PWM2T2 = CYCLE * 1/ 100。 PWM3T2 = CYCLE * 80/ 100。 PWM4T2 = CYCLE * 1/ 100。 PWM5T2 = CYCLE * 80/ 100。 P_SW2 amp。= ~0x80。 }/************************* 避障函數(shù) *********************************/void Avoid(void){ static unsigned char Dir = 0。 if(iDis AVOID_DIS || iDis 5) //大于避障距離,則前進(jìn) { LED=1。 go()。 } else //否則轉(zhuǎn)彎 { LED=0。 Dir++。 if(Dir%2) { back()。 Delay_l(1000)。 right_s()。 //右轉(zhuǎn) Delay_l(1000)。 } // else // { //// back()。 //// //// Delay_l(1000)。 //// left_s()。 //左轉(zhuǎn) Delay_l(1000)。 // } }}/************************* 定時(shí)器初始化*********************************/void timer_Init(void){ AUXR |= 0x40。 //定時(shí)器時(shí)鐘1T模式 TMOD amp。= 0x0F。 //設(shè)置定時(shí)器模式 TL1 = 0xCD。 //設(shè)置定時(shí)初值 TH1 = 0xD4。 //設(shè)置定時(shí)初值 TF1 = 0。 //清除TF1標(biāo)志 ET1 = 1。 //使能定時(shí)器1中斷 TR1 = 1。 //定時(shí)器1開始計(jì)時(shí) IT0 = 1。 //設(shè)置INT0的中斷類型 (1:僅下降沿 0:上升沿和下降沿) EX0 = 1。 //使能INT0中斷 EA = 1。 }/************************* 速度計(jì)算函數(shù) *********************************/void speed_act(uint sp){ speed=(2*R*PI*sp)/NUM 。}/************************* 主函數(shù) *********************************/void main(void){ P0M1=0。 P0M0=0。 P1M1=0。 P1M0=1。 P2M1=0。 P2M0=0。 P3M1=0。 P3M0=0。 CsbInit()。 LDC_Init()。 pwm_init()。 timer_Init()。 while(1) { LED=0。 iDis = GetDis()。 Avoid()。 display(iDis)。 Delay_l(1000)。 display_s(speed)。 } }//外部中斷服務(wù)程序void exint0() interrupt 0 //INT0中斷入口{ flag_count++。 }/************************** 定時(shí)器0中斷服務(wù)函數(shù) *******************************/void zd0() interrupt 1 //T0中斷用來計(jì)數(shù)器溢出,超過測(cè)距范圍{ flag=1。 //中斷溢出標(biāo)志}void z
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1