ASM 板


LINE

看板 ASM  RSS
我試著想用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; } } ----------------------------------------------------------------- 謝謝... --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.214.71
1F:推 ruemann:我沒用過這顆,是用他的ISP downlaod吧,看有沒有範例可試 06/13 16:24
2F:推 hayden0828:C51沒有ISP吧= ="如果跑馬燈等程式也不能燒,應該先從 06/13 17:58
3F:→ hayden0828:燒錄界面開始檢查吧 06/13 17:59
4F:→ MasterChang:有沒有ISP介面跟ISP燒錄沒啥關係....XD 06/13 19:22
5F:→ vincentno1:可是我燒書上附的hex檔是可以燒的 但我自己用c寫的都不 06/13 19:45
6F:→ vincentno1:行 不知道是不是我寫c哪裡寫錯還是軟體用不對 06/13 19:46
7F:→ vincentno1:因為我跑馬燈的程式都是抓網路上別人寫的 06/13 19:46
8F:→ vincentno1:不知有沒有有經驗的高手可以指點一下 06/13 19:46
9F:→ ksmrt0123:既然最簡單的跑馬燈也不WORK, 怎不先debug跑馬燈? 06/14 01:05
10F:→ ksmrt0123:而且跑馬燈並不簡單. 可考慮用更簡單的程式try 06/14 01:08
11F:→ vincentno1:有...我一直在debug...就是沒半法才來請問大家 06/14 01:43
12F:推 stool100:住哪?一小時 500 可以請我 06/14 01:56
13F:→ vincentno1:QQ 我再自己試試 不行在拜託樓上 我在台北市.. 06/14 15:58
14F:→ ksmrt0123:有可能是keil設定問題... memory model選錯? 06/14 21:03
15F:→ vincentno1:可能是樓上說的耶?謝謝你 我去看看 06/15 03:01
16F:→ vincentno1:不過我剛才用組語寫已經成功了 06/15 03:01
17F:→ vincentno1:謝謝大家 06/15 03:34
18F:噓 danny789:你發的問題,雖自己解決了,也有義務將如何解決的說明吧? 06/15 16:33
19F:推 around0423:那也用不著噓吧...推回來 06/16 16:01
20F:→ vincentno1:唔 其實我沒有解決...我只是放棄c語言而改用組合語言寫 06/17 00:49
21F:→ vincentno1:如果大家知道我c語言到底問題出在哪 感激不盡 06/17 00:50
22F:推 ruemann:你把編譯過的hex反組譯回去大概就能找出問題了 06/17 01:37
23F:→ vincentno1:哦!還有這招 好 我周末來試試 謝謝樓上 06/17 20:25
24F:推 utility:你的程式可能被最佳化把一部份被省略掉了 06/17 22:26
25F:推 wuonline:應該被樓上說中了 06/17 23:39
26F:→ wuonline:for(e=0;e<15000;e++); //延遲 06/17 23:40
27F:→ wuonline:這一行的延遲 單只有一層for迴圈的話 編譯的時候就會被省 06/17 23:41
28F:→ wuonline:略掉了 所以通常看到的都使用兩層for迴圈來做延遲的動作 06/17 23:41
29F:推 wuonline:void delay1ms(int count) 06/17 23:44
30F:→ wuonline:{ int i,j; 06/17 23:44
31F:→ wuonline: for(i=0;i<count;i++) 06/17 23:44
32F:→ wuonline: for(j=0;j<122;j++); } 06/17 23:45
33F:→ wuonline:上面是比較常見使用for迴圈來做延遲的程式寫法 06/17 23:45
34F:→ vincentno1:好 我明天下午就去試試 感謝 06/18 21:32
35F:→ utility:把list檔弄出來看.或是先設定不要做最佳化看看. 06/18 21:51







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP