第五章 心得体会
经过调试之后,使用单片机来模拟电梯的运行过程的是可行的,但是由于我选用的是方案一,模型比较简单,功能也较为单一。仅能上下升降而不可以选择任意的楼层停止。
改进的话就应该如同方案二一样,设计多个按键就可以对不同楼层进行操作。但是由于自身水平有限,对于该段操作流程理解的逻辑流程还是有点些乱,编写的程序也无法使用,所以在接下来的学习中,应该根据自身的对于单片机掌握的情况对单片机进行一些有针对性的学习。因为51单片机确实比较基础,仅有8位IO口,比较容易掌握。难的是自己的逻辑思维能力和C语言应用能力,能讲模型转化为程序编辑出来。在参考资料的过程中,有很多想法也设计了很多程序但是这些程序都有着很多的缺陷仅能完成自己想做的部分功能。
还有需要改进的地方就是编写的时候很多可以用宏定义定义的常数都没有用宏定义去定义参数。
总的来说,这段时间对于程序的编写和对于方案的设计有一定程度的提升自身的水平。
#include
#include
#define uchar unsigned char
#define uint unsigned int
***it p36 = P3^6;//p36接通P3.6接口
***it p37 = P3^7; //p37接通P3.7接口
void delay(uint t);//定义全局变量
uint terminal;
uint outset = 0;
uint flag = 0;
uint flag1 = 0;
uint flag2 = 0;
uchar code scan[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//扫描代码
//以下为显示“0,1,2,3,4,5,6,7,8”的8x8点阵代码
uchar code zm[] = {
0x00,0x18,0x24,0x24,0x24,0x24,0x18,0x00,0x00,0x10,0x1c,0x10,0x10,0x10,0x3c,0x00,0x00,0x38,0x44,
0x40,0x20,0x10,0x7c,0x00,0x00,0x38,0x44,0x30,0x40,0x44,0x38,0x00,0x00,0x20,0x30,0x28,0x24,0x7e,
0x20,0x00,0x00,0x7c,0x04,0x3c,0x40,0x40,0x3c,0x00,0x00,0x38,0x44,0x3c,0x44,0x44,0x38,0x00,0x00,
0x7e,0x40,0x40,0x20,0x10,0x10,0x00,0x00,0x38,0x44,0x38,0x44,0x44,0x38,0x00};
//以下函数功能:提示楼层到,蜂鸣器发声及LED闪亮
void soundandled(uint j)
{
uint i,k;
P0 = 0xff;
P2 = 0xff;
for(i = 0;i 《 20;i++)
{
p36 = 0;
delay(10);
p36 = 1;
for(k = 0;k 《 8;k++)
{
P0 = scan[k];
P2 = zm[j * 8 + k];
p37 = 1;
delay(5);
p37 = 0;
}
}
}
unsigned int keyscan(void)//扫描功能:键盘扫描
{