archieve: homework4 test3
This commit is contained in:
@@ -44,3 +44,124 @@ void set_38_2SEG()
|
|||||||
ADDR3 = 1;
|
ADDR3 = 1;
|
||||||
ENLED = 0;
|
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"
|
#include "homework4.h"
|
||||||
|
|
||||||
|
unsigned char cnt = 0; // 定时器溢出计数
|
||||||
|
unsigned char second = 0; // 秒计数
|
||||||
|
|
||||||
void test3()
|
void test3()
|
||||||
{
|
{
|
||||||
set_38_2SEG();
|
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()
|
void main()
|
||||||
|
|||||||
Reference in New Issue
Block a user