本人小白一个,怎么使以下程序在十位加入小数点。
程序如下。
#include "config.h"
//宏定义,数码管a-g各段对应的比特,更换硬件只用改动以下8行
#define a 0x01 // AAAA
#define b 0x04 // F B
#define c 0x10 // F B
#define d 0x40 // GGGG
#define e 0x80 // E C
#define f 0x02 // E C
#define g 0x08 // DDDD H
#define h 0x20
//用宏定义自动生成段码表,很好的写法,值得学习
//更换硬件无需重写段码表
unsigned char code LED_table[]={
a+b+c+d+e+f, //"0"
b+c, //"1"
a+b+d+e+g, //"2"
a+b+c+d+g, //"3"
b+c+f+g, //"4"
a+c+d+f+g, //"5"
a+c+d+e+f+g, //"6"
a+b+c, //"7"
a+b+c+d+e+f+g, //"8"
a+b+c+d+f+g, //"9"
b+c+e+f+g, //"H"
a+f+e+g, //"C"
d+e+f, //"L"
g, //"-"
h, //"."
0x00 //black
};
extern void Dlay(uint16 t);
extern uint DisplayData2 ;
uchar Keybit1 =0;
uchar Keybit2 =0;
void Display(uint DisplayData ) //形参
{
//////////////////////////////////////数码管显示
P0 = 0X00;//清除显示
P3 = 0x00;
P0 = 0X80;//个位显示
P3 = LED_table[DisplayData % 10];
Dlay(4000);
P0 = 0X00;//清除显示
P3 = 0x00;
P0 = 0X40;//十位显示
P3 = LED_table[DisplayData % 100 / 10];
Dlay(4000);
P0 = 0X00;//清除显示
P3 = 0x00;
P0 = 0X08;//百位显示
P3 = LED_table[DisplayData % 1000 / 100];
Dlay(4000);
/////////////////////////////////////////按键读取
P0 = 0X00;//清除显示
P3 = 0x00;
P3CR =Bin(11100110); //3.4 ad口 设为输入 ,3.0-3.3开关输入
Dlay(100);
if((P3 & 0x10) ==0){
if(Keybit1 ==0){
DisplayData2 -- ;
Keybit1 =1;
}
}else{
Keybit1 =0;
}
if((P3 & 0x08) ==0){
if(Keybit2 ==0){
DisplayData2++;
Keybit2 =1;
}
}else{
Keybit2=0;
}
P3CR =Bin(11111111); //3.3 ad口 设为输入 ,3.0-3.3开关输入
}
|