学习日志
姓名:唐小玲 日期:2018.7.16
今日学习任务
|
单片机基本原理与仿真 |
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) |
|
今日开发中出现的问题汇总
| 个人单片机这一部分知识点学的不好,掌握程度不够,编写程序的时候有很多问题,需要重新多加练习编写代码。 |
今日未解决问题
| 依旧不会独立编写难度稍高的代码。 |
今日开发收获
| 1.单片机 单芯片微型计算机 2.led全亮 #include<reg51.h>
#define LED P1
void main() { P1 = 0; while(1); } 3.亮一个 #include<reg51.h> #define LED P1
sbit LED1 = P1^1;
void main() { LED1 = 0;
while(1); } 4.隔一个亮 #include<reg51.h> #define LED P1
sbit LED1 = P1^1;
void main() { P1 = 0xaa;
while(1); } 5.两个灯交替闪烁 #include<reg51.h> #define LED P1
sbit LED1 = P1^0; sbit LED2 = P1^1;
void delay() { int x = 100, i;
while(x--) { for(i=0; i<60;i++); } }
void main() { LED1 = 0;
while(1) { LED1 = 0; delay(); LED1 = 1; LED2 = 0; delay(); LED2 = 1; }
} 6.流水灯 #include<reg51.h> #define LED P1
void delay() { int x = 100, i;
while(x--) { for(i=0; i<60; i++); } }
void main() { int i; while(1) { for(i = 0; i < 8; i++) { P1 = ~(1 << i); delay(); } } } 7.依次点亮每一个灯,不熄灭已点亮的灯,直至全部点亮再熄灭 #include<reg51.h> #define LED P1
void delay() { int x = 100, i;
while(x--) { for(i=0; i<60; i++); } }
void main() { int i;
P1 = 0xff; delay();
while(1) { for(i = 0; i < 9; i++) { //P1 &= ~(1 << i); P1 <<= i; delay(); } } } 8.蜂鸣器响 #include<reg51.h> sbit Beep = P2^3;
void main() { Beep = 0; } 9.改变音调 #include<reg51.h>
sbit Beep = P2^3;
void delay(x) { int i; while(x--) { for(i=0; i<10; i++); } } void main() { while(1) { Beep = 0; delay(15);//?μ??′ó£?ò?μ÷???? Beep = 1; delay(1); } } 10.按键(按一下灯亮然后熄灭) #include<reg51.h>
sbit s2 = P3^0; sbit s3 = P3^1; sbit s4 = P3^2; sbit s5 = P3^3;
sbit led1 = P1^0; sbit led2 = P1^1; sbit led3 = P1^2; sbit led4 = P1^3; void delay(x) { int i; while(x--) { for(i=0; i<10; i++); } } int main() { while(1) { P1 = 0xff; if(s2 == 0) { led1 = 0; } else if(s3 == 0) { led2 = 0; } else if(s4 == 0) { led3 = 0; } else if(s5 == 0) { led4 = 0; } }
return 0; } 11.矩阵键盘 #include <reg51.h>
#define LED P0 sbit LED1 = P0^0; sbit LED2 = P0^1; sbit LED3 = P0^2; sbit LED4 = P0^3;
int key;
int main() { while (1) { key = 0; LED = 0xff; P3 = 0xf0;//判断哪一列被按下 if(P3 != 0xf0) { switch(P3) { case 0xe0: key = 0; break; case 0xd0: key = 1; break; case 0xb0: key = 2; break; case 0x70: key = 3; break; } P3 = 0x0f;//判断哪一行被按下 switch(P3) { case 0x0e: key += 1; break; case 0x0d: key += 5; break; case 0x0b: key += 9; break; case 0x07: key += 13; break; } }
switch (key) { case 1: LED1 = 0; break; case 2: LED2 = 0; break; case 3: LED3 = 0; break; case 4: LED4 = 0; break; } }
return 0; } |
自我评价 (是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等) | 一些简单的练习能够做出,但是有一些小知识点遗忘了,不够熟练,需要多多实践练习! |
作业 |
1.通过矩阵按键控制蜂鸣器发出不同音调的声音 #include <reg51.h>
sbit Beep = P2^3;
int key;
void delay(int x) { int i;
while(x --) { for(i = 0; i < 60; i ++); } }
int main() { while (1) { key = 0; P3 = 0xf0;//判断哪一列被按下 if(P3 != 0xf0) { switch(P3) { case 0xe0: key = 0; break; case 0xd0: key = 1; break; case 0xb0: key = 2; break; case 0x70: key = 3; break; } P3 = 0x0f;//判断哪一行被按下 switch(P3) { case 0x0e: key += 1; break; case 0x0d: key += 5; break; case 0x0b: key += 9; break; case 0x07: key += 13; break; } }
switch (key) { case 1: Beep = 0; delay(5); Beep = 1; delay(1); break; case 2: Beep = 0; delay(10); Beep = 1; delay(2); break; case 3: Beep = 0; delay(30); Beep = 1; delay(4); break; case 4: Beep = 0; delay(4); Beep = 1; delay(5); break; case 5: Beep = 0; delay(250); Beep = 1; delay(7); break; case 6: Beep = 0; delay(30); Beep = 1; delay(9); break; case 7: Beep = 0; delay(70); Beep = 1; delay(11); break; case 8: Beep = 0; delay(80); Beep = 1; delay(14); break; case 9: Beep = 0; delay(90); Beep = 1; delay(16); break; case 10: Beep = 0; delay(100); Beep = 1; delay(15); break; case 11: Beep = 0; delay(110); Beep = 1; delay(17); break; case 12: Beep = 0; delay(120); Beep = 1; delay(19); break; case 13: Beep = 0; delay(130); Beep = 1; delay(21); break; case 14: Beep = 0; delay(140); Beep = 1; delay(24); break; case 15: Beep = 0; delay(150); Beep = 1; delay(28); break; case 16: Beep = 0; delay(160); Beep = 1; delay(26); break; } } return 0; } |