历史上的今天
今天是:2024年10月13日(星期日)
2020年10月13日 | 单片机按键模块与CH9328的使用源程序
2020-10-13 来源:51hei
我用的是stc系列的单片机(stc89c52rc),现在12和15抗干扰能力更强(推荐使用)。键盘模块用的是ch9328模块(如下图)
把单片机最小系统板的RXD与ch9328模块的TXD相连,TXD与模块的RXD相连。
按钮可以接到p0.0到p0.7等等,另一端接的是地,输出在电脑上的是数字的123......等等。
单片机源程序如下:
#include "reg52.h"
sbit k1=P1^0;//编码器开关接口
sbit k2=P1^1;//编码器开关接口
sbit k3=P1^2;//编码器开关接口
sbit k4=P1^3;//编码器开关接口
sbit k5=P1^4;//编码器开关接口
sbit k6=P1^5;//编码器开关接口
sbit k7=P1^6;//编码器开关接口
sbit k8=P1^7;//编码器开关接口
sbit k9=P2^0;//编码器开关接口
sbit k10=P2^1;//编码器开关接口
sbit k11=P2^2;//编码器开关接口
sbit k12=P2^3;//编码器开关接口
//编码器C接口直接接地
unsigned char key[8],i;
void sendbyte(unsigned char b)//串口发送字符
{
SBUF=b;
while(!TI);
TI=0;
}
void init()//初始化函数
{
//SCON=0X50; //设置为工作方式1
SCON=0X40; //设置为工作方式1 1123
TMOD=0X20; //设置计数器工作方式2
PCON=0X80; //波特率加倍
TH1=0Xfa; //计数器初始值设置,波特率9600,0xf4:22.1184M;0xfa:11.0592M
// PCON=0X00; //波特率加倍
// TH1=0Xfd; //计数器初始值设置,波特率9600,0xf4:22.1184M;0xfa:11.0592M
TL1=TH1;
TR1=1; //打开计数器
}
void delay(int x)//延时1Ms函数
{
unsigned char a,b;
for(x;x>0;x--)
for(b=80;b>0;b--)
for(a=10;a>0;a--);
}
void keys()
{
for(i=0;i<8;i++) key[i]=0x00;
if(k1==0)
{
delay(10);
if(k1==0)
{
key[2]=0x31;
for(i=0;i<8;i++)
sendbyte(key[i]);
while(!k1);
}
}
if(k2==0)
{
delay(10);
if(k2==0)
{
key[2]=0x32;
for(i=0;i<8;i++)
sendbyte(key[i]);
key[2]=0x00;//按下后发送的松开
for(i=0;i<8;i++)
sendbyte(key[i]);
while(!k2);
}
}
if(k3==0)
{
delay(10);
if(k3==0)
{
key[2]=0x33;
for(i=0;i<8;i++)
sendbyte(key[i]);
key[2]=0x00;//按下后发送的松开
for(i=0;i<8;i++)
sendbyte(key[i]);
while(!k3);
}
}
if(k4==0)
{
delay(10);
if(k4==0)
{
key[2]=0x34;
for(i=0;i<8;i++)
sendbyte(key[i]);
key[2]=0x00;//按下后发送的松开
for(i=0;i<8;i++)
sendbyte(key[i]);
while(!k4);
}
}
if(k5==0)
{
delay(10);
if(k5==0)
{
key[2]=0x35;
for(i=0;i<8;i++)
sendbyte(key[i]);
key[2]=0x00;//按下后发送的松开 1223445612
for(i=0;i<8;i++)
史海拾趣
|
我用的芯片是stm32f101vbt6,只能工作在36MHz,我用的初始化函数都是开发板上移过来的(用的是103系列,即工作在72MHz),我的板子是能“正常”工作,加了引号是我的定时器2定时时间不对,想弱弱的问几个问题: 1.我初始化时钟为72MHz,板子 ...… 查看全部问答> |
|
带USB口的Xemga系列能干什么?如果价格降到多少钱大家就不会用STM了?好怀念用AVR代码的时代,现在正被逼着用STM。郁闷中,想辞职。想告诉老板xemga国内有货了,也带USB… 查看全部问答> |
|
最近换了个手机,声音比较小,早上起床闹不醒,已经迟到好几次了,准备自己DIY一个超级闹钟,结构图如下 [ 本帖最后由 fengzhang2002 于 2013-3-15 12:33 编辑 ]… 查看全部问答> |




