在Keil C51中编写程序使得共阴极数码管在P0口循环显示0到9.
首先查询一下共阴极数码管数字0到9的数码表:
code int SEG_CODE[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
接下来在Keil C51的编程环境中编写代码:
//实验名称:数码管循环显示0-9。
#include <reg51.h>
/**软件延时**/
void delay(unsigned int uMs)
{
unsigned int i, j;
for(i = 0; i < uMs; i++)
{
for(j = 0; j < 500; j++);
}
}
//共阴极数码管0-9的数码表。
code int SEG_CODE[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
//主程序:
main()
{
int i;
while(1)
{
for(i = 0; i < 10; i++)
{
P0 = SEG_CODE[i]; //发送数码管的数码;
delay(200); //延时:数字显示的时间间隔。
}
}
}
接下来在Proteus中构建仿真电路图:
构建好仿真电路图后,导入之前编译好的Keil C51的hex文件到单片机中,运行电路查看实验结果。