标题: 关于单片机+霍尔传感器的测速程序问题 [打印本页]

作者: 2844304776    时间: 2020-5-23 19:49
标题: 关于单片机+霍尔传感器的测速程序问题
以下这部分是霍尔传感器测速,想请教大家帮我改成汇编。
void EXINT0() interrupt 0
{
        count++;
}

void time0() interrupt 1
{
        uchar m;
        TH0=0x3c;
        TL0=0xb0;         //50ms
        m++;
        if(m>=10)
        {
                m=0;
                Mileage=Mileage+Velocity*500/36;                 //里程m=速度km/h*1000*5/3.6
                Velocity=count/5;//100ms内的脉冲数
                count=0;               
        }
}


作者: f556    时间: 2020-5-29 15:28
就用C很清晰,或者把这个嵌入到你的汇编中
作者: TTQ001    时间: 2020-5-30 01:51
为什么必须使用汇编语言进行编码? C语言可能更易于修改和审查。
作者: 顾全gq    时间: 2020-5-30 08:56
可以反汇编一下
作者: 烈火    时间: 2020-5-30 10:45
P4SW=0xff;  
             TMOD=0x01;  
             TH0 =  0xee;
             TL0 =  0x00;
             EA  =  1;
             ET0 =  1;
                                 PT0=1;
                                 PX0=0;
             PX1=0;
                                 EX0=1;
                                 IT0=0;
             EX1=1;
                                 IT1=1;
             TR0 =  1;
作者: 2844304776    时间: 2020-6-6 11:50
烈火 发表于 2020-5-30 10:45
P4SW=0xff;  
             TMOD=0x01;  
             TH0 =  0xee;

啥意思啊,大哥解释一下
作者: 1020344535    时间: 2020-6-16 23:30
懂debug反汇编叭
作者: hxhxss    时间: 2020-6-23 08:48
嵌入可能可以‘
作者: Andersonliu    时间: 2020-6-23 15:19
C语言多清晰啊,你这段代码很吃运行速度么?
作者: 阿羊    时间: 2020-12-9 20:37
大哥您这个单片机+霍尔传感器的测速程序可以都分享出来吗,或者您有没有做仿真,小弟最近在做相关的DIY小玩意,谢谢大哥了
作者: suncat0504    时间: 2020-12-10 10:29
改成汇编的时候,需要你考虑数据类型。这里就是要考虑定时周期内(100ms)采集的计数值,如果超过了一个字节表达的最大值,就需要考虑用几个单元计算的问题了。这一点尤其要注意。涉及除法和小数了,就更得注意了。
与其手写,还真不如参照Keilc中编译时产生的汇编代码。
使keilc编译产生汇编代码的选项,在target的Option页中Listing选项Tab中有一个“Assembly Code”,勾选后,确定、关闭这个设置页,重新编译工程。然后在这个工程所在的目录下,用文本编辑器打开扩展名为LST的文件,你会看到keilc为你生成的整个工程的汇编代码。有和C语言代码行号对应的说明,很方便的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1