怎么用一个51单片机实现这两个信号输出

作者&投稿:车蚁 (若有异议请与网页底部的电邮联系)
我想问一下,一个51单片机能不能同时实现两个信号的控制?~

51单片机当然只能在同一时刻执行某一命令,就算是同一中断优先级的信号同时接收,也会有时间的先后差异(由于内部元件的延时不同造成的(如:与、或、非门等)!)。
不过ARM的话就好像能够实现同时处理两件事,我也刚学不是太了解!
我认为你这个问题可以用中断的方式来解决啊!没必要同时控制,反正单片机的处理速度还是比较快的!
中断会吧!不会去图书馆看书!或看(如:郭天祥的视频)。好好学习!

1、新建项目,如图所示。

2、添加头文件,创建延迟函数。

3、创建C主函数。

4、添加死循环效果。

5、点亮LED灯。P1=0x7e;二进制11111110。

6、添加延迟效果即可。

注意事项:
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。

一般就开个定时器,然后计算好时间根据12M到32K,定义两个引脚为输出模式,定时器时间一到就输出一个信号:对与一信号,定义个数组,一个一个输出循环。第二个就1,0,1,0输出既可。

关键在于定时器的时间是否精确。

方波好说
定期器中断输出也可以
用语句延时也可以

归零码就麻烦点 14位
弄一个计数器一样的 寄存器
比如R1
每次输出先自加1 输出一个第一位1
中间判断
到第7,8,9,10,13,14位 就输出0
其他输出1
14为完了 就R1清零

不知道编码的规则呀
1 就是 H
0 就是 L?
还是 先1 再 0 是1
先0 再 1 是0

对于什么是非归零码不太清楚,但是方波倒是可以搞定
我们用定时器T0,并从P1.0输出方波
首先计算晶振频率,你所要得到的方波频率为32KHz,那么周期为3.125*10^-5,一次跳变即半个周期时间为15.625μs,我们设定定时器需要15次计数,则晶振频率算得11.52MHz.
T0初值=256-15=F1H
程序如下:
MOV TMOD,#02H
MOV TL0,#0F1H
MOV TH0,#0F1H
CLR P1.0
SETB TR0
REP1:JBC TF0,JUMP
SJMP REP1
JUMP:CPL P1.0
REP2:JBC TF0,JUMP
SJMP REP2

你的晶振频率是多少

求助:51单片机如何实现两个串口分时复用的功能
答:首先要求51芯片有串口端口分配管脚功能(可以分配到不同的管脚),否则无法分时复用

51单片机如何用一个定时器当多个延时电路用, 就是按下开关一 ,亮三秒...
答:没想法就不会有创新,你的想法就很好。像这种亮灯的程序,对时间要求不是那么严格(如果极其严格就没法实现),那么可以采用如下方法实现你的要求://假设晶振12MHZ,按键输入P1.0,P1.1,P1.2;LED控制P2.0,P2.1,P2.2,都是低电平有效 include "reg51.h"unsigned int YSJS1=0;unsigned int ...

求大神编一道51单片机实现多种倒计时功能
答:程序的功能是:按下按键A,两个LED同时点亮,并延时10秒(时间随意修改)按下按键B,两个LED同时熄灭,并延时10秒(时间随意修改)无按键按下时,两个LED交替点亮,达到闪烁的效果 程序如下,并加了注释,若满意请采纳!include <reg51.h> //51单片机通用头文件 unsigned int i,t,h; char fe;...

求51单片机大神指导,怎么实现两个单片机间的通信
答:做双机通信实验时候可用3根杜邦线连接2块开发板的RXD TXD 和GNd,注意的是RXD和TXD要交叉连接.然后就是串口程序了

51单片机,要想实现双向同时进行无线数据传输,是不是需要两个波段的不...
答:常见无线模块都是半双工的(nRF2401、nRF24L01+、nRF905、CC1101等)如要实现全双工,最简单的办法是在每一个节点设备上同时使用2个模块(可相同型号,亦可不同型号)。使用时分别使用不同的工作频率(通道)即可。如只用一个模块,就需要使用更高的速率,同时进行分时传输,以达到接近全双工的目的。

求一个简单的51单片机程序 (一个按键控制两个口输出)
答:include<reg51.h> define uchar unsigned char sbit key=P0^0;sbit pluse1=P1^0;sbit pluse2=P2^0;void delay(int ms){ uchar i ;while(ms--)for(i=0;i<120;i++);} main(){ uchar num;while(1){ if(key==0){ delay(10);if(key==0){ while(key==0);num++;num%=2;if(...

想用51单片机实现如下程序,有点同时运行的意思
答:include<reg51.h> define uchar unsigned char uchar num1,num2;sbit k1=P1^0;sbit k2=P1^1;sbit led1=P1^4;sbit led2=P1^5;void t0isr() interrupt 1 { TH0=(65536-50000)/256;TL0=(65536-50000)%256;num1++;if(num1>200){ num1=0;TR0=0;led1=1;} } void t1isr() ...

51单片机 使用两个独立按键k1,k2,实现按下一个蜂鸣器响,按下另一个蜂 ...
答://假设你是 按开关时为0电平 //具体IO口 自己配置 //简单的就可以这么写 如果要求消抖 我们再讨论while(1){ if(k1==0)beep=1; if(k2==0)beep=0;}

用汇编语言编写一个51单片机程序,实现电子秒表功能
答:; 计时程序由中断服务程序实现,采用定时计数器T0工作方式1;; P2口实现对数码管的片选功能 ;=== ;===初始化=== SHUCHU EQU P2 ;定义P0口为输出口 PIANXUAN EQU P1 ;定义P2口为片选口 MIAO EQU 30H

51单片机的,这个程序该怎么整呀?
答:51单片机的,这个程序该怎么整呀? 使用按键控制LED灯的闪烁。闪烁频率使用定时器控制,具体规则如下:定时器0控制奇数LED灯;定时器1控制偶数LED灯。闪烁频率均为1秒。按键规则如下:ØK1键按下:启动奇数LED灯闪烁... 使用按键控制LED灯的闪烁。闪烁频率使用定时器控制,具体规则如下:定时器0控制奇数LED灯;定时器1控制...