8位AD转换器转换结果如何动态显示
有6个数码管,一号数码管显示模式数,二号数码管显示绳号数,三号数码管显示正负号,剩下三个数码管显示AD转换结果,AD转换结果保存在R0中,模式数和绳号数可以放在数显缓冲区...
有6个数码管,一号数码管显示模式数,二号数码管显示绳号数,三号数码管显示正负号,剩下三个数码管显示AD转换结果,AD转换结果保存在R0中,模式数和绳号数可以放在数显缓冲区,可RO对应了三个数码管,如何动态显示,数显缓冲区和地址怎么分配,请指点!还有R08位,对应三位数,可模式数和绳号数放在数显缓冲区也是8位,怎么对应一位数呢?
“将所有的数值都转换成BCD码的格式”,如何转换呢,我用的软件译码,应该就是查表了。是吗?
两个独立式非编码按键,都采用动循环计数,比如绳号键按一下表示绳号1,再按一下显示绳号2,AD就采集绳号2的数据,到4时在回到1,模式键也有3种,和绳号键一样的原理,模式之间的区别只是公式的不同,该怎么写流程呢,我用的查询按键,如果按下一个键就可以执行相应的程序,那好办,现在是两个键相互制约,还是循环计数的,显示时不能只考虑一个键,还得知道另一个键是几绳号或模式几,万一我还没显示,又按下了一个键,会不会有问题 展开
“将所有的数值都转换成BCD码的格式”,如何转换呢,我用的软件译码,应该就是查表了。是吗?
两个独立式非编码按键,都采用动循环计数,比如绳号键按一下表示绳号1,再按一下显示绳号2,AD就采集绳号2的数据,到4时在回到1,模式键也有3种,和绳号键一样的原理,模式之间的区别只是公式的不同,该怎么写流程呢,我用的查询按键,如果按下一个键就可以执行相应的程序,那好办,现在是两个键相互制约,还是循环计数的,显示时不能只考虑一个键,还得知道另一个键是几绳号或模式几,万一我还没显示,又按下了一个键,会不会有问题 展开
1个回答
展开全部
将所有的数值都转换成BCD码的格式.既然模式数和绳号数都只有一个数码管显示,也就是说不会大于等于10,则取模式数和绳号数BCD码的个位就可以了,R0中的AD值转换BCD码后也是3个BCD数,分别对应百位,十位,个位的数码管,用扫描方式显示的话,则将模式数,绳号数,符号位,百位,十位,个位,按顺序放入连续的内存中,有6个数码管,就显示6次,每显示一次后数据地址和数码管位选地址加一,并延时50MS,6次做完后做AD采样,再次转BCD,排序,显示,无限的循环下去.
但是这样的话显示的数字会跳动的厉害,最好是在主程序中做多次采样后算个平均值,开个50MS 的计时器,显示的子程序在计时器的中断中做,中断程序只显示一个数码管的数值,显示一次后数据地址和数码管位选地址加一,计数加一,判断计数是否为6,是则清0,
然后将数据地址和数码管位选地址初始化,中断返回,主程序中反复做采样,平均值计算和数据排序
采样次数可以自己控制.
但是这样的话显示的数字会跳动的厉害,最好是在主程序中做多次采样后算个平均值,开个50MS 的计时器,显示的子程序在计时器的中断中做,中断程序只显示一个数码管的数值,显示一次后数据地址和数码管位选地址加一,计数加一,判断计数是否为6,是则清0,
然后将数据地址和数码管位选地址初始化,中断返回,主程序中反复做采样,平均值计算和数据排序
采样次数可以自己控制.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询