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

正文內(nèi)容

基于單片機智能小車系統(tǒng)設計畢業(yè)設計-資料下載頁

2025-06-27 19:12本頁面
  

【正文】 出版社,2005:225230.附錄A 整體原理圖及實物圖原理圖實物圖附錄C 相關程序include //器件配置文件include sbit A1=P1^0。 //電機驅(qū)動sbit A2=P1^1。sbit B1=P1^2。sbit B2=P1^3。sbit ENA=P3^6。 //左輪使能控制 sbit ENB=P3^7。 //右輪使能控制sbit IR_LEFT=P1^4。 //循跡紅外sbit IR_MID=P1^5。sbit IR_RIGHT=P1^6。 sbit SPEAKER=P3^5。 //蜂鳴器sbit metal=P1^7。sbit flag =0,state。unsigned char metal_count = 0。//金屬塊計數(shù)變量 unsigned int count1 = 0。//測速計數(shù)unsigned char count2 = 0。//定時器1用來算一秒要進入中斷的次數(shù) unsigned char count3 = 0。//定時器計數(shù) unsigned int s。//路程unsigned char CYCLE。 //定義周期 該數(shù)字X基準定時時間 如果是10 則周期是10 x unsigned char PWM_ON1。 //定義左輪高電平時間unsigned char PWM_ON2。 //定義右輪高電平時間bit stop1=0。unsigned char code dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。// 顯示段碼值01234567unsigned char code seg[]={0,1,2,3,4,5,6,7}。//分別對應相應的數(shù)碼管點亮,即位碼bit forward = 0。void stop() //停止{ A1=1。 A2=1。 B1=1。 B2=1。}void delay(int i) //延時程序{ int j。 for(j=0。ji。j++)。}void show_time() //時間顯示程序{ int temp,i。 temp=count2。 for(i=0。i2。i++) { P0=dofly[temp/10]。//取顯示數(shù)據(jù),段碼 P2=seg[i]。 //取位碼 delay(200)。 //掃描間隙延時,時間太長會閃爍,太短會造成重影 temp=temp%10。 temp=temp*10。 } }void display_length() //路程顯示程序{ int temp,i。 temp=count1*20/6。 for(i=4。i7。i++) { P0=dofly[temp/100]。//取顯示數(shù)據(jù),段碼 P2=seg[i]。 //取位碼 delay(200)。 //掃描間隙延時,時間太長會閃爍,太短會造成重影 temp=temp%100。 temp=temp*10。 } }void IR_direction() //循跡程序 { if(IR_LEFT=1 amp。amp。 IR_MID =1 amp。amp。 IR_RIGHT=1) stop1=1。 if(IR_LEFT=1 amp。amp。 IR_MID =1 amp。amp。 IR_RIGHT=0) { PWM_ON1=25。 PWM_ON2=50。 } if(IR_LEFT=1 amp。amp。 IR_MID =0 amp。amp。 IR_RIGHT=1) 。 if(IR_LEFT=1 amp。amp。 IR_MID =0 amp。amp。 IR_RIGHT=0) { PWM_ON1=25。 PWM_ON2=50。 } if(IR_LEFT=0 amp。amp。 IR_MID =1 amp。amp。 IR_RIGHT=1) { PWM_ON1=50。 PWM_ON2=25。 } if(IR_LEFT=0 amp。amp。 IR_MID =1 amp。amp。 IR_RIGHT=0) { PWM_ON1=30。 PWM_ON2=30。} if(IR_LEFT=0 amp。amp。 IR_MID =0 amp。amp。 IR_RIGHT=) { PWM_ON1=50。 PWM_ON2=25。 } if(IR_LEFT=0 amp。amp。 IR_MID =0 amp。amp。 IR_RIGHT=0) 。}void init() //初始化程序{ stop()。 EA=1。 EX0=1。 //測量程計數(shù)中斷0 IT0=1。 ET0=1。 //PWM調(diào)速定時 TR0=1。 TH0=(65535200)/256。 // TL0=(65535200)%256。 ET1=1。 // 行程定時 TR1=1。 TH1=(6553550000)/256。 //定時50ms TL1=(655355000)%256。 forward = 0。 //正反轉(zhuǎn)設定 TMOD=0X11。 CYCLE=50。 //速度設定 PWM_ON1=30。 PWM_ON2=30。}void delay_s(int s) //1s鐘延時程序{ int i,j。 for(。s0。s) for(i=0。i110。i++) for(j=0。j1000。j++)。}void det_metal()//檢測金屬 { int j。 IR_direction()。 if(!metal) //有金屬 { for(j=0。j200。j++) { SPEAKER=!SPEAKER。 delay(5)。 } while(!metal)。//車子走過金屬片以后 metal_count++。//檢測到有金屬,計數(shù)器加1 if(metal_count =2) { PWM_ON1=25。 PWM_ON2=25。 } if(metal_count =3) { PWM_ON1=30。 PWM_ON2=30。 } if(metal_count =4) { metal_count=0。 ENA=0。 ENB=0。 if(forward=0) { delay_s(10)。 forward = 1。 ENA=1。 ENB=1。 } } }}void main() //主函數(shù){ init()。 delay(20000)。 stop1=0。 state=0。 while(1) { det_metal()。 if(metal_count =4) display_length()。 } }void tim(void) interrupt 1 using 1 //定時器0電機PWM調(diào)速{ static unsigned char count。 TH0=(65536200)/256。 TL0=(65536200)%256。 // if(stop1=0) { if (count =PWM_ON1) //PWM調(diào)速 { if(!forward) { A1=1。 A2=0。 } else { A1=0。 A2=1。 } } if (count =PWM_ON2) { if(!forward) { B1=1。 B2=0。 } else { B1=0。 B2=1。 } } if(count =CYCLE) { count =0。 stop()。 } } else { count =0。 stop()。 } count++。}void timer1() interrupt 3//在循跡完以后的定時 { TH1=(6553650000)/256。 //定時50ms TL1=(6553650000)%256。 count3++。 if(count3=20) { count3=0。 count2++。 } show_time()。 }void int0() interrupt 0//中斷0測量程 { count1++。}
點擊復制文檔內(nèi)容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1