archieve: homework4 test3
This commit is contained in:
@@ -44,3 +44,124 @@ void set_38_2SEG()
|
||||
ADDR3 = 1;
|
||||
ENLED = 0;
|
||||
}
|
||||
|
||||
// 7SEG number display function:
|
||||
// 0-9
|
||||
void show_number(unsigned char number)
|
||||
{
|
||||
switch (number) {
|
||||
case 0: {
|
||||
BUS1A = 0;
|
||||
BUS2B = 0;
|
||||
BUS3C = 0;
|
||||
BUS4D = 0;
|
||||
BUS5E = 0;
|
||||
BUS6F = 0;
|
||||
BUS7G = 1;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
case 1: {
|
||||
BUS1A = 1;
|
||||
BUS2B = 0;
|
||||
BUS3C = 0;
|
||||
BUS4D = 1;
|
||||
BUS5E = 1;
|
||||
BUS6F = 1;
|
||||
BUS7G = 1;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
BUS1A = 0;
|
||||
BUS2B = 0;
|
||||
BUS3C = 1;
|
||||
BUS4D = 0;
|
||||
BUS5E = 0;
|
||||
BUS6F = 1;
|
||||
BUS7G = 0;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
BUS1A = 0;
|
||||
BUS2B = 0;
|
||||
BUS3C = 0;
|
||||
BUS4D = 0;
|
||||
BUS5E = 1;
|
||||
BUS6F = 1;
|
||||
BUS7G = 0;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
case 4: {
|
||||
BUS1A = 1;
|
||||
BUS2B = 0;
|
||||
BUS3C = 0;
|
||||
BUS4D = 1;
|
||||
BUS5E = 1;
|
||||
BUS6F = 0;
|
||||
BUS7G = 0;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
case 5: {
|
||||
BUS1A = 0;
|
||||
BUS2B = 1;
|
||||
BUS3C = 0;
|
||||
BUS4D = 0;
|
||||
BUS5E = 1;
|
||||
BUS6F = 0;
|
||||
BUS7G = 0;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
case 6: {
|
||||
BUS1A = 0;
|
||||
BUS2B = 1;
|
||||
BUS3C = 0;
|
||||
BUS4D = 0;
|
||||
BUS5E = 0;
|
||||
BUS6F = 0;
|
||||
BUS7G = 0;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
case 7: {
|
||||
BUS1A = 0;
|
||||
BUS2B = 0;
|
||||
BUS3C = 0;
|
||||
BUS4D = 1;
|
||||
BUS5E = 1;
|
||||
BUS6F = 1;
|
||||
BUS7G = 1;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
case 8: {
|
||||
BUS1A = 0;
|
||||
BUS2B = 0;
|
||||
BUS3C = 0;
|
||||
BUS4D = 0;
|
||||
BUS5E = 0;
|
||||
BUS6F = 0;
|
||||
BUS7G = 0;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
case 9: {
|
||||
BUS1A = 0;
|
||||
BUS2B = 0;
|
||||
BUS3C = 0;
|
||||
BUS4D = 0;
|
||||
BUS5E = 1;
|
||||
BUS6F = 0;
|
||||
BUS7G = 0;
|
||||
BUS8DP = 1;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,35 @@
|
||||
|
||||
#include "homework4.h"
|
||||
|
||||
unsigned char cnt = 0; // 定时器溢出计数
|
||||
unsigned char second = 0; // 秒计数
|
||||
|
||||
void test3()
|
||||
{
|
||||
set_38_2SEG();
|
||||
TMOD = 0x01;
|
||||
TH0 = 0x3C;
|
||||
TL0 = 0xB0;
|
||||
TR0 = 1;
|
||||
|
||||
// 初始化时立即显示0
|
||||
second = 0;
|
||||
show_number(0);
|
||||
|
||||
while (1) {
|
||||
if (TF0 == 1) {
|
||||
TF0 = 0;
|
||||
TH0 = 0x3C;
|
||||
TL0 = 0xB0;
|
||||
if (++cnt >= 20) {
|
||||
cnt = 0;
|
||||
|
||||
second = (second < 9) ? ++second : 0;
|
||||
|
||||
show_number(second); // 调用显示函数
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
|
||||
Reference in New Issue
Block a user