感悟网 导航

用单片机at89c51怎么实现5v和3v电压的交替延时输出

作者&投稿:桐宋 (若有异议请与网页底部的电邮联系)
单片机如何交替输出~

用单片机at89c51怎么实现5v和3v电压的交替延时输出用pic也可,加AD也可,只要实现就行 ORG 0000H AJMP START ORG 000BH ;定时器0的中断向量地址 AJMP

那就两个灯交替的取反

ORG 0000H

AJMP START

ORG 000BH ;定时器0的中断向量地址

AJMP TIME0 ;跳转到真正的定时器程序处

ORG 30H

START:

MOV P1,#0FFH ;关所 灯

MOV 30H,#00H ;软件计数器预清0

MOV TMOD,#00000001B ;定时/计数器0工作于方式1

MOV TH0,#3CH

MOV TL0,#0B0H ;即数15536

SETB EA ;开总中断允许

SETB ET0 ;开定时/计数器0允许

SETB TR0 ;定时/计数器0开始运行

LOOP: AJMP LOOP ;真正工作时,这里可写任意程序

TIME0: ;定时器0的中断处理程序

PUSH ACC

PUSH PSW ;将PSW和ACC推入堆栈保护

INC 30H

INC 31H ;两个计数器都加1

MOV A,30H

CJNE A,#20,T_NEXT ;30H单元中的值到了20了吗?

T_L1: CPL P1.0 ;到了,取反P10

MOV 30H,#0 ;清软件计数器

T_NEXT:

MOV A,31H

CJNE A,#40,T_RET ;31h单元中的值到40了吗?

T_L2:

CPL P1.1

MOV 31H,#0 ;到了,取反P11,清计数器,返回

T_RET:

MOV TH0,#15H

MOV TL0,#9FH ;重置定时常数

POP PSW

POP ACC

RETI

END

用D/A可以来做,如果是固定的3V与5V,可以用继电器来做,也就是用I/O口来控制继电器,但是被控制的电压一个是3V,一个5V.

《用单片机at89c51怎么实现5v和3v电压的交替延时输出》
答:AJMP START ORG 000BH ;定时器0的中断向量地址 AJMP TIME0 ;跳转到真正的定时器程序处 ORG 30H START:MOV P1,#0FFH ;关所 灯 MOV 30H,#00H ;软件计数器预清0 MOV TMOD,#00000001B ;定时/计数器0工作于方式1 MOV TH0,#3CH MOV TL0,#0B0H ;即数15536 SETB EA ;开总中断允许 SETB E...

《用AT89C51单片机 实现一盏灯逐渐变亮5秒再逐渐变暗5秒》
答:软件pwm加定时中断 p1.0=0;for(i=0,i++,i<=pwm){ p1.0=1 };p1.0=0 以上为软件pwm,i为局部变量,pwm为全局变量,通过控制pwm来控制led明暗,pwm最大100,最小0。从亮到暗和从暗到亮,写三角波程序,使pwm变化即可。

《通过AT89C51单片机控制8个发光二极管发光 5种效果循环,要求通过按钮...》
答:CNT5EQU 0X12;旋转5状态计数 KEY_1ST== FLAG.0;第一次按下标志位 T1F== FLAG.1;1中断标志位,1中断置反一次 T2F== FLAG.2;2中断标志位 L2F== FLAG.3;LIGHT2中断标志位 T20F== FLAG.4;20中断标志位 L8F== FLAG.5;LIGHT8中断标志位 DISF== FLAG.6;该位置1时再执行显示 KEY== 0X...

《求用单片机设计一个秒表AT89C51》
答:;汇编程序如下。;使用T0定时方式1,每隔50ms中断一次,用于修改时间及显示 ;使用外部中断0、1,用于控制启动和清零 ;=== ORG 0000H AJMP MAIN ORG 0003H AJMP X0_INT ORG 000BH AJMP T0_INT ORG 0013H AJMP X1_INT MAIN:MOV TMOD,#01H ;T0定时方式1 MOV TH0, #(65536-5000...

《想产生5~6路0/24v脉冲信号,简单一点,用AT89c51单片机。单片机输出为0/5...》
答:用比较器LM339,LM393就能产生6路。比较器输出加上拉电阻接24V。比较器in-连在一起用2电阻设置出一个2,5V。in+连在一起到51的一个I/O口。软件置I/O就行了。

《AT89C51单片机运用硬件定时0.005s读取一次数据,怎样设计?请给出具体电...》
答:由于单片机自带定时器,不需要额外的硬件资源!可以将“读取数据”看做是一个任务。采用设置定时器每个5ms的方式运行该任务即可(如何设置这个应该很容易查到)需要注意的是:你指的这个任务“读取数据”需要运行多长时间是你需要关注的。如果远小于5ms定时周期,那么可以;如果不是,那么上边这个定时检查的...

《用C语言编写AT89C51单片机程序,设计一个智能数字钟。》
答:sbit QB6=P1^5;sbit fm=P1^6; //蜂鸣器 sbit s1=P2^4; //s5按键,切换显示 sbit s2=P2^3; //s2按键,设置调时 sbit s3=P2^2; //s3按键,加1 sbit s4=P2^1; //s4按键,减1 sbit led1=P0^0;sbit led2=P0^1;sbit led3=P0^2;uchar count;uchar sec,minu,hour,day,week,mon;...

《单片机at89c51复位电路》
答:RC复位电路的复位电路增加了二极管,在电源电压瞬间下降时使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。 复位电路输入输出特性图的下半部分是其特性,可与上半部比较增加放电回路的效果。

《基于at89c51系列单片机的两路互补SPWM波形实现,程序如何编写?要求频率5...》
答:用定时器定时10ms,中断程序里将两个IO管脚状态取反即可。但两个管脚的原始状态是相反的。大致 程序如下:主程序里 TMOD=0X01;TH0=...TL0=...EA=1;ET0=1;PWM1=0;//一个管脚置低 PWM2=1;//另一个管脚置高 TR0=1;中断程序中:TH0=...TL0=...PWM1=!PWM1;PWM2=!PWM2;

《at89c51单片机怎么用汇编语言写“多个延时程序”》
答:单片机汇编语言中要使一个延时程序可以被不同情况下调用而延时不同的时间,可以通过类似于C语言中传递参数的方式来实现,举例如下:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV P0,#5AH ;P0上的LED灯间隔点亮 MOV R7,#50 ;R7是延时传递参数 LCALL DELAY ;调用延时函数 MOV P0,#0A5H ...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网