用单片机设计的测速表源程序

发布时间:2023-01-03  

测量转速,使用霍尔传感器,被测轴安装有12只磁钢,即转轴每转一周,产生12个脉冲,要求将转速值(转/分)显示在数码管上。

程序如下:

DISPBUFEQU5AH ;显示缓冲区从5AH开始

SecCounEQU59H

SpCounEQU57H;速度计时器单元57H和58H,高位在前(57H单元中)

CountEQU56H;显示时的计数器

SpCalcbit00h;要求计算速度的标志

HiddenEQU16;消隐码

ORG0000H

AJMPSTART

ORG1BH

JMPTIMER1;定时中断1入口

ORG30H

START:MOVSP,#5FH;设置堆栈

MOVP1,#0FFH

MOVP0,#0FFH

MOVP2,#0FFH;初始化,所有显示器、LED

MOVTMOD,#00010101B;定时器T1工作于方式1,定时器0工作方式1MOVTH1,#HIGH(65536-4000)

MOVTL1,#LOW(65536-4000)

SETBTR1

SETBET1;开定时器1中断

SETBEA

LOOP:JNBSpCalc,LOOP;如果未要求计算,转本身循环

;标号: MULD 功能:双字节二进制无符号数乘法

;入口条件:被乘数在R2、R3中,乘数在R6、R7中。

;出口信息:乘积在R2、R3、R4、R5中。

;影响资源:PSW、A、B、R2~R7 堆栈需求: 2字节

MOVR2,SpCoun

MOVR3,SpCoun+1

MOVR6,#0

MOVR7,#5;测得的数值是每秒计数值,转为每分转速(每一转测12次,故乘5而非60)

CALLMULD

;标号: HB2 功能:双字节十六进制整数转换成双字节BCD码整数

;入口条件:待转换的双字节十六进制整数在R6、R7中。

;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。

;影响资源:PSW、A、R2~R7 堆栈需求: 2字节

MOVA,R4

MOVR6,A

MOVA,R5

MOVR7,A;将乘得的结果送R6R准备转换,这里结果不可能超过2字节

CALLHB2

CBCD:

MOVDISPBUF,R3;最高位

MOVA,R4;

ANLA,#0F0H;去掉低4位

SWAPA;将高4位切换到低4位

MOVDISPBUF+1,A

MOVA,R4

ANLA,#0FH

MOVDISPBUF+2,A

MOVA,R5

ANLA,#0F0H

SWAPA

MOVDISPBUF+3,A

MOVA,R5

ANLA,#0FH

MOVDISPBUF+4,A

CLRSpCalc;清计算标志

JMPLOOP

;主程序到此结束

TIMER1:PUSHACC;ACC入栈

PUSHPSW;PSW入栈

SETBRS0;工作区1

JNBTR0,SETTR0;如果T0未运行,则开启T0

JMPGO1

SETTR0:

SETBTR0

GO1:

INCSecCoun;秒计数器加1

MOVA,SecCoun

CJNEA,#251,Go2;如果未到1s则转

CLRTR0;1s到了,则停止T0的运行

MOVSpCoun,TH0

MOVSpCoun+1,TL0;读取计数值

CLRA

MOVTH0,A

MOVTL0,A;清计数器

SETBSpCalc;要求主程序计算速度

MOVSecCoun,#0;清秒计数器

Go2:

INCCOUNT ;用于显示的计数器

MOVA,COUNT

CLRC

SUBBA,#6

JZN1

JMPN2

N1:MOVCOUNT,#0

N2:MOVA,#DISPBUF

ADDA,COUNT

MOVR0,A;指向当前要显示的显示缓冲区

MOVA,@R0;取第一个待显示数

MOVDPTR,#DISPTAB;字形表首地址

MOVCA,@A+DPTR ;取字形码

MOVP0,A;将字形码送P0位(段口)

MOVA,COUNT

MOVDPTR,#BitTab;字位表首地址

MOVCA,@A+DPTR

ORLP2,#11111100B

ANLP2,A

MOVTH1,#HIGH(65536-4000)

MOVTL1,#LOW(65536-4000)

POPPSW

POPACC

RETI

BitTab:DB 7Fh,0BFH,0DFH,0EFH,0F7H,0FBH

DISPTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH

……其他数学运算程序(略)


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    测速方法: 单片机转速测量的算法很多,主要有频率测速法(M法)、周期测速法(T法)等。 M 测速法:通过在相同的时间T间隔内计算传感器输出的脉冲个数来算出转速; 设R为每转的脉冲信号数,T为间......
    基于51单片机的自行车测速系统;一.系统概述 系统使用的模块有AT89C51单片机+LCD1602显示屏+霍尔测速模块。 本设计采用51单片机为核心控制,使用LCD1602显示采集到的速度,霍尔测速模块进行测速......
    【STM32】使用HAL库进行电机测速,原理、代码、滤波;STM32是一款非常强大的微处理器,广泛应用于各种电机控制系统中。对于电机控制系统来说,测速是非常重要的,因为只有知道电机的转速,才能......
    车计价器也迎来了新的变革,这时第二代出租车计价器问世了。 设计选用宏晶公司生产的STC89C52单片机,加上外围芯片,设计出一个性能稳定,实用性强的出租车计价器。电路主要由测速模块、时钟模块、测温模块组成。设计......
    该探针的风洞标定曲线拟合出该点的标准差压,根据标准差压来计算流体的流量。同时还需用压力变送器测出流体压力,用热电阻温度计测出流体温度,把标准差压信号、压力信号、温度信号同时引入单片机构成的流量积算仪或直接接入DCS系统,一方......
    控制转速。 12v电源:供电 stm32单片机:输出pwm波 st-link调试模块:调试用,主要调pwm波和pid参数 usb转串口模块:可获取单片机打印的串口信息(可有可无) 霍尔测速传感器:测转速,5v供电......
    采用AT89C52单片机实现智能泊车系统软硬件电路的设计;引 言 随着我国汽车数量逐年急剧增多,泊车位、停车场的数量却跟不上其增长的步伐,越来越多的人为如何泊车而发愁。日益......
    电磁调速三相异步电动机测速电机只有两根接线怎么回事;  电磁调速三相异步电动机测速电机只有两根接线怎么回事   电磁调速三相异步电动机的测速电机通常也是一种异步电动机,但是......
    可以开发各种仪器仪表,如温度计、电子秤、气压计、测速仪等。   智能家居:使用51单片机可以实现对家居设备的控制和监控,如智能门锁、智能灯光、智能插座等。   总之,由于51单片机具有成本低、易于......
    基于单片机AT89C51和CAN控制器实现柴油发动机测试系统的设计;1. 引言 许多现在正在使用的柴油发动机测试平台都是通过仪表读数来分析、判断一台柴油发动机测试时的工作状态,不仅效率低、精度......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>