summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDawnManget <[email protected]>2022-05-10 13:45:10 +0800
committerDawnManget <[email protected]>2022-05-10 13:45:10 +0800
commit4d6593defe107281cd02c660d621bc1e46c87443 (patch)
treeb913da3594297b1c36f657cb2ce2f466f32a3d6d
parente3c89983b01d79a890aa22edc7e7ebb458984117 (diff)
review7: add keil-c51 examples
-rw-r--r--tests/projects/embed/c51/hello/src/main.c55
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