学习日志 姓 名:昌 峰 日 期:2018/7/16
今日学习任务 | 了解51单片机的基本构成,会用编程来控制单片机各部件完成想要的一些操作 |
今日任务完成情况 | 今日任务基本完成,通过老师讲解了解了单片机的基本构成,并在老师的指导下通过编程仿真了解了如何实现一些简单功能。 |
今日开发中出现的问题汇总 | sbit用来定义某一位,虽然放在程序较为靠前的地方,但末端的“;”不能忘记 |
今日未解决问题 | 无 |
今日开发收获 | 1.单片机的最小单元由电源电路、晶振电路、复位电路 2.定义某一位时用sbit,如:sbit LED = P1^0 3.矩阵按键分别通过P3.0~P3.7口来确定列和行从而确定哪个按键被按下 |
自我评价 | 无 |
其他 | #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; } |