单片机控制数码管显示程序

来源:百度知道 编辑:UC知道 时间:2024/06/04 05:23:58
单片机控制数码管显示的程序问题,要求用单片机控制输入在4个4位8段数码管上显示的程序,比如给你一个0.1的八进制输入 要求在4个数码管上显示0.1的数字,跪求相应的C语言程序 高分啊

/*********************************************************
164串行输出段码:
P4.4 U164CP
P4.5 U164D
138输出位选
P4.3选通138
P4.0对应138A
P4.1对应138A
P4.2对应138A
*********************************************************/
void disp(void)
{
unsigned char i=0,j=0;
unsigned char temp_wei=0x0,temp_duan=0;
P4DIR=0x3f;
for(i=0;i<8;i++)
{
P4OUT&=~BIT3; //使能138
temp_duan=seg[digit[i]];
_NOP();
for(j=0;j<8;j++)
{
if(temp_duan&0x80)
P4OUT |= BIT5;
else
P4OUT &= ~BIT5;
temp_duan=temp_duan<<1;
P4OUT &= ~BIT4;
P4OUT |= BIT4;
}
P4OUT = (P4IN&0xf8) | temp_wei;
P4OUT |= BIT3;
temp_wei++;
delay(380);
}
P4OUT &= ~BIT3;
}

/* ×××××××××××××××××××××
4位led 显示程序
×××××××××××××××××××××××*/
void display(void)
{ uint i,j;
j=0xfe;
for(i=0;i<4;i++)
{