问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

51单片机3键键盘电路图[只有三个按键,链接pc的]

发布网友 发布时间:2022-04-23 13:58

我来回答

1个回答

热心网友 时间:2023-05-22 19:42

同学你好,我来帮你,你可以使用串口啊,比如:1:给你一个从PC发给单片机数据后,单片机再原样发给PC的参考代码:2:将51某一个(引脚)按键0,1状态,发给PC;

1::::::::::::::
#include <REG52.H>
bit Flag;
unsigned int R_D,S_D;
unsigned char i;
void usart_init(void); ///串口初始化

void main (void) {
usart_init(void); ///串口初始化

while(1)
{
if (Flag==1)
{
SBUF = S_D; //SUBF接受/发送缓冲器(又叫串行通信特殊功能寄存器)
while(!TI);// 等特数据传送(TI发送中断标志)
TI = 0;// 清除数据传送标志
Flag=0;
}
}
}

}

void ser_int (void) interrupt 4 using 1
{
if(RI == 1) //RI接受中断标志
{
RI = 0; //清除RI接受中断标志
R_D = SBUF; //SUBF接受/发送缓冲器
S_D=R_D;///////返回PC发送
Flag=1;
}
}
void usart_init(void)///串口初始化
{
SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1
TMOD|= 0x20; //定时器工作方式2
PCON|= 0x80;
TH1 = 0xF3;// //baud*2 /* 波特率4800、数据位8、停止位1。效验位无 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //开串口中断
EA = 1; // 开总中断
}
2:::::::::::::

#include <REG52.H>

sbit p34=P3^4;////////定义一个按键

bit Flag=1;

unsigned int S_D;
unsigned char i;
void usart_init(void); ///串口初始化
void delay (unsigned int Z) ; //延时程序 Z倍 MS

void key_p34(void) ; /////按键检

void main (void) {
usart_init(void); ///串口初始化
key_p34(void) ; ////上电后检测一次按键的状态
if (Flag==1)//上电后发送一次按键的状态
{
SBUF =1; //SUBF接受/发送缓冲器(又叫串行通信特殊功能寄存器)
while(!TI);// 等特数据传送(TI发送中断标志)
TI = 0;// 清除数据传送标志
}
else
{
SBUF =0; //SUBF接受/发送缓冲器(又叫串行通信特殊功能寄存器)
while(!TI);// 等特数据传送(TI发送中断标志)
TI = 0;// 清除数据传送标志
}

while(1)
{

key_p34(void) ;
if (Flag==1)
{
SBUF =1; //SUBF接受/发送缓冲器(又叫串行通信特殊功能寄存器)
while(!TI);// 等特数据传送(TI发送中断标志)
TI = 0;// 清除数据传送标志
}
else
{
SBUF =0; //SUBF接受/发送缓冲器(又叫串行通信特殊功能寄存器)
while(!TI);// 等特数据传送(TI发送中断标志)
TI = 0;// 清除数据传送标志
}

}

}

void usart_init(void)///串口初始化
{
SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1
TMOD|= 0x20; //定时器工作方式2
PCON|= 0x80;
TH1 = 0xF3;// //baud*2 /* 波特率4800、数据位8、停止位1。效验位无 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //开串口中断
EA = 1; // 开总中断
}
void delay (unsigned int Z)//延时程序 Z倍 MS
{
unsigned int x,y;
for(x=Z;x>0;x--)
for(y=110;y>0;y--) ;
}
void key_p34(void) /////按键检测
{
if(p34==0)
{ delay(10);
if(p34==0)
{
while(!p34) ;/////等待按键松手
Flag=0;
}
}

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何查被录取到的专业 怎样查被录取的专业 录取后怎样查询录取的专业 录取专业怎么查 已被录取怎么查专业 ghs网络语什么意思_ghs网络语意思出处含义介绍 纸箱企业管理软件 ghs什么意思网络(ghs什么意思网络用语) 《喜羊羊与灰太狼》大结局 0与任何数相加都得原数吗? 如何使用语音模块完成一个简单按键发声电路 全自动洗衣机的排水管长了咋办? 全自动洗衣机不接水管怎么用 长虹红太阳XQB72一7278洗衣机洗衣服加水时排水管一直在排水是什么原因? 长虹洗衣机内桶底下怎么有两根水管 长虹自能洗衣机怎么用 长虹全自动洗衣机显示E2,是怎么回事? 长虹智能洗衣机怎么使用? 长虹全自动洗衣机怎么使用??? 梦见吃头发和吐头发怎么解释? 梦见自己吃了一口头发,恶心怎么解释 最近连续两晚梦见吃的东西里老有头发 是什么预兆啊? 梦见吃头发,而且觉得很好吃 晚上睡觉做梦,梦见吃头发!! 什么意思??急!! CAD如何自动用天正打开 梦见自己在吃头发! CAD高手请进,如何dwg文件默认用天正打开??? 梦见吃头发有什么预兆? 请问先把CAD打开了,之后想加载天正插件,怎么弄上去呢? CAD 怎样设置图纸默认用天正打开 单片机独立按键电路图问题 谁给我下单片机里的独立式按键的硬件电路图? 一个按键控制LED电路设计,不用单片机。。。求各位大侠帮帮忙 有哪些好听的a开头的微信名? 单片机独立按键的电路图 单按钮启停电路图 微信网名a怡人宁静什么意思 一个IO 两个按键,这个电路可靠吗 有些微信好友名字前面有个A是代表什么? 2020年受欢迎微信网名有哪些? 微信网名前带个A或AA的意思? 根据这个电视机主板,怎么做一块按键板,按键怎么连线,需要电路图。谢谢。 为什么好多人把自己的微信网名加上A 电脑键盘原理电路图以及每部分的解说(就是每一个元件起什么作用,还有为什么这样连接) 微信昵称怎么好多人喜欢用A字开头呢? Dell键盘电路板的接线图 急停按钮 电路图 微信网名前面加a什么意思 带有a的微信网名大全 微信名字带a?