问答文章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
奥迪a6l怎么用手机连接音响放歌,我的是华为 奥迪a6l蓝牙连接了,听歌没声音 2009年6月在农业银行办理30万等额本息为10年的商业房贷,7折,现在月供... 存量房贷七折七折政策 ...在农业银行贷款27万,等额本息打七折利率按揭20年,现在的利率每月应还... 我是第一套房,在农业银行不是公积金贷款27万元20年付清利息怎么算法... 在成都交通违章网上怎么办理的 成都违章罚款网上怎么交 成都交通违章罚款在哪里交 成都违章停车可以网上交罚款吗 如何使用语音模块完成一个简单按键发声电路 全自动洗衣机的排水管长了咋办? 全自动洗衣机不接水管怎么用 长虹红太阳XQB72一7278洗衣机洗衣服加水时排水管一直在排水是什么原因? 长虹洗衣机内桶底下怎么有两根水管 长虹自能洗衣机怎么用 长虹全自动洗衣机显示E2,是怎么回事? 长虹智能洗衣机怎么使用? 长虹全自动洗衣机怎么使用??? 梦见吃头发和吐头发怎么解释? 梦见自己吃了一口头发,恶心怎么解释 最近连续两晚梦见吃的东西里老有头发 是什么预兆啊? 梦见吃头发,而且觉得很好吃 晚上睡觉做梦,梦见吃头发!! 什么意思??急!! CAD如何自动用天正打开 梦见自己在吃头发! CAD高手请进,如何dwg文件默认用天正打开??? 梦见吃头发有什么预兆? 请问先把CAD打开了,之后想加载天正插件,怎么弄上去呢? CAD 怎样设置图纸默认用天正打开 单片机独立按键电路图问题 谁给我下单片机里的独立式按键的硬件电路图? 一个按键控制LED电路设计,不用单片机。。。求各位大侠帮帮忙 有哪些好听的a开头的微信名? 单片机独立按键的电路图 单按钮启停电路图 微信网名a怡人宁静什么意思 一个IO 两个按键,这个电路可靠吗 有些微信好友名字前面有个A是代表什么? 2020年受欢迎微信网名有哪些? 微信网名前带个A或AA的意思? 根据这个电视机主板,怎么做一块按键板,按键怎么连线,需要电路图。谢谢。 为什么好多人把自己的微信网名加上A 电脑键盘原理电路图以及每部分的解说(就是每一个元件起什么作用,还有为什么这样连接) 微信昵称怎么好多人喜欢用A字开头呢? Dell键盘电路板的接线图 急停按钮 电路图 微信网名前面加a什么意思 带有a的微信网名大全 微信名字带a?