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灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP