奇努克語翻譯我試著想用8051寫一個腳踏車測速器 或者 翻譯設計是如許: 利用at89c51晶片 用keil uVision3寫c語言 腳踏車車輪每轉一圈會經過Schmitt trigger送一個負源觸發到8051的pin12(外源中斷) 然後行使8051較量爭論其周期而算出速度 再由8051的P2輸出二位數到兩個7447在到7段LED數字顯示器 現在Schmitt trigger與7447的部分都沒有問題 問題是我用keil uVision3寫的程式燒進去都不會WORK (就連寫最簡單 翻譯賽馬燈也不WORK) 是否是我在寫C程式的時刻少了些什麼? 請高手幫我看看 ----------------------------------------------------------------- #include <regx51.h> int counter 翻譯公司i; //counter為計時器; i為輪胎圈數; int a,b,c 翻譯公司d,e; //A作為總數值(速度) B輸出暫存 C十位數暫存 D個位數暫存 E延遲用變 數 float period,r,p; //period周期; r為輪胎半徑; main() { //計時器 TMOD=0x00; //mode 0 TH0=(8192-1000)/12; //1000us=1ms TL0=(8192-1000)%12; TR0=1; //timer start //間斷器 IE=0x83; // EX0=1; ET0=1; EA=1; TCON=0x01; // 使外源中止1為負源處發; //速度計較and二位數顯示 a=0x00; //將速率設0 P2=a; //先使兩個七段都顯示0 for(e=0;e<3200;e++); //延遲 while(1) { r=0.0005; //設r為0.0005 km p=period/1000/3600; //把周期單元改成hr a=2*3.14*r/p; //計較出速率(km/hr) if(a>99) a=99; //防暴表 c=a/10; //將總數除以10取商數得到十位 d=a%10; //將總數除以10取餘數得到個位 c=c<<4; //將十位數(二進制)左移4位數 d=d&0x0f; //將各位數的上面四位數清為零 b=c+d; //將十位及個位數合併成8BIT BCD P2=b; //將有個位十位數 翻譯。-> 翻譯社|,-> 翻譯公司|的-> 翻譯BCD碼由P2輸出 for(e=0;e<15000;e++); //延遲 } } void timer0_int(void)interrupt 1 //計時器間斷0的副程式 { TH0=(8192-1000)/12; TL0=(8192-1000)%12; counter++; } void int0(void)interrupt 0 //外源中止0副程式 { i++; if(i==1) counter=0; //入手下手計時 if(i==6) //取五圈的平均周期 { period=counter/5; //周期單元為ms i=0; } } ----------------------------------------------------------------- 感謝...

以下文章來自: https://www.ptt.cc/bbs/ASM/M.1244869615.A.CEF.html有關翻譯的問題歡迎諮詢華頓翻譯社

arrow
arrow
    文章標籤
    翻譯社
    全站熱搜

    joannm5l3688 發表在 痞客邦 留言(0) 人氣()