diff options
| author | DawnManget <[email protected]> | 2022-05-10 13:45:10 +0800 |
|---|---|---|
| committer | DawnManget <[email protected]> | 2022-05-10 13:45:10 +0800 |
| commit | 4d6593defe107281cd02c660d621bc1e46c87443 (patch) | |
| tree | b913da3594297b1c36f657cb2ce2f466f32a3d6d | |
| parent | e3c89983b01d79a890aa22edc7e7ebb458984117 (diff) | |
review7: add keil-c51 examples
| -rw-r--r-- | tests/projects/embed/c51/hello/src/main.c | 55 |
1 files changed, 48 insertions, 7 deletions
diff --git a/tests/projects/embed/c51/hello/src/main.c b/tests/projects/embed/c51/hello/src/main.c index 2c391f151..296324e0a 100644 --- a/tests/projects/embed/c51/hello/src/main.c +++ b/tests/projects/embed/c51/hello/src/main.c @@ -1,9 +1,50 @@ -// -// Created by DawnManget on 2022/5/10. -// #include <reg52.h> -sbit light = P0 ^ 3; -void main() { - light = 0; - while (1); + +#define REP(i, j) for(i = 0; i < j; ++i) +sbit control = P3 ^ 2; + +void delay_ms(unsigned int n) { + unsigned int i, j; + for (j = n; j > 0; j--) + for (i = 112; i > 0; i--); +} + +/*——————宏定义——————*/ +int i; + +void set(unsigned int x) { + P1 = x; + delay_ms(100); +} + +void left_fill() { + REP(i, 8) set(0xFF >> i); +} + +void right_fill() { + REP(i, 8) set((0xFF >> (7 - i)) ^ 0xFF); +} + +void left_erase() { + REP(i, 8) set((0xFF >> (7 - i))); +} + +void right_erase() { + REP(i, 8) set((0xFF >> i) ^ 0xFF); +} + +int main() { + P1 = 0xFF; + P3 = 0xFF; + while (1) { + if (control == 0) { + left_fill(); + left_erase(); + right_fill(); + right_erase(); + } else { + set(0x55); + set(0xAA); + } + } }
\ No newline at end of file |
