最近本人在做一个项目,就是要将索尼LH51-2数显表的实时数据提交至电脑主机,这里的实时数据只是两个二位数码管的,即每按一次发送键,会将四位数码管的实时数据进行提交。
本人用了AT89S51编程,用的是汇编语言,已经实现了将0至9的段码值翻译成对应的十六进制ASCII值,并经RS232接口串行发送至电脑主机,利用串口调试助手显示出来,我编写的汇编源程序是通过查表的方式来实现的。
我的想法是,数码管的段码值逐位输入至P0口,逐位翻译后串行发送。但问题是,索尼LH51-2数显表中数码管的段码如何输入至AT89S51的P0口呢,如何提取数码管的段码呢,在数码管显示时,我测得每一个数码管的八段引脚都是高电平,这样一来,每次输入P0口的都是#0FFH...还有,怎样才能逐位输入至P0口,即将千位、百位、十位、个位的数码管段码逐位进行输入,如何控制,如何实现呢,或者有没有别的可行方案呢?请各位高手出谋划策,我由衷的感谢大家!!
以下附件是本人编写的汇编源程序,注:千位、百位、十位、个位的数码管的八段引脚(a、b、c...g、dp)已处理为并联,P3.3、P3.4、P3.5、P3.6分别接千位、百位、十位、个位数码管的公共端。
依次发送4组数据.rar
(6.02 KB)
|