看代码 → 猜结果 → 补代码 → 运行验证 → 理解每一行。
#include <reg51.h> // AT89C51头文件
/*================================================
P1决定:数码管显示什么数字(段选口)亮什么数字!
P1 = 0x3F; 显示数字 0
P1 = 0x06; 显示数字 1
P1 = 0x5B; 显示数字 2
P1 = 0x4F; 显示数字 3
P1 = 0x66; 显示数字 4
P1 = 0x6D; 显示数字 5
P1 = 0x7D; 显示数字 6
P1 = 0x07; 显示数字 7
P1 = 0x7F; 显示数字 8
P1 = 0x6F; 显示数字 9
================================================*/
/*================================================
P2决定:第几个数码管亮(位选口)第几位亮
P2 = 0xFE; 选中第1位数码管
1111 1110
P2 = 0xFD; 选中第2位数码管
1111 1101
P2 = 0xFB; 选中第3位数码管
1111 1011
P2 = 0xF7; 选中第4位数码管
1111 0111
P2 = 0xFF; 四位全部关闭
1111 1111
================================================*/
//定义数组
unsigned char code seg[10] =
{
0x3F, // seg[0]:显示数字0
0x06, // seg[1]:显示数字1
0x5B, // seg[2]:显示数字2
0x4F, // seg[3]:显示数字3
0x66, // seg[4]:显示数字4
0x6D, // seg[5]:显示数字5
0x7D, // seg[6]:显示数字6
0x07, // seg[7]:显示数字7
0x7F, // seg[8]:显示数字8
0x6F // seg[9]:显示数字9
};
完整代码等你们做完作业给你们看
#include <reg51.h> // AT89C51头文件
//定义数组
unsigned char code seg[10] =
{
0x3F, // seg[0]:显示数字0
0x06, // seg[1]:显示数字1
0x5B, // seg[2]:显示数字2
0x4F, // seg[3]:显示数字3
0x66, // seg[4]:显示数字4
0x6D, // seg[5]:显示数字5
0x7D, // seg[6]:显示数字6
0x07, // seg[7]:显示数字7
0x7F, // seg[8]:显示数字8
0x6F // seg[9]:显示数字9
};
//延时函数
void delay1ms(unsigned int t)
{
unsigned int i, j;
for(i = 0; i < t; i++)
{
for(j = 0; j < 120; j++);
}
}
//主函数
等你们做完作业给你们看