swordshe 发表于 2005-4-20 16:40:13

ICCAVR中,怎么将unsigned int 类型的数字1234,转换成在1602b液晶屏上显示的“12.34”

ICCAVR中,怎么将unsigned int 类型的数字1234,转换成在1602b液晶屏上显示的“12.34”啊?

greatsnows 发表于 2005-4-20 16:50:51

显示(1234/100) 再显示"."再显示(1234%100)

machao 发表于 2005-4-20 18:26:39

unsigned int 类型的数字范围0-65536,如果你确定小数点为2位(定点数),那么就是0.00-655.35。

   1。开一个5个单元的char[]数组

   2。设计一16位二进制转BCD码的函数,将INT变量的各个位(万、千、百、十、个)转换后放入char[]中。

   3。将char[]中的每一个单元的数加上0X30送显示(ASCII,一般LCD),或将char[]中的每一个单元的数转换成7段码输出(LED数码管)。

swordshe 发表于 2005-4-21 09:19:56

谢谢,我先试试

fsclub 发表于 2005-6-20 12:24:51

不用这样.

Display(NUM/1000);

Display((NUM%1000)/100);

Display('.');

Display((NUM%100)/10);

Display(NUM%10);

AVR-MEGA128 发表于 2005-6-21 19:42:39

不错啊 楼上的

songyiwei 发表于 2005-7-29 21:11:59

马朝老师,那如果用浮点数该怎么做呢?

machao 发表于 2005-8-1 04:35:11

6楼,这恐怕不是AVR的问题吧,你使用任何的单片机都会出现这个问题。把数字电路等基础的东西打扎实,否则你不会真正掌握AVR的应用。
页: [1]
查看完整版本: ICCAVR中,怎么将unsigned int 类型的数字1234,转换成在1602b液晶屏上显示的“12.34”