|
有没有大佬能帮忙看下
单片机源程序如下:
#include <reg52.h>
#include<absacc.h>
#define uint unsigned int
#define uchar unsigned char
#define DATA P1
#define PA XBYTE[0xBcFF]
#define PB XBYTE[0xBdFF]
#define PC XBYTE[0xBeFF]
#define COM XBYTE[0xBFFF]
sbit OE = P2^5;
sbit EOC = P3^3;
sbit ST = P2^7;
sbit C1 = P3^0;
sbit C2 = P3^1;
sbit C3 = P3^2;
uint display_data = 0; /*显示数据*/
uchar code LEDData[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
void DelayMS(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
void Display_Result(uint d)
{
P2 = 0xf7;
PB = LEDData[d%10];
DelayMS(5);
P2 = 0xfb;
PB = LEDData[d%100/10];
DelayMS(5);
P2 = 0xfd;
PB = (LEDData[d%1000/100]| 0x80);
DelayMS(5);
P2 = 0xfe;
PC = LEDData[d/1000];
DelayMS(5);
}
void main()
{
COM =0X80;
C1 = 1;
C2 = 1;
C3 = 0;
while(1)
{
ST = 0;
ST = 1;
ST = 0;
while(EOC == 0);
OE = 1;
display_data = ((8.0/255) * DATA) * 1000;
Display_Result(display_data);
OE = 0;
}
}
图里面的开关本来是想要控制PB口的,全为1就输出,否则就不输出(但还没写程序)。
目的是做一个数模转换的C语言显示,必须要用8255驱动数码管,所以这有点迷茫。
|
|