安卓app控制继电器和扫描盒子的简单例程

备注:由于该示例是基于友善之臂4412开发板,且用到了友善之臂官方提供的用于“硬件开发的.so“文件,及微光互联二维码扫码器,和一个串口控制继电器的SR-104A模块。文章主要是对如何调用这些现成的API做一个简单的测试。以备自己以后开发时查看。

1.找到4412开发板对底层外设的支持包
在4412光盘资料“D:\4412-DVD-A-15092\tools\libfriendlyarm-hardware”中
这里写图片描述
2.在新建的安卓工程中添加libfriendlyarm.so文件到项目的libs下。
这里写图片描述
3.把“java”下的“com”整个复制,粘贴到项目的“src”下
这里写图片描述
4.完成上述步骤后,可以依据4412官方提供的“Tiny4412 Android硬件开发指南”进行app对开发板上硬件资源的调用了。
这里写图片描述
(补充)5.以打开串口通讯为例。
5.1.查看串口相关的java类。
这里写图片描述
5.2.通过“HardwareControler.openSerialPort”来打开串口࿰

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于C51单片机的温度控制器可设置温度上限控制继电器的按键设置程序程。 ```c #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit led=P1^0; // 控制LED的引脚 sbit relay=P1^1; // 控制继电器的引脚 uchar temp=0; // 存储当前温度 uchar set_temp=30; // 存储用户设置的温度 uchar key=0; // 存储按键值 // 延时函数 void delay(uint i) { while(i--); } // 初始化函数 void init() { TMOD=0x01; // 定时器0工作在模式1 TH0=(65536-50000)/256; // 初始值为50000us TL0=(65536-50000)%256; ET0=1; // 开启定时器0中断 EA=1; // 开启总中断 TR0=1; // 启动定时器0 } // 数码管显示函数 void display(uchar n) { uchar code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 数码管显示表 P2=table[n]; } // 获取温度函数 void get_temp() { uchar code table[9]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe}; // 温度传感器返回的数据表 uchar i; for(i=0;i<9;i++) { P2=table[i]; delay(100); if(P3==0xfe) // 如果温度传感器输出低电平 { temp=i+1; break; } } } // 按键扫描函数 void keyscan() { key=0; if(P3!=0xff) { delay(1000); // 消抖 if(P3!=0xff) { switch(P3) { case 0xfe: set_temp++;break; // 按下K1键,温度上限+1 case 0xfd: set_temp--;break; // 按下K2键,温度上限-1 default: break; } while(P3!=0xff); // 等待按键松开 key=1; } } } // 主函数 void main() { init(); // 初始化 while(1) { get_temp(); // 获取当前温度 display(temp); // 数码管显示当前温度 if(temp>=set_temp) // 如果当前温度超过设定温度 { led=0; // LED灯亮 relay=1; // 继电器断开 } else { led=1; // LED灯灭 relay=0; // 继电器闭合 } keyscan(); // 按键扫描 if(key==1) // 如果有按键按下 { if(set_temp>99) set_temp=99; // 温度上限不能超过99度 if(set_temp<0) set_temp=0; // 温度上限不能小于0度 } } } // 定时器0中断服务函数,用于定时扫描按键 void timer0() interrupt 1 { TH0=(65536-50000)/256; // 初始值为50000us TL0=(65536-50000)%256; static uchar i=0; i++; if(i==20) // 20ms扫描一次按键 { i=0; keyscan(); } } ``` 这个程序程中,我们使用了数码管、LED灯和继电器来实现温度的显示、警告和控制。程序中的按键K1和K2分别用于增加和减少温度上限的设定值。程序中使用了定时器0中断来定时扫描按键,保证了按键的及时响应。其中,获取温度和按键扫描的函数需要根据具体的硬件和传感器进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值