最新回复
/****************************数码管显示***********************************/
#include "51.h"
extern uint16 TimeBase;
sbit DT_DOOR1 =P1^0; //逻辑门控位
sbit DT_DOOR2 =P1^1;
//sbit DT_DOOR3 =P1^2;
//sbit DT_DOOR4 =P1^3;
#define DT_DATA_PORT P0 //数码管数据输出端口
// 0
//5 1
// 6
//4 2
// 3 7
#define DT_POINTBIT 0x80 //小数点位,清除此位小数点显示
const uint8 Digtal_Tube_Code[16]= { //数码管编码
//0 1 2 3 4 5 6 7 8 9
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
//A b C d E F
0x88,0x83,0xc6,0xa1,0x86,0x8e
//H L P r o h u n J
};
uint8 DT_Display_Data[4]; //四个数码管显示数据存储
void Digtal_Tube_Scan(void) {
if (TimeBase&1) {
DT_DOOR1=0;
DT_DOOR2=1;
DT_DATA_PORT=DT_Display_Data[0];
} else {
DT_DOOR1=1;
DT_DOOR2=0;
DT_DATA_PORT=DT_Display_Data[1];
}
}
void DT_Display_HEX_uint8(uint8 dat) {
DT_Display_Data[0]=Digtal_Tube_Code[dat>>4];
DT_Display_Data[1]=Digtal_Tube_Code[dat&0x0f];
}
详情
回复
发表于 2012-12-19 11:01
| |
|
|
此帖出自51单片机论坛
| ||
|
||
EEWorld Datasheet 技术支持