archieve: homework5 test1
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -18,7 +18,9 @@
|
|||||||
},
|
},
|
||||||
"targets": {
|
"targets": {
|
||||||
"Debug": {
|
"Debug": {
|
||||||
"excludeList": [],
|
"excludeList": [
|
||||||
|
"src/test.c"
|
||||||
|
],
|
||||||
"toolchain": "Keil_C51",
|
"toolchain": "Keil_C51",
|
||||||
"compileConfig": {
|
"compileConfig": {
|
||||||
"options": "null"
|
"options": "null"
|
||||||
|
|||||||
@@ -18,7 +18,8 @@
|
|||||||
"*.c++": "cpp",
|
"*.c++": "cpp",
|
||||||
"*.cpp": "cpp",
|
"*.cpp": "cpp",
|
||||||
"*.cxx": "cpp",
|
"*.cxx": "cpp",
|
||||||
"*.cc": "cpp"
|
"*.cc": "cpp",
|
||||||
|
"REG52.H": "cpp"
|
||||||
},
|
},
|
||||||
"[yaml]": {
|
"[yaml]": {
|
||||||
"editor.insertSpaces": true,
|
"editor.insertSpaces": true,
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
// homework5.h
|
// homework5.h
|
||||||
/*
|
/*
|
||||||
* this header defines:
|
* this header defines:
|
||||||
|
* variables:
|
||||||
* 1. pin numbers to control the LED and the Seg.
|
* 1. pin numbers to control the LED and the Seg.
|
||||||
* 2. the function to control the LED and the Seg.
|
* 2. sdf for timer
|
||||||
* 3. the function to display the number on the Seg.
|
* functions:
|
||||||
* 4. the function to set the 38 transistors.
|
* 1. control the LED and the Seg.
|
||||||
|
* 2. to display the number on the Seg.
|
||||||
|
* 3. to set the 38 transistors.
|
||||||
|
* 4. to display the number on the Seg.
|
||||||
|
* 5. timer.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <REG52.H>
|
#include <REG52.H>
|
||||||
@@ -38,3 +43,25 @@ void set38Transistors(unsigned char number) // set the 38 transistors.
|
|||||||
ADDR1 = (number & 0x02) >> 1;
|
ADDR1 = (number & 0x02) >> 1;
|
||||||
ADDR0 = (number & 0x01);
|
ADDR0 = (number & 0x01);
|
||||||
}
|
}
|
||||||
|
// timer
|
||||||
|
int timer(unsigned int ms)
|
||||||
|
{
|
||||||
|
TMOD &= 0xF0; // set the timer mode to 16-bit timer mode.
|
||||||
|
TMOD |= 0x01; // set the timer mode to 16-bit timer mode.
|
||||||
|
|
||||||
|
// 1ms timer definition:
|
||||||
|
TH0 = 0XFC;
|
||||||
|
TL0 = 0X18;
|
||||||
|
|
||||||
|
// start the timer:
|
||||||
|
TR0 = 1;
|
||||||
|
|
||||||
|
while (ms--) {
|
||||||
|
while (!TF0) {} // wait for the timer to overflow.
|
||||||
|
TF0 = 0; // clear the timer flag.
|
||||||
|
TH0 = 0XFC; // reload the timer value.
|
||||||
|
TL0 = 0X18; // reload the timer value.
|
||||||
|
}
|
||||||
|
TR0 = 0; // stop the timer.
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
// test1.c
|
||||||
|
// 数码管动态显示自己学号后6位
|
||||||
|
// display the last 6 digits of your student ID on the Seg.
|
||||||
|
|
||||||
|
#include "homework5.h"
|
||||||
|
|
||||||
|
unsigned char code LedChar[] = {
|
||||||
|
0xC0,
|
||||||
|
0xF9,
|
||||||
|
0XA4,
|
||||||
|
0XB0,
|
||||||
|
0X99,
|
||||||
|
0X92,
|
||||||
|
0X82,
|
||||||
|
0XF8,
|
||||||
|
0X80,
|
||||||
|
0X90,
|
||||||
|
0X88,
|
||||||
|
0X83,
|
||||||
|
0XC6,
|
||||||
|
0XA1,
|
||||||
|
0X86,
|
||||||
|
0X8E,
|
||||||
|
};
|
||||||
|
unsigned char LedBuff[6] = {
|
||||||
|
0xFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF};
|
||||||
|
unsigned char i = 0;
|
||||||
|
|
||||||
|
void test1()
|
||||||
|
{
|
||||||
|
// display the number on the Seg.
|
||||||
|
LedBuff[5] = LedChar[1];
|
||||||
|
LedBuff[4] = LedChar[3];
|
||||||
|
LedBuff[3] = LedChar[0];
|
||||||
|
LedBuff[2] = LedChar[0];
|
||||||
|
LedBuff[1] = LedChar[7];
|
||||||
|
LedBuff[0] = LedChar[1];
|
||||||
|
while (1) {
|
||||||
|
/*
|
||||||
|
* seg id on 38 transistors:
|
||||||
|
* Y0: LEDS0 the latest digit.
|
||||||
|
* Y1: LEDS1 the second digit.
|
||||||
|
* Y2: LEDS2 the third digit.
|
||||||
|
* Y3: LEDS3 the forth digit.
|
||||||
|
* Y4: LEDS4 the fifth digit.
|
||||||
|
* Y5: LEDS5 the highest digit.
|
||||||
|
* Y6: 2LED to the LED lights.
|
||||||
|
*/
|
||||||
|
set38Transistors(i);
|
||||||
|
P2 = LedBuff[i];
|
||||||
|
i++;
|
||||||
|
timer(1);
|
||||||
|
// reset the i to 0 when it reaches 6.
|
||||||
|
if (i >= 6) {
|
||||||
|
i = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
test1();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user