51单片机的问题,stc15f2k60s2的开发板上
以下是数码管是共阴极的在stc15f2k60s2的数码管是共阳极
这是我在KEIL5上自己敲的代码
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code temp[]={0x7d,0x06,0x06,0x4f,0x7d,0x3f,0x5b,0x5b};
uchar code zt[]={0x3f,0x4f,0x40,0x3f,0x06,0x40,0x4f,0x3f};
void delayms(uint n)
{
uchar i;
while(n--)
for(i=0;i<113;i++);
}
void main()
{
uchar i,k,h,j=0x7f;
while(1)
{
for(h=0;h<120;h++)
{
for(i=0;i<8;i++)
{
j=_crol_(j,1);
P2=j;
P0=temp[i];
delayms(2);
P2=0xff;
}
}
for(h=0;h<120;h++)
{
for(k=0;k<8;k++)
{
j=_crol_(j,1);
P2=j;
P0=zt[k];
delayms(2);
P2=0xff;
}
}
}
}
在8片数码管上分屏显示自己的学号和生日(生日格式为:年年-月月-日日)。即先显示自己的学号,一段时间后再显示自己的生日,如此反复循环。
在仿真图上我运行是成功的,我想问一下转换到STC15F2K60S2的代码怎么写
将共阳数码管接口与共阴数码管接口进行对应转换即可。具体来说,将原来控制共阴数码管的代码中的高电平改为低电平,低电平改为高电平,即可控制共阳数码管。例如,将原来的代码:
sbit LED1=P0^0; //共阴数码管第一位控制引脚
LED1=0; //打开第一位数码管
转换为:
sbit LED1=P0^0; //共阳数码管第一位控制引脚
LED1=1; //打开第一位数码管
需要注意的是,共阴数码管与共阳数码管的显示方式相反,需要自行调整显示的数字。