⑴ 谁有51单片机连接USB串口电路原理图。要CAXA画的。谢谢了
自己在电路图软件里画好然后导出DXF,再导入CAXA即可
⑵ 高分求救,关于51单片机端口外接电路有图!
1、当光电管接通时,P2.3口是高电平。
2、有四个LED灯,但是没有画出来,单片机的P1口,P3口引脚还有剩余吧,那就用啊。
⑶ 51单片机的串口通信这块怎么也学不懂,谁介绍个好方法来。谢谢了
外部接线电路、串口设置、方式、T1...,楼主什么地方不懂,说说看。
看看这个有帮助否:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d50edc2f1321965b4ec22662.html
⑷ 51单片机与rs485连接电路在串口程序中怎么驱动485在线等!!!谢谢
像使用串口一样就可以了
⑸ 51单片机串口工作原理,硬件原理
一般必须有晶振,复位电路,还有就是给单片机供电,这样就是一个最小系统,至于单片机内部电路我也不知道,但是我会用单片机,会写程序,就可以了,不知道可不可以帮到你
⑹ 请问一下 STC89C51单片机如果不买开发板,自己做电路,需要USB转串口的下载线吗
如果你的电脑是台式机,有串口的话,就不需要USB
最小系统电路很简单,你搜下就有
STC89c51不用下载器,内部有编好的程序,不用管,硬件用max232芯片就好,连接rxd,txd和串口就可以了,用stc提供的在线编程下载软件就行了
⑺ 电脑接入51单片机的串口,然后通过串口来控制51的4部步进电机正转反转和停止。最好C语言有电路图,多谢!
如果单纯的只是控制正反转,应该很简单啊,就给几个控制命令字就行了,然后在中断里进行对应的状态位来控制程序的流程转向就行了。
如果想要程序可以qq我,471361865,但是必须有你的步进电机的资料,才能写出来对应的驱动脉冲。
⑻ 电路图中51/STC串口口是什么
串口就是PLC或者单片机,还有电脑互相传递信号的端子。一般有硬件和软件共同完成信号传递。
⑼ 51单片机串口的原理和过程
单片机C51串口中断接收和发送测试例程(含通信协议的实现)
通信协议:第1字节,MSB为1,为第1字节标志,第2字节,MSB为0,为非第一字节标志,其余类推……,最后一个字节为前几个字节后7位的异或校验和。
测试方法:可以将串口调试助手的发送框写上 95 10 20 25,并选上16进制发送,接收框选上16进制显示,如果每发送一次就接收到95 10 20 25,说明测试成功。
//这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收
//和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的
//程序编写: 龚建伟 [email protected]
//技术主页:http://www.gjwtech.com
//您有这方面的问题可以和我讨论
#include <reg51.h>
#include <string.h>
#define INBUF_LEN 4 //数据长度
unsigned char inbuf1[INBUF_LEN];
unsigned char checksum,count3;
bit read_flag=0;
void init_serialcomm(void)
{
SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x80; //SMOD=1;
TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz
IE |= 0x90; //Enable Serial Interrupt
TR1 = 1; // timer 1 run
// TI=1;
}
//向串口发送一个字符
void send_char_com(unsigned char ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
//向串口发送一个字符串,strlen为该字符串长度
void send_string_com(unsigned char *str,unsigned int strlen)
{
unsigned int k=0;
do
{
send_char_com(*(str + k));
k++;
} while(k < strlen);
}
//串口接收中断函数
void serial () interrupt 4 using 3
{
if(RI)
{
unsigned char ch;
RI = 0;
ch=SBUF;
if(ch>127)
{
count3=0;
inbuf1[count3]=ch;
checksum= ch-128;
}
else
{
count3++;
inbuf1[count3]=ch;
checksum ^= ch;
if( (count3==(INBUF_LEN-1)) && (!checksum) )
{
read_flag=1; //如果串口接收的数据达到INBUF_LEN个,且校验没错,
//就置位取数标志
}
}
}
}
main()
{
init_serialcomm(); //初始化串口
while(1)
{
if(read_flag) //如果取数标志已置位,就将读到的数从串口发出
{
read_flag=0; //取数标志清0
send_string_com(inbuf1,INBUF_LEN);
}
}
}
⑽ 51单片机和计算机之间实现串口通信的电路图
串口通讯参考程序如下:
来源:深入浅出AVR单片机
#include<reg51.h>
unsignedcharUART_RX;//定义串口接收数据变量
unsignedcharRX_flag;//定义穿行接收标记
/*********************************************************************************************
函数名:UART串口初始化函数
调用:UART_init();
参数:无
返回值:无
结果:启动UART串口接收中断,允许串口接收,启动T/C1产生波特率(占用)
备注:振荡晶体为12MHz,PC串口端设置[4800,8,无,1,无]
/**********************************************************************************************/
voidUART_init(void){
EA=1;//允许总中断(如不使用中断,可用//屏蔽)
ES=1;//允许UART串口的中断
TMOD=0x20;//定时器T/C1工作方式2
SCON=0x50;//串口工作方式1,允许串口接收(SCON=0x40时禁止串口接收)
TH1=0xF3;//定时器初值高8位设置
TL1=0xF3;//定时器初值低8位设置
PCON=0x80;//波特率倍频(屏蔽本句波特率为2400)
TR1=1;//定时器启动
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:UART串口接收中断处理函数
调用:[SBUF收到数据后中断处理]
参数:无
返回值:无
结果:UART串口接收到数据时产生中断,用户对数据进行处理(并发送回去)
备注:过长的处理程序会影响后面数据的接收
/**********************************************************************************************/
voidUART_R(void)interrupt4using1{//切换寄存器组到1
RI=0;//令接收中断标志位为0(软件清零)
UART_RX=SBUF;//将接收到的数据送入变量UART_data
RX_flag=1;//标记接收
//用户函数内容(用户可使用UART_data做数据处理)
//SBUF=UART_data;//将接收的数据发送回去(删除//即生效)
//while(TI==0);//检查发送中断标志位
//TI=0;//令发送中断标志位为0(软件清零)
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:UART串口发送函数
调用:UART_T(?);
参数:需要UART串口发送的数据(8位/1字节)
返回值:无
结果:将参数中的数据发送给UART串口,确认发送完成后退出,采用非中断方式
备注:
/**********************************************************************************************/
voidUART_T(unsignedcharUART_data){//定义串口发送数据变量
ES=0;//禁止穿行中断
SBUF=UART_data;//将接收的数据发送回去
while(TI==0);//检查发送中断标志位
TI=0;//令发送中断标志位为0(软件清零)
ES=1;//打开穿行中断
}
/*********************************************************************************************
函数名:UART串口发送字符串函数
调用:UART_S(?);
参数:需要UART串口发送的数据(8位/1字节)
返回值:无
结果:将参数中的数据发送给UART串口,确认发送完成后退出,采用非中断方式
备注:
/**********************************************************************************************/
voidUART_S(unsignedchar*str)
{
while(1)
{
if(*str=='