本人小白一個,怎么使以下程序在十位加入小數(shù)點。
程序如下。
#include "config.h"
//宏定義,數(shù)碼管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 ) //形參
{
//////////////////////////////////////數(shù)碼管顯示
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開關輸入
}
|