数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 10510|回复: 37

[外设] 财务用USB数字小键盘改造成RPN计算器

  [复制链接]
发表于 2022-7-10 10:59:42 | 显示全部楼层 |阅读模式
零、前言
我是电工,经常要做些电学计算,但普通计算器太简单,不能先乘除后加减,也没有倒数,很不方便。
早就想自制一台符合心意的计算器,但试过之后才发现写软件的坑太多,调试就像打地鼠。
想到世界三大计算器厂(德仪、惠普、卡西欧)都是凭数十年经验积累才取得今天地位,我也就释然了,不要重新发明轮子。
调查了一番,发现惠普在70年代开发的一系列计算器技术资料相对完备。
其中一款HP-45定位适中,很合我意,于是决定复刻。
正好,刚入手了一款小键盘(拆解/刷机https://www.mydigit.cn/thread-323006-1-1.html)手感不错,把HP-45移植到小键盘上。

一、逆波兰式
逆波兰式(Reverse Polish notation,RPN)也叫后缀表达式,算符写在数的后面。(我们日常习惯书写的叫中缀表达式,算符在数的中间。)
比如,日常写的1+2*SIN(3+4*5),用RPN写就是4 5 * 3 + SIN 2 * 1 +。
举个例子:计算5欧和8欧电阻并联的阻值,即1/(1/5+1/8)的输入过程和栈的变化。


二、HP-45计算器
这是一款RPN科学计算器,有基本初等函数、度分秒、直角/极坐标、统计等功能。
CPU主频约784kHz,每秒执行约3500条机器码。如今的8051都能轻松秒杀它,小键盘里的单片机当然也跑得动。
官方早就停更了,现在国外仍有一些爱好者在研究它。这个链接是比较详细的介绍:https://www.hpmuseum.org/hp45.htm


三、虚拟机
HP-45的CPU构架、总线结构、指令集、ROM机器码(固件)都详细列在它的专利文件中,很容易获取到。
我据此用C语言写成HP CPU的虚拟机,在上面直接运行HP-45机器码。
由于是用ANSI C写的,可以移植到任何有C编译器的CPU上,只要以3500步/秒的速度执行,就能完全复刻当年HP-45的行为。
具体过程不多说,有兴趣的朋友可以私信交流。
这是代码仓库,是比较“正规”的写法,适用ARM使用。

四、移植到小键盘
HP-45是LED显示构成是【负号+10位底数+负号+2位指数】,完整显示需要14位7段数码管。
而这款小键盘只有8位,所以只截取前8位底数显示。如果是负数,则是负号+前7位底数。如果有指数,则是前5位底数+符号+2位指数。
5欧和8欧电阻并联的视频演示


按C51语法改动并优化(比如把函数传参改为全局变量)后,在8051上大约占用7KB ROM和200B RAM,用12M主频基本上能实现全速仿真。
如果有坛友也有兴趣,可以私信索取购买链接和固件。

五、最后
由于键位不够,无法分配函数功能,所以只有四则运算、倒数、指数、平方、开方。即使如此,也是秒杀同价位的计算器和大多数手机APP。
期待能捡到键位更多的同类键盘,到时再完整地复刻HP-45。


补充内容 (2022-8-21 17:09):
我上传附件后并没有设定价格,是系统自动标价的,不关我的事。我也找不到取消的办法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 9家元 +170 收起 理由
zzy_85569381 + 20 謝謝分享
EMZ1 + 24 专业!
vicdoo + 20 優秀文章
cushion + 20 原創內容
ch104517745 + 20 原創內容
2n3055 + 20 謝謝分享
qrut + 20
亲爱的混蛋 + 20
cutter + 6

查看全部打赏

发表于 2023-3-28 21:39:18 | 显示全部楼层
还是RPN模式好用。HP12C在用中。
回复 支持 反对

使用道具 举报

发表于 2023-3-27 12:31:10 | 显示全部楼层
好手艺,膜拜了。
回复 支持 反对

使用道具 举报

发表于 2023-3-25 15:49:57 | 显示全部楼层

这个厉害了!赞
回复 支持 反对

使用道具 举报

发表于 2023-3-23 09:56:35 | 显示全部楼层
这是一个懂编程的电工,高级工程师改的挺好。
回复 支持 反对

使用道具 举报

发表于 2023-3-22 21:11:12 | 显示全部楼层
看起来很漂亮,不错。
回复 支持 反对

使用道具 举报

发表于 2022-9-16 12:48:14 | 显示全部楼层
电工都这么卷吗
回复 支持 反对

使用道具 举报

发表于 2022-9-16 12:23:41 | 显示全部楼层

键盘功能我都想好了,就是没有能力做

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2022-9-16 10:55:43 | 显示全部楼层

这种能改吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2022-9-16 08:44:05 | 显示全部楼层
厉害,学习学习
回复 支持 反对

使用道具 举报

发表于 2022-9-15 16:41:35 | 显示全部楼层
这也能改,高手啊
回复 支持 反对

使用道具 举报

发表于 2022-9-15 14:38:37 | 显示全部楼层

高手,膜拜一下。   看着桌子底下同款小键盘,琢磨下。。。。。。
回复 支持 反对

使用道具 举报

发表于 2022-9-15 13:32:25 | 显示全部楼层
这个有后续吗?出改好的计算器吗?
回复 支持 反对

使用道具 举报

发表于 2022-7-30 14:25:54 | 显示全部楼层
触景情伤 发表于 2022-7-30 07:54
这玩意漂亮哪里撸的?

宝物不问来路。就这一套组装起来的。
外壳是自己厂激光加工的,还有三五个没组装起来的半成品。。
回复 支持 反对

使用道具 举报

发表于 2022-7-30 07:54:17 来自手机浏览器 | 显示全部楼层
jpdd521 发表于 2022-7-15 20:00
找到了这个小计算器了。。。

这玩意漂亮哪里撸的?
回复 支持 反对

使用道具 举报

发表于 2022-7-29 13:07:09 | 显示全部楼层
仿真芯片级了,强。那天试试。
回复 支持 反对

使用道具 举报

发表于 2022-7-29 10:09:49 | 显示全部楼层
有开发能力的高手!
回复 支持 反对

使用道具 举报

发表于 2022-7-29 09:56:30 | 显示全部楼层
我一直在用RealCalc,网上一大堆破解版,挺好用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-20 11:45 , Processed in 0.234001 second(s), 16 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表