基于STC8H1K28的人机键盘界面
01设计背景
在很多基于STC单片机的调试版都具有统一的调试端口。为了制作简便的现场调试扫之,设计以基于STC8H1K25的人机接口板,针对不同的调试对象基于从简单的按键,到复杂的模拟量的调试接口。
▲ STC单片机的统一调试端口
02电路设计
1.原理图和PCB1
▲ 原理图
▲ PCB设计图
▲ 快速制版后的实验电路板
2.单片机软件2
/*
**==============================================================================
** MAIN.C: -- by Dr. ZhuoQing, 2020-04-23
**
**==============================================================================
*/
#include <stdio.h>#include "C51BASIC.H"
#include "STC8H.H"
//------------------------------------------------------------------------------
#define MAIN_GLOBALS 1 // Define the global variables
#include "MAIN.H"
#include "SERIALTXT.H"
#include "STRING.H"//------------------------------------------------------------------------------
#define LED 1, 7
#define BEEP_PIN 1, 2 #define BEEP_ON OFF(BEEP_PIN)
#define BEEP_OFF ON(BEEP_PIN)//------------------------------------------------------------------------------void main(void) {unsigned int nCount;unsigned int nShowCount;unsigned char ucKey;unsigned char szString[16], i;//---------------------------------------------------------------------- STC8HInit();//---------------------------------------------------------------------- MainInit();WaitTime(200);//----------------------------------------------------------------------printf("STC8H8K -- by Dr. ZhuoQing, %s,%s\r\n", __DATE__, __TIME__);//--------------------------------------------------------------------------//--------------------------------------------------------------------------nCount = nShowCount = 0; for(;;) {if(++nCount & 0x100) ON(LED);else OFF(LED);WaitTime(1);//----------------------------------------------------------------------if(++nShowCount >= 500) {nShowCount = 0;}//-------------------------------------------------------------- ucKey = ReadKey();if(ucKey != KEY_NULL) {sprintf(szString, "key%bd\r", ucKey);printf("%s\n", szString);ucKey = strlen(szString);for(i = 0; i < ucKey; i ++) {UART2SendChar(szString[i]);}} //----------------------------------------------------------------------#if SERIAL_DEBUG_ENConsoleDebug();
#endif // SERIAL_DEBUG_EN}}//------------------------------------------------------------------------------
void MainInit(void) {PM_BIDIR(LED);#if SERIAL_DEBUG_ENSerialTxtInit();
#endif // SERIAL_DEBUG_ENON(BT1_PIN);ON(BT2_PIN);ON(BT3_PIN);ON(BT4_PIN);ON(BEEP_PIN);PM_BIDIR(BT1_PIN);PM_BIDIR(BT2_PIN);PM_BIDIR(BT3_PIN);PM_BIDIR(BT4_PIN);PM_PP(BEEP_PIN);}//------------------------------------------------------------------------------
unsigned char ReadKeyCode(void) {if(VAL(BT1_PIN) == 0) return KEY_1;if(VAL(BT2_PIN) == 0) return KEY_2;if(VAL(BT3_PIN) == 0) return KEY_3;if(VAL(BT4_PIN) == 0) return KEY_4;return KEY_NULL;
}unsigned char ReadKey(void) {unsigned char ucKey;ucKey = ReadKeyCode();if(ucKey == KEY_NULL)return KEY_NULL;BEEP_ON;WaitTime(25);if(ReadKeyCode() == KEY_NULL) {BEEP_OFF;return KEY_NULL;}while(ReadKeyCode() != KEY_NULL);BEEP_OFF;// printf("%bd\r\n", ucKey);return ucKey;}//==============================================================================
// END OF THE FILE : MAIN.C
//------------------------------------------------------------------------------
电路设计AD工程文件:AD\Test\2020\STCTest\STCHMISTC8H1K.SchDoc * ↩︎
单片机程序工程文件:C51\STC\Test\2020\STCHMISTC8H1K\STCHMISTC8H1K.uvproj ↩︎
基于STC8H1K28的人机键盘界面相关推荐
- 半定制器件课程设计——基于FPGA的PS2键盘人机输入显示系统
基于FPGA的PS2键盘人机输入显示系统 第一部分 课程设计概述 1 课程设计的目的与任务 2 课程设计题目 3 设计功能要求 4 设计实现提示 5 课程设计的内容与要求 5.1 设计内容 5.2 设 ...
- 计算机视觉检测 白皓月,基于视线跟踪的操作界面的人机交互方法研究
摘要: 人机交互主要是研究人与计算机之间的信息交换,是与人机工程学,认知心理学,虚拟现实技术,多媒体技术等密切相关的综合学科.本文研究的基于视线跟踪的操作界面的人机交互方法采用桌面式双目立体视觉实时跟 ...
- ubuntu下qt模拟键盘按键按下_基于Linux+Qt软键盘设计及其实现.pdf
计算机与现代化 YUXIANDAIHUA 2011年第12期 JISUANJI 总第196期 文章编号:1006-2475(2011)12-0179-03 基于Linux Qt的软键盘设计与实现 田福 ...
- 基于YOLO的目标检测界面化部署实现(支持yolov1-yolov5、yolop、yolox)
基于YOLO的目标检测界面化部署实现(支持yolov1-yolov5.yolop.yolox) 代码下载地址:下载地址 安装 操作系统:Win10.Win7.Ubuntu16.04(其他操作系统没有测 ...
- 基于STC8H1K28的双轴机械臂驱动模块:步进电机42HS348E,BH32角度传感器
作者:卓晴博士,清华大学自动化系 更新时间:2020-08-08 Saturday ■ 设计背景 这是一款用于化学实验室样品上样器的机械臂.设置有肘关节.肩关节以及上下移动关节. ▲ 双轴机械臂结构 ...
- 基于STC8H1K28的BH60的角度读写模块
■ 简介 在博文 BH60绝对位置编码器测试 中介绍了对BH60,通过其MODBUS(485)读取相应绝对角度的方式.为了便于为了进行高精度角度实验,制作基于STC8H1K28的BH60角度读取模块. ...
- 基于地图的工作流设计器,及基于地图的业务流程办理界面(二)
基于地图的工作流设计器,及基于地图的业务流程办理界面(二) ---------------------------------------------------------------------- ...
- linux open dev/tty0 receive_buf,书写基于内核的linux键盘纪录器(p9-0e)(3)
书写基于内核的linux键盘纪录器(p9-0e)(3) 2008-04-09 04:00:06来源:互联网 阅读 () 底层tty驱动调用receive_buf()这个函数用来发送硬件设备接收处理的字 ...
- 基于易语言的键盘监听器(仅供学习)
基于易语言的键盘监听器(仅供学习) 软件原理 梳理 输入内容检测部分 发送部分 结束部分 准备工作 邮箱准备 支持库准备 模块准备 窗口准备 代码部分 程序集 启动窗口创建完毕 子程序1 编辑框1内容 ...
最新文章
- it行业php,什么是IT行业
- procexp.exe中文版---Process Explorer 进程监视V11.21中文版
- C++:sprintf()的用法(转)
- kafka分区(partition)和和分组(group)
- css怎么把横向菜单变纵向_CSS 布局模式 + 居中布局
- PHP 过滤器(Filter)
- echarts中triggeron与trigger不能同时出现吗_好物|痛风、血糖高、虚不受补能吃它吗?你想知道的阿胶十问十答一锅出!...
- H5页面移动端双击屏幕禁止页面放大
- D3.js、echar.js 前端必备大数据技能
- matplotlib中文乱码问题_MacOS解决Matplotlib的中文乱码问题
- 「译文」你必须掌握的 7 种 JavaScript 错误类型
- python覆盖数据库重复数据_如何在数据库中插入唯一数据/处理重复数据
- Atititi 软件界面gui开发之道 attilax著
- 【离散数学】数理逻辑 第二章 谓词逻辑(4) 谓词逻辑的推理理论
- 你在用FastReport.Net报表工具做报表没
- 电阻触摸屏和电容触摸屏你更喜欢哪一个?
- 多张图片合成一个tif文件
- 搜索引擎关键字热度估算查询
- springboot-shiro-jwt-redis实现用户登录的认证与授权(前后端分离)需要有一定shiro、jwt、redis、springboot基础
- win10如何截屏_Win10的10个神仙级自带工具