一、实验目的
熟悉金属探测器的原理;
外部中断的使用;
OLED屏幕的使用;
二、器材
stc8a8k自制核心板;
金属接近传感器;
OLED屏幕;
三、原理
金属接近传感器,用的是这种。也可以买其他的,原理差不多
图中,这个传感器的电源是10-30V,但是经过测试,5V也能用,不过检测距离等有所变小。、 注意,应该把金属应该在这个圆形的下方。这个是感觉的地方。
当没有金属在下面,那么就是5V,当有金属在下面,就是0.5V,从5v—0.5v,发生下降沿。用下降沿触发外部中断P32,当开启了下降沿触发模式,P32引脚接收到下降沿信号,那么在中断服务函数里面,进行相关设置。
代码:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46#include <stc8a8k.h> #include <oled.h> unsigned char metalflag=0; void delay1ms(unsigned int tms) //@11.0592MHz { unsigned char i, j; unsigned int k; for(k=tms;k>0;k--) { i = 15; j = 90; do { while (--j); } while (--i); } } //P32中断0的中断服务函数 void INT0_Isr() interrupt 0 using 1 { metalflag=1; //将标记位置1,主程序查询这个变量是不是变化 } void main() { IT0 = 1; //使能INT0下降沿中断 EX0 = 1; //使能INT0中断 EA = 1; OLED_Init(); OLED_ShowString(0,0,"oou"); while (1) { if(metalflag==1) { EX0 = 0; //检测到,就关闭中断,进行设置,不然可能会不断进入中断 OLED_ShowString(0,0,"yyw"); //显示,蜂鸣器,LED灯亮灭亮灭,执行对应动作; delay1ms(5000); EX0 = 1; //用完,就打开中断,给下次检测用 metalflag=0;//给下次检测用 } else OLED_ShowString(0,0,"oou"); } }
最后
以上就是重要彩虹最近收集整理的关于实例10、Stc8a8k金属探测实验,外部中断P32接收下降沿触发信号的全部内容,更多相关实例10、Stc8a8k金属探测实验内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复