模数转换器转换后的数如何转换为十进制数在数码管显示?
答案:1 悬赏:10 手机版
解决时间 2021-03-25 21:38
- 提问者网友:难遇难求
- 2021-03-24 21:55
模数转换器转换后的数如何转换为十进制数在数码管显示?
最佳答案
- 五星知识达人网友:不想翻身的咸鱼
- 2021-03-24 22:05
比如ADC0804,转换后直接就是8位数据,比如为a
则:
百位=a/100
十位=a%100/10
个位=a%10
然后送三位数码管分别显示
如果有的转换器精度高,高于8位,先把数据整合到一个整形变量里,再如上同理。追问如果AD输出的是二进制或BCD码,如何把二进制转换成十进制,如何把BCD码转换成十进制?谢谢。追答BCD码可以先转换成十六进制,假设这个BCD数为dat_tran
//BCD数转换成16进制 利用全局变量index_trans传递参数
void transform(unsigned char dat_tran)
{
unsigned char temp1,temp2;
temp1=dat_tran;
temp2=temp1/16;
temp1=temp1%16;
index_trans=temp1+temp2*10;
}
或者你改成带返回值的函数
unsigned char transform(unsigned char dat_tran)
{
unsigned char temp1,temp2, index_trans;
temp1=dat_tran;
temp2=temp1/16;
temp1=temp1%16;
index_trans=temp1+temp2*10;
return index_trans;
}追问大侠,还需要麻烦你说的更清除一些,我是刚接触程序的菜鸟,我脑海里现在只是想A/D转换出来的如果是二进制或BCD码的话,首先转换为十进制数,然后再送给数码管显示。比如,A/D转换后的结果是10111011(二进制),那我必须先转换为十进制,在转换时如何转换。谢谢。追答一般AD转换出来不是BCD,就是二进制,或者叫十六进制,比如八位,结果是10111011,你读出来可以使10111011B(二进制),也可以表示成0xbb(十六进制,4位2进制可以表示成一位16进制)。
二进制和十六进制就不用转换,单片机都认。你用AD转换出来后直接可以认为就是16进制,你要显示,把16进制转换成10进制就好了,8位二进制(或者说2位十六进制)最大的数是255,所以是3位十进制表示。
百位=a/100
十位=a%100/10
个位=a%10
就已经能达到要求了。
给你说明一下,一个数,不管是多少进制,表面上只是表示不同,实质上大小都是一样的!
则:
百位=a/100
十位=a%100/10
个位=a%10
然后送三位数码管分别显示
如果有的转换器精度高,高于8位,先把数据整合到一个整形变量里,再如上同理。追问如果AD输出的是二进制或BCD码,如何把二进制转换成十进制,如何把BCD码转换成十进制?谢谢。追答BCD码可以先转换成十六进制,假设这个BCD数为dat_tran
//BCD数转换成16进制 利用全局变量index_trans传递参数
void transform(unsigned char dat_tran)
{
unsigned char temp1,temp2;
temp1=dat_tran;
temp2=temp1/16;
temp1=temp1%16;
index_trans=temp1+temp2*10;
}
或者你改成带返回值的函数
unsigned char transform(unsigned char dat_tran)
{
unsigned char temp1,temp2, index_trans;
temp1=dat_tran;
temp2=temp1/16;
temp1=temp1%16;
index_trans=temp1+temp2*10;
return index_trans;
}追问大侠,还需要麻烦你说的更清除一些,我是刚接触程序的菜鸟,我脑海里现在只是想A/D转换出来的如果是二进制或BCD码的话,首先转换为十进制数,然后再送给数码管显示。比如,A/D转换后的结果是10111011(二进制),那我必须先转换为十进制,在转换时如何转换。谢谢。追答一般AD转换出来不是BCD,就是二进制,或者叫十六进制,比如八位,结果是10111011,你读出来可以使10111011B(二进制),也可以表示成0xbb(十六进制,4位2进制可以表示成一位16进制)。
二进制和十六进制就不用转换,单片机都认。你用AD转换出来后直接可以认为就是16进制,你要显示,把16进制转换成10进制就好了,8位二进制(或者说2位十六进制)最大的数是255,所以是3位十进制表示。
百位=a/100
十位=a%100/10
个位=a%10
就已经能达到要求了。
给你说明一下,一个数,不管是多少进制,表面上只是表示不同,实质上大小都是一样的!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯