51单片机如何与电脑键盘相接 USB的(51单片机液晶显示问题)

2024-04-30 数科 86阅读 投稿:北遇

1.51单片机如何与电脑键盘相接,USB的

我自己没做过,但是51单片机处理USB协议太吃力了,建议你使用32位的单片机,STM32F103ZET6之类的,或者换成矩阵键盘,按键也比较多了。

以下是我在网上找的一些参考,希望能够对你有帮助:

如果是USB接口,那么你要懂USB协议,而且单片机的速度要足够快,一般的51怕是做不了,得用USB芯片,比如南京沁恒的CH375,单片机做主机,USB键盘做从机。

USB协议是很复杂的,不是一天两天就能搞得通的,程序也很复杂,就不附上了,如果你是初学者,那么不建议你一开始就调试USB,你可以尝试下圆口的PS2键盘,那个比较容易

用 带 USB 接口的 51内核 单片机吧

买个读片子机,把程序烧进去,ok

你知道USB协议有多复杂吗?!还用51来读?

要是说在键盘上接一个USB转串口的芯片,然后用51来读串口,这样更可行一些

还不如老老实实用矩阵键盘呢

单片机最小系统板不能直接和PC机USB相连,如果是支持ISP下载的单片机,可以通过USB转232(TTL电平),单片机的串口RXD(P3.0)接232的TXD,单片机的串口TXD(P3.1)接232的RXD。

USB转232(TTL电平)下载器需要装驱动程序,采用的芯片不同驱动不同,请对应安装。

如果单片机从USB取电,板上要有电源开关。

2.51单片机液晶显示问题

如果你是照抄源程序,那程序应该没问题,可能是你电路没接好,

一般如上图接法,如使用P0口,请接上拉电阻;程序和电路管脚一一对应;液晶显示左边的对比度调整端我直接接地了,如有影响可以接电位器调节

3.PC与89C51单片机之间的串行通信(PC发送,单片机接收,接收信息

/********************************************************************* 文件名 : 串口接收试验.c* 描述 : 该文件实现通过单片机从电脑接收数据 ······该试验使用的晶振是11.0592, P0接8个发光二极管 ***********************************************************************/#include#include #define uchar unsigned char#define uint unsigned int uchar LED_Buffer[8] = {0}; //从串口接收的数据 /********************************************************************* 名称 : Delay_1ms()* 功能 : 延时子程序,延时时间为 1ms * x* 输入 : x (延时一毫秒的个数)* 输出 : 无***********************************************************************/void Delay_1ms(uint i)//1ms延时{ uchar x,j; for(j=0;j

RI = 0; if(i==0) i = 8; i--; } EA = 1;} /********************************************************************* 名称 : Com_Init()* 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中断* 输入 : 无* 输出 : 无***********************************************************************/void Com_Init(void){ TMOD = 0x20; PCON = 0x00; SCON = 0x50; TH1 = 0xFd; //设置波特率 9600 TL1 = 0xFd; TR1 = 1; //启动定时器1 ES = 1; //开串口中断 EA = 1; //开总中断 } /********************************************************************* 名称 : Main()* 功能 : 主函数* 输入 : 无* 输出 : 无***********************************************************************/void Main(){ uchar i = 0; Delay_1ms(100); Com_Init(); while(1) { P0 = table[LED_Buffer[i]]; Delay_1ms(1); i++; if(i == 8) i=0; }}。

4.单片机led显示仿真一切正常,烧录后显示不正常,干扰严重

"电磁阀断开" 这个出现概率比较大。

电磁阀 打开和关闭的瞬间电流发生变换(和干扰)导致。

另外如果你后面用164驱动的话。。点数码管的时候没有进行 电磁阀操作

仿真器调试的时候 正常。

那么最有可能的只有三点。

1.你单片机的晶振可以没弄好,单片机不工作,一般的仿真器都是直接带晶振的

如果有的话 。你可以在仿真器设置中巴 晶振用线路板上的晶振。

这个方便测试。

2.就是你单片机电源本身就有问题。。导致你的单片机根本没有工作

3. 如果是51单片机的话。。单片机有一个外扩存储器端口选择端

那个端口一定要接好。。具体引脚名字你自己看pdf

这个在仿真的时候一般不会起作用的。所以仿真不出来

单片机的工作频率一般都不高emc这种的,基本可以排除的。

补充:

如果你的蜂鸣器完全按照你的预想的结果的话(没有频繁 ,叫等情况)

至少说明你的晶振是没有问题。。而且电源基本正常

你仿真的时候管子能亮。

那就说明板子有问题。。最有可能就是。51选择外部存储器那个引脚没有上拉或者下拉。你查看一下pdf。。第几脚忘了。

////////////////////////////////////////////////////

PSEN为程序存取器选择端,高电平,程序从内部执行,就是单片机内部的程序存储器有效,接低电平,程序从外面扩展的ROM开始执行。

51单片机led接电脑出现ng怎么办

声明:沿途百知所有(内容)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们将尽快删除