A. 单片机怎么给步进电机驱动器发脉冲啊发的是什么脉冲啊驱动器有一个WC是接收脉冲的!
是两位的,意思是二个功能脚,一个是方位,别一个是发脉冲串的一个脉冲等于电机转一个步进角。
B. STC单片机p31口如何串口通信IO复用
首先要用串口,P3.0和P3.1就不能复用,否则在对I/O口操作时,就会影响到串口的通信,如你的程序中最后一行是:P3=0;就是因为P3.0和P3.1都为0了,即不能收,也不能发了,当然就不能通信了,那串口助手肯定是收不到内容了。但不知为什么要有这一行,是因为P3.0和P3.1还控制其它什么电路了吗?有的话,一定要改一下,改用其它I/O来控制。
其次,不知你用的是什么型号的STC单片机,STC单片机有些型号是带双串口的,这样,还可以用第2个串口了,就不会影响你用P3.0和P3.1了,但最好还是把串口放在P3.0和P3.1上。因STC单片机下载程序就是用P3.0和P3.1这两个引脚的,所以,最好不要复用。
按你补充的说法只能复用的话,就要考虑以下问题:
P3.0和P3.1复用做什么了?串口是不是需要收/发,还是只用来发送,如果只是发送的话,那就不用P3.0了,可以用做I/O口了。
另一个问题:那个发送的P3.1接什么控制端电路了,当串口发送数据时,P3.1是变化的,会不会影响到控制端所控制的电路的工作?如果会的,就不能复用了,如果不会,可以复用。但必须保证,在串口发送数据时,先将P3.1置成高电平,即P3.1=1,才能保证串口正常发送数据。而不要写P3=0,这肯定是不行的。
C. 单片机求助C语言编程 实现99秒倒计时到0秒停止! 求好心人哪!
#include<reg51.h> // 包含51单片机寄存器定义的头文件
unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//数码管显示0~9的段码表
unsigned char int_time; //记录中断次数
unsigned char second; //储存秒
/***********************************************************************
函数功能:快速动态扫描延时,延时约0.6毫秒
************************************************************************/
void delay(void)
{
unsigned char i;
for(i=0;i<200;i++) ;
}
/***********************************************************************
函数功能:显示秒
入口参数:k
出口参数:无
************************************************************************/
void DisplaySecond(unsigned char k)
{
P2=Tab[k/10]; //显示十位
P3=0x01; //P3.0引脚输出高电平, 点亮 十位
delay();
P3=0xfc; //关闭所有数码管
P2=Tab[k%10]; //显示个位
P3=0x02; //P3.1引脚输出高电平, 点亮 个位
delay();
P3=0xfc; //关闭所有数码管
}
void main(void) //主函数
{
TMOD=0x01; //使用定时器T0
TH0=(65536-5000)/256; //将定时器计时时间设定为50毫秒
TL0=(65536-5000)%256;
EA=1; //开启总中断
ET0=1; //定时器T0中断允许
TR0=1; //启动定时器T0开始运行
int_time=0; //中断次数初始化
second=99; //秒初始化
while(1)
{
DisplaySecond(second); //调用秒的显示子程序
while(second==0)
DisplaySecond(second);
}
}
//********************************************************
//函数功能:定时器T0的中断服务程序
//*******************************************************
void interserve(void ) interrupt 1 using 1
{
TR0=0; //关闭定时器T0
int_time ++; //每来一次中断,中断次数int_time自加1
if(int_time==20) //够20次中断,即1秒钟进行一次检测结果采样
{
int_time=0; //中断次数清0
second--; //秒减1
}
TH0=(65536-5000)/256; //重新给计数器T0赋初值
TL0=(65536-5000)%256;
TR0=1; //启动定时器T0
if(second==0) //如果 倒计时 0 停止定时器T0
TR0=0;
}
D. 用C语言编程 怎么用单片机使2位数码管动态显示00---99 P1口接1个二位数码管 P30和P31控制位选!急用
我觉得你应该自己写,因为很简单,不懂脑筋是学不好的。虽然我的话不中听,但希望你能接受。
E. 单片机引脚电平变化检测程序
检测P3.1引脚 只要这个引脚电平有变化P2.1就取反。
----
ORG 0000H
DJNZ R7, $
MOV A, P3
MOV 20H, A
XRL A, 21H
MOV 22H, A
MOV 21H, 20H
JNB 22H.1, 0000H
CPL P2.1
SJMP 0000H
END
可以实现题目要求。
F. 扫码枪对单片机的通信是通过MAX232后与单片机的P30,P31连接,无线传输数据也是连接的单片机的P30,P31
串口同一时间只能与一个设备通讯。
G. 单片机的引脚在接图的时候是怎么选择的
单片机的IO口在使用上是很灵活的,除了少数有特定的功能,多数引脚都是由使用者设定的,
也就是说你让它干什么它就干什,
这里所说的:让它干什么它就干什,就是编程。
程序让它输出它就输出,让它输入它就是输入,当然还要有正确对应的,硬件电路。
你的图中SCL SDA 是选用的P3.1 P3.2,有的人就用别的IO口,都是可以的。
H. 单片机,秒表问题
1、最好不要用软件仿真。
2、for(m=0;m<100;m++);这是你的延时么时间太短,远小于你所需要的1ms。
3、三极管最好用pnp的三极管,如果你看看射极跟随电路,你就知道加载在LED上的电压可能有问题。
4、p31也是高电平?这个不符合常理,用硬件吧,不要用软件仿真。
I. 现代单片机怎么连接电脑在线烧录
就举最简单的51单片机来说吧,假如是51开发版的话,都是自带下载电路的,接上电脑可以用烧录软件烧录。如果是最小系统的话,需要使用一个USB转TTL,然后和串口线连接,p30和p31,连接方法为R接R,T接T,再使用烧录软件即可。