单片机 LCD1602 C语言小数怎么表示
发布网友
发布时间:2022-04-26 23:34
我来回答
共1个回答
热心网友
时间:2022-05-11 10:39
展开1全部1.首先你定义的speed是无符号字符型
在执行speed=1.1*ncounter 后speed的值也是整数,小数后面的数会被省略,你需要将speed定义为小数型:float speed;
2.你的ncounter是多大的数?是否比speed最大范围值大,如果大可能数据就乱了!
dian=speed*10,dian这个数也要同上考虑
3.小数点的数可以考虑使用:
dian=(speed%1)*10;//取出小数点后一位的数乘以10,变成整数显示,你要显示成小数显示程序里前面加个点的符号隔开就行了!追问我已经理解了你说的了,先感谢一下。然后还想继续问一下,这里的dian ncounter 都是unsigned char。对于dian = (speed&0x0f)*62.5/100这句,有个回答是这样理解这一句。他说无符号字符型是八位,后四位是小数位,所以取这后四位。这里用4位表示小数,二进制表示小数,后一位是前一位的2分之一,这里有4位就是每一位是0.0625个单位。是这么说的,这是对的吗?
追答
按你那公式得到的也不是正确的小数啊
单片机 LCD1602 C语言小数怎么表示
dian=(speed%1)*10;//取出小数点后一位的数乘以10,变成整数显示,你要显示成小数显示程序里前面加个点的符号隔开就行了!
LCD1602用C语言编程如何显示字符?
WriteCommandLCM(0x06,1); // 显示光标移动设置 WriteCommandLCM(0x0C,1); // 显示开及光标设置 } //写数据 void WriteDataLCM(unsigned char WDLCM){ ReadStatusLCM(); //检测忙 LCM_D4_RS = 1;LCM_D5_RW = 0;if(_LCD_BIT_IS == 8) //CPU与LCD1602间使用DB0-DB8这8根数...
关于单片机的LCD显示问题
1.LCD1602是并行数据接口,就要D0~D7同时输入8位数,不可以只送一位数。所以,接单片机的四个并行口P0,P1,P2,P3的任一个都行,只是习惯上都接在P0口上,但不是固定这样的。2.必须同时给8位数,如果只给一位,LCD1602也会按8位数接收的,其余7位就是未知的,也就没有意了。3.D0~D7送出的...
单片机控制的LCD1602数字钟的C语言编程
而对于单片机来说,1602好比那个瓶子漏斗,写入1602中要显示的数据好比油,如果以单片机的高运行速度向1602写数据就很可能造成上面所说的溢出,比如连续写入abc,结果只显示出了a,这是因为1602的显示芯片每次都要花时间来处理输入的ascii码数据,并把它显示出来。而我们却不容易主动地去控制写入数据的速度...
这条lcd1602的C程序怎么总是有错误的?
l=line*0x10;for(i=0;i<16;i++)showchar(l++,*(ptr+i));} /***ptr类型声明有问题吧,还有showchar两个参数之间要用逗号,要全小写,跟上面的保持一致,指针变量ptr要明确声明unsigned char *ptr,还有,如果你的字符串不够16个这样就不太好吧,改一下吧:***/ void ShowString(unsigned c...
在pic中如何用C语言编写程序?
PIC单片机的开发软件MPLAB没有集成C语言编译器。需要另外安装。如果你用的是PIC10、PIC12、PIC16等这些系列的单片机,就要去Microchip的网站下HT-PICC for PIC12/16的C编译器。如果是PIC18的话,就要下MCC18,如果是PIC24和dsPIC系列的,就要用C30编译器。还有,所用的PIC单片机不同系列,C程序编写方式也不同。你光...
求 关于 用单片机和4*4矩阵键盘输入数字并在LCD1602上显示出来的C语言...
define uchar unsigned char uchar code table[10] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x09};//这三个引脚参考资料 sbit E=P2^7;//1602使能引脚 sbit RW=P2^6;//1602读写引脚 sbit RS=P2^5;//1602数据/命令选择引脚 / 名称 : Delay_1ms()功能 :...
单片机 用LCD1602 C语言编程,如何让第一行显示字符串(比如“welcome...
地址 第一行第一列是0X80,第二行第一列是0XC0
单片机C语言数组赋值求助
{//初始化LCD1602LCD_WriteCmd(0x38);LCD_WriteCmd(0x0C);LCD_WriteCmd(0x06);LCD_WriteCmd(0x01);}void LCD_SetCursor(uchar Line,uchar Column){//选择显示的行和列:参数一代表行,参数二代表列LCD_WriteCmd(Line==1?0x80+(Column-1):0xC0+(Column-1));}void LCD_ShowString(uchar Line,uchar ...
...做温度采集与显示(LED数码管)请问用C语言怎么写。给个例程
LCD_Write_Char(14,1,'C'); //写入字符Cwhile (1) //主循环 {if(ReadTempFlag==1) { ReadTempFlag=0; temp=ReadTemperature(); temperature=(float)temp*0.0625; sprintf(displaytemp,"Temp % 7.3f",temperature);//打印温度值 LCD_Write_String(0,1,displaytemp);//显示第二行 } }}/*--- ...