archieve: homework5 test1
This commit is contained in:
@@ -18,7 +18,9 @@
|
||||
},
|
||||
"targets": {
|
||||
"Debug": {
|
||||
"excludeList": [],
|
||||
"excludeList": [
|
||||
"src/test.c"
|
||||
],
|
||||
"toolchain": "Keil_C51",
|
||||
"compileConfig": {
|
||||
"options": "null"
|
||||
|
||||
@@ -1,44 +1,45 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"files.autoGuessEncoding": true,
|
||||
"C_Cpp.default.configurationProvider": "cl.eide",
|
||||
"C_Cpp.errorSquiggles": "disabled",
|
||||
"files.associations": {
|
||||
".eideignore": "ignore",
|
||||
"*.a51": "a51",
|
||||
"*.h": "c",
|
||||
"*.c": "c",
|
||||
"*.hxx": "cpp",
|
||||
"*.hpp": "cpp",
|
||||
"*.c++": "cpp",
|
||||
"*.cpp": "cpp",
|
||||
"*.cxx": "cpp",
|
||||
"*.cc": "cpp"
|
||||
},
|
||||
"[yaml]": {
|
||||
"editor.insertSpaces": true,
|
||||
"editor.tabSize": 4,
|
||||
"editor.autoIndent": "advanced"
|
||||
}
|
||||
},
|
||||
"extensions": {
|
||||
"recommendations": [
|
||||
"cl.eide",
|
||||
"keroc.hex-fmt",
|
||||
"xiaoyongdong.srecord",
|
||||
"hars.cppsnippets",
|
||||
"zixuanwang.linkerscript",
|
||||
"redhat.vscode-yaml",
|
||||
"IBM.output-colorizer",
|
||||
"cschlosser.doxdocgen",
|
||||
"ms-vscode.vscode-serial-monitor",
|
||||
"alefragnani.project-manager",
|
||||
"cl.stm8-debug"
|
||||
]
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"files.autoGuessEncoding": true,
|
||||
"C_Cpp.default.configurationProvider": "cl.eide",
|
||||
"C_Cpp.errorSquiggles": "disabled",
|
||||
"files.associations": {
|
||||
".eideignore": "ignore",
|
||||
"*.a51": "a51",
|
||||
"*.h": "c",
|
||||
"*.c": "c",
|
||||
"*.hxx": "cpp",
|
||||
"*.hpp": "cpp",
|
||||
"*.c++": "cpp",
|
||||
"*.cpp": "cpp",
|
||||
"*.cxx": "cpp",
|
||||
"*.cc": "cpp",
|
||||
"REG52.H": "cpp"
|
||||
},
|
||||
"[yaml]": {
|
||||
"editor.insertSpaces": true,
|
||||
"editor.tabSize": 4,
|
||||
"editor.autoIndent": "advanced"
|
||||
}
|
||||
},
|
||||
"extensions": {
|
||||
"recommendations": [
|
||||
"cl.eide",
|
||||
"keroc.hex-fmt",
|
||||
"xiaoyongdong.srecord",
|
||||
"hars.cppsnippets",
|
||||
"zixuanwang.linkerscript",
|
||||
"redhat.vscode-yaml",
|
||||
"IBM.output-colorizer",
|
||||
"cschlosser.doxdocgen",
|
||||
"ms-vscode.vscode-serial-monitor",
|
||||
"alefragnani.project-manager",
|
||||
"cl.stm8-debug"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
// homework5.h
|
||||
/*
|
||||
* this header defines:
|
||||
* variables:
|
||||
* 1. pin numbers to control the LED and the Seg.
|
||||
* 2. the function to control the LED and the Seg.
|
||||
* 3. the function to display the number on the Seg.
|
||||
* 4. the function to set the 38 transistors.
|
||||
* 2. sdf for timer
|
||||
* functions:
|
||||
* 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>
|
||||
@@ -37,4 +42,26 @@ void set38Transistors(unsigned char number) // set the 38 transistors.
|
||||
ADDR2 = (number & 0x04) >> 2;
|
||||
ADDR1 = (number & 0x02) >> 1;
|
||||
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