51单片机通过P3.0口接微动开关,控制电机停止
特地为你制作的一个按钮改变LED亮/灭(电机启/停)的原理图和程序。
汇编程序: ORG0000H;复位后LED灭MAIN: JB P3.2,MAIN;等待按钮动作 ACALL DELAY_50MS;按钮去抖动延时50毫秒 JB P3.2,MAIN;确认按钮动作 CPL P1.0;LED动作取反 JNB P3.2,$;等待按钮释放 SJMP MAIN
DELAY_50MS:MOV R2,#50;延时子程序LOOP: MOV R3,#200LOOP1: NOP NOP DJNZ R3,LOOP1 DJNZ R2,LOOP END C语言程序:#include #include #define uchar unsigned char#define LED P1^0//LED引脚定义#define KEY P3^2//按钮引脚定义void DELAY(uchar MS);//延时函数声明void main(){ while(1) { while(KEY);//等待按钮动作 DELAY_50MS(50);//按钮去抖动延时50毫秒 if(!KEY)LED = ~LED;//确认按钮动作,LED动作取反 while(!KEY);//等待按钮释放 }}
void DELAY(uchar MS){ uchar i; for(;MS>0;MS--) for(i = 200;i>0;i--) { _nop_(); _nop_(); }}
51单片机的IO口一般不能直接输出控制电机,必须加装电机驱动电路,常见的如L298N等,电机正反转驱动采用H桥电路。你的要求使用很简单的代码就能实现。
#include <reg51.h>sbit key1=P1^0; //接微动开关,微动开关是常开状态,微动开关一头串1K电阻接5V,一头接单片机P1.0端口
sbit moto=P1^2;// 接MOS管,控制电机负极
void main()
{
moto= 1;//电机启动
while(1)
{
if(key1==1) moto=0; //如果微动开关关闭,电机停止
if(key1==0) moto=1; //如果微动开关开启,电机启动
}
}
请问stc89c52单片机只有P3.0还有P3.1这两个引脚可以进行模拟串口通信...
单片机内部有一个串行口,使用的就是P3.0还有P3.1。因此,只有它们两个,可以进行正式的串口通信。如果使用别的引脚,则只能进行模拟串口通信。当然,使用P3.0、P3.1,也能进行模拟串口通信,只是,这就和单片机的串行口,无关了。
求助:51单片机程序,实现功能:P3.0-P3.2 3个开关,控制两个灯, P3.0按...
if(K1 == 0 & flag == 1) \/\/K1按下LED1闪烁,1Hz { flag = 0;LED1 ^= 1;} else if(K2 == 0 & flag == 1) \/\/K2按下LED2闪烁,1Hz { flag = 0;LED2 ^= 1;} else if(K3 == 0) \/\/P3.2按下一次,停止,再按一次 启动 { if(++i == 1){ LED1 = 1;LED2...
如何用单片机控制直流电机
通过与单片机相连的按键控制直流电机停启的电路如下图所示,通过P3.6口按键触发启动直流电机,P3.7口的按键触发停止直流电机的运行。由图可知,当P1.0输出高电平“1”时,NPN型三极管导通,直流电机得电转动;当P1.0输出低电平“0”时,NPN型三极管截止,直流电机停止转动。
跪求大专单片机的毕业论文
单片机AT89C2051是整个系统的核心,TLC2543L对输入的模拟信号进行采集,转换结果由单片机通过P3.5(9脚)接收,AD芯片的通道选择和方式数据通过P3.4(8脚)输入到其内部的一个8位地址和控制寄存器,单片机采集的数据通过串口(3、2脚)经MAX232C转换成RS232电平向上位机传输。单片机软件设计 单片机程序...
给51单片机下程序接哪几个引脚
1. 对于STC芯片,程序下载是通过串口进行的,具体连接到51单片机的P3.0和P3.1引脚。2. 对于AT芯片,使用ISP下载方式,连接到单片机的P1.5、P1.6、P1.7引脚以及复位引脚。3. 当使用USB下载器时,连接过程简化。下载器的VCC引脚连接到单片机的VCC,下载器的GND引脚连接到单片机的GND,下载器的RXD...
急!!51单片机P3。3口输入,P1。1口输出,将灯左移问题
如果我写的不对或者有疑问可以给我留言 http:\/\/hi.baidu.com\/xiaozhishmily 呵呵。ORG 0810H J100: MOV A,#01H ;累加器的初值写为1,最低位的灯亮 J101: JB P3.3,J101 MOV R2,#20H LCALL DELY JB P3.3,J101 ;P3.3电平为低吗?J102: JNB P3.3,J102 MOV R2,#20H LCALL...
单片机 P3.0=P1.0 异或P1.3
用C语言比较容易实现:P3.0=P1.0^P1.3就行了。用汇编就麻烦,要设计程序,下面程序做一个参考:mov p1,FFH;读数前要给p1先全部置一。mov c,p1.0 ;把p1.0先送到C。mov acc.0, c ;把c送到累加器第零位。mov c,p1.1 ;p1.1送C。orl c,acc.0 ;进行“或”运算,...
MCS-51单片机的 P3口具有哪些功能?
P3.1TXD串行输出口 P3.2INT0外部中断0输入口 P3.3INT1外部中断1输入口 P3.4T0定时器\/计数器0外部时间脉冲输入端 P3.5T1定时器\/计数器1外部时间脉冲输入端 P3.6WR外部数据存储器写脉冲 P3.7RD外部数据存储器读脉冲 根据单片机 内部程序存储器的配置不同 (1)无ROM(ROMless)型:8031、80C...
MCS-51单片机P3口各引脚的第二功能是什么?
2、P3.1TXD(串行口输出)3、P3.2INT0(外部中断0输入)4、P3.3INT1(外部中断1输入)5、P3.4T0(定时\计数器0的外部输入)MCS-51单片机使用注意:MCS-51单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I\/O口和中断系统、定时器\/计时器等...
我想问一下,STC 51的单片机 P3.0 和 P3.1 能不能当普通I\/O口使用,我...
可以复用的,只不过你要注意下载程序的时候不要有冲突,因为p3.0 和 p3.1 是rxd和txd。控制138得需要3个io口,如果是动态显示用的就将三个口按照芯片手册里的代码依次改变就可以了 顺便纠正一下楼下,P3^0=1; 这种用法是绝对错误的,因为"^"是二元运算符“异或”,“P3^0”是用于声明位寻址...
圭春培新: #include <reg51.h> sbit key1=P1^0; //接微动开关,微动开关是常开状态,微动开关一头串1K电阻接5V,一头接单片机P1.0端口 sbit moto=P1^2;// 接MOS管,控制电机负极 void main() { moto= 1;//电机启动while(1) { if(key1==1) moto=0; //如果微动开关关闭,电机停止 if(key1==0) moto=1; //如果微动开关开启,电机启动 } }
邵武市18085137138: 51单片机P3口作为第二功能使用要先写1吗 - ?
圭春培新: 原理上,51单片机P3口作为第二功能使用前,是要先写1的.但是,既然做第二功能用了,就不会给所用引脚写过0的.而且,单片机开机复位P3口各引脚本就是为1的,所以,在开机后保证没有写过0,就不必写1啦.假如,有指令给引脚写过0(这种可能性不大,因为用第二功能了,就不能做输出脚),那就应该再写1.
邵武市18085137138: AT89S52单片机编程怎么调用中断引脚 - ?
圭春培新: 中断引脚? 是外部中断吧? 外部中断的话设置非常简单 启用外部中断0 EX0=1;//打开外部中断0(P3.2)外部中断1为P3.3 IT0=0;//低电平方式触发 =1 为下降沿触发 EA=1;//打开中断总开关当P3.2变成低电平时触发中断 中断入口0 void EX0inter(void) interrupt 0 {}
邵武市18085137138: 51单片机接开关控制问题... - ?
圭春培新: 单片机的32个IO口,你随便接都可以 只要改改程序就能实现了. 接开关的做输入口,接等的当做输出口. 例如:开关摁下,输入低电平,经程序判断是低电平后,输出口输出高电平--灯亮. 若没摁下开关,程序判断是高电平,输出口就输出低电平---灯灭.注:开关摁下与否输入的电平由外部电路决定的.灯是高电平亮还是低电平亮也是由外部电路决定的.
邵武市18085137138: 把“单片机系统”区域中的P3.0 端口用导线连接到“四路拨动开关”区域中的?
圭春培新: 就是在第四路中 有个开关 用导线接上即可
邵武市18085137138: 在单片机中怎么接单个微动开关和3X3的键盘??
圭春培新: 硬件连接就将6个IO口三横三竖交叉,在每个相交的点上接一个开关即可,最好IO口串电阻限流
邵武市18085137138: 单片机开关灯程序编写 - ?
圭春培新: ;p3.0上拉接地 MAIN: JBC P3.0,KEYCONTROL CLR P1.0 SJMP MAIN KEYCNONTROL: SET P1.0 CALL DELAY100MS CLR P1.0 CALL DELAY100MS RET DELAY100MS: MOV A,#100 MOV R0,#249 NOP NOP DJZ R0,$-2 NOP DJZ A,$-5 RET
邵武市18085137138: 急求!!!51单片机延时中断汇编程序,目标:p3口通过开关,控制p1口的led灯延时熄灭,急!!! - ?
圭春培新: ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB ET0 SETB EA MOV R2,#0 MOV P1,#0FFH MOV P3,#0FFH CLR 00H LOOP: MOV ...
邵武市18085137138: 51单片机P3口作为输入的问题 - ?
圭春培新: 呵呵,这个你记错了.普通51系列的P1 P2 P3都是带内部上拉电阻的输入口,外部不需要上拉电阻就可以进行输入输出,当然驱动能力比较弱(8个TTL负载).如果用P3.1作为输入的话,不需要任何外部电路,直接读P3.1就可以.当然前提是你不能将P3.1置0.意思就是51的这里IO口在读之前都要写1.即 sbit P3_1 = P3^1;//Keil C中的端口映射 P3_1 = 1; //置为读状态 flag = P3_1; //读P3.1 下面的兄弟,5V对5V永远还是5V,仍然是高电平.不会不要误导人哦.
邵武市18085137138: 求一80C51单片机的C程序 - ?
圭春培新: #include<reg51.h> unsigned char flag,num,keyn; sbit KEY=P3^0; sbit LED1=P3^4; sbit LED2=P3^5 void delay(unsigned int a) { unsigned int i,j; for(i=0;i<a;i++) for(j=0;j<125;j++); } void t0isr() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000...