用51单片机写一个程序,求大神

作者&投稿:蓟晨 (若有异议请与网页底部的电邮联系)
帮忙编写一个51单片机的程序~

注明:程序应该仿真通过了,只是你说的是低电平动作,那样你从高电平到低电平的瞬间,马上再打到高电平,不然很快1S过去,又会检测到低电平。
ORG 0000H
SJMP MAIN
ORG 000BH
SJMP T0_PRO
ORG 001BH
SJMP T1_PRO
MAIN:
SETB EA ;CPU中断开放
SETB ET1 ;定时器1中断允许
MOV TMOD,#11H ;方式1和0定时
MOV TH1,#0FCH
MOV TL1,#18H ;扫描P1.1时间间隔为1ms
MOV TH0,#03CH
MOV TL0,#0B0H ;50ms定时
SETB TR1 ;启动定时器1
MOV R7,#0
SJMP $ ;虚拟主程序,等待中断


T1_PRO:
JNB P1.1,loop ;如果P1.1口为输入低电平,则转移到loop,否则继续执行下一步
MOV TH1,#0FCH
MOV TL1,#18H ;重置扫描P1.0时间间隔为1ms
RETI ;中断返回

loop:
CPL P1.0 ;翻转电平
SETB ET0 ;定时器0中断允许
SETB TR0 ;定时器0开始运行
CLR ET1
CLR TR1
RETI


T0_PRO:
INC R7
CJNE R7,#20,RETURN
CPL P1.0 ;R0为0后翻转,输出方波
MOV R7,#0
CLR TR0
CLR ET0

MOV TH1,#0FCH
MOV TL1,#18H ;重置扫描P1.0时间间隔为1ms
SETB ET1
SETB TR1
RETURN:
MOV TH0,#03CH ;重置定时器高8位
MOV TL0,#0B0H ;重置定时器低8位
RETI ;中断返回
END

51单片机在复位后IO口为高电平,P2_6出现3V可能原因有:
1. if(P1_1==0) 这个语句不成立,查查P1_1。
2.单片机程序没有运行,查查复位电路和外围电路。

1、使用定时器0方式二,结合软件计数器来实现秒信号的产生;
2、定时器必须使用中断的方式来实现;
3、使用单片机开发板上的左边四位来扫描显示时间,显示格式为“MM.SS”;
4、开机时显示00.00,最大值显示到59.59(59分59秒);
5、第一次按电路板上K1(P3.2)键启动走时,K1必须使用中断方式实现;
6、第二次按K1暂停走时,数码管显示按键时刻的当前值;
7、第三次按K1时,在上一次停止的时刻继续走时;第四次按时暂停,如此反复;
8、任何时候按电路板上K2(P3.3)时,显示内容清零,重新显示“00.00”,时间停止。K2键必须使用中断方式实现。
大神加油啊!!


求大神解答,用51单片机汇编语言实现一个红绿灯的程序,不是一个路口的...
MOV P3,#0BFH ;;;选中第东西方向的个位数码管 MOV A,B MOVC A,@A+DPTR MOV P1,A LCALL D1MS SETB P3.0 SETB P3.1 JNB P3.0,DIS_S ;;;查询是否第一个按键按下 JNB P3.1,DIS_E ;;;查询是否第二个按键按下 AJMP DIS_R ;;;没有键按下则...

求一个基于51单片机的C语言程序,要求从串口接收一组数据,然后将其通过...
include <AT89X51.H>\/\/单片机51头文件,存放着单片机的寄存器 unsigned char dat; \/\/用于存储单片机接收发送缓冲寄存器SBUF里面的内容 sbit gewei=P2^2; \/\/个位选通定义 sbit shiwei=P2^3; \/\/十位选通定义 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07...

51单片机的某个I\/O口 输出一组脉冲,求例子程序,谢谢了
include<reg51.h> \/\/ sbit P1_0 = P1^0; \/\/ PWM 脉冲输出sbit key10 = P3^2;sbit key11 = P3^3;unsigned char Set_PWM0 = 2; \/\/ 占空比调整unsigned char counter = 0; \/\/ 计数的bit bdata tt1; \/\/ 标志位void main(){ TMOD=0x01; TH0=(65536-2000)\/256; ...

MCS-51单片机,简单的一个汇编语言程序,计算分段函数的函数值。_百度知...
A, #5 mov Y, A ;Y = 3X - 5 sjmp _END DY6:mov B, X mul AB ;乘.mov Y, A ;Y = X*X sjmp _END XC2:add A, X ;2X add A, #1 mov Y, A ;Y = 2X+1 _END: sjmp

用c++怎样编写51单片机程序?
相信很多初学者都有同样的疑问,也有同样的希望。就是用C++语言来写单片机程序的源代码。现在我来解释一下单片机的源代码程序几乎没有人用C++来写的。\\x0d\\x0a1. 假设一下你现在用C++写完了一个程序代码。那么你要让单片机认识必须要编译吧,对吧 。请问你有合适的编译软件来编译你的代码吗?\\x0...

很简的51单片机C语言流水灯程序
1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。例程:include<reg51.h> \/\/51单片机头文件#include <intrins.h> \/\/包含有左右循环移位子函数的库#define uint unsigned int \/\/宏定义#define uchar unsigned char \/\/宏定义sbit beep=P2^3;void delay(uint z) \/\/延时函数,z...

51单片机汇编语言编写一个跑马灯的程序,初学者做实验用,具体要求如下...
程序1:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV SP,#5FH LOOP:MOV A,P2 MOV B,A MOV P0,A MOV P1,#0FFH LOOP1:LCALL DELAY MOV C,P1.7 MOV A,P0 RLC A MOV P0,A MOV A,P1 RLC A MOV P1,A MOV A,P2 CJNE A,B,LOOP SJMP LOOP1 DELAY:MOV R2,#60 DELAY1:MOV R3,#...

通过51单片机控制一个电磁铁。在完成一个动作后要求电磁铁消磁,做这个...
给电磁铁加电,电磁铁就工作,不加电,电磁铁的磁自然就没有了。电磁铁工作必须提供脉冲信号,所以可以用定时器来做。include<reg51.h>sbit dct=P1^0;void delay(int a){char i;while(a--)for(i=0;i<110;i++);}void t0isr() interrupt 1{dct=~dct;}main(){TMOD=0x02;TH0=216;TL0...

如何编写51单片机音乐程序
记数脉冲值与频率的关系公式如:N=Fi\/2\/Fr。N:记数值;Fi:内部计时依次为1us,故其频率为1 MHZ;Fr:要产生的频率。其记数值的求法如:T=65536-N=65536-Fi\/2\/Fr。例:设K=65536,F=1000000=Fi=1 MHZ。求低音DO(26HZ),中音DO(523HZ),高音DO(1046HZ)的记数值。每个音符使用1个音节...

51单片机程序编写
不能帮你写,自己做吧,应该很简单.有问题自己分步把它整理解决: 验证确认你的51单片机正常工了 验证你的led显示程序是否有问题 验证MLX90614与51通讯正常. 51内部的温度判断处理程序是否有问题. 我觉得你最有可能的问题应该是与mlx90614通讯没做对.网上有很多它的通讯源码找一个参考一下. 本回答被网友采纳 已赞...

屯溪区18421754734: 求大神编程一个51单片机的8灯点亮程序. -
穆诗丹参: 使用定时器或者delay延时函数,依次按照你的点灯要求进行亮灭灯. void main() {while(1){P2=0xfe;delay1ms(500); P2=0xfd; delay1ms(500); P2=0xfb;delay1ms(500); P2=0xf7; delay1ms(500); P2=0xef; delay1ms(500); P2=0xdf;delay1ms(500); P2=0xbf; delay1ms(500); P2=0x7f;delay1ms(500);}}

屯溪区18421754734: 怎么用51单片机的c程序编写led灯变化亮度的程序?求大神给程序. -
穆诗丹参: #include #define uint unsigned intint qq;sbit out=P1^0; // LEDvoid InitTimer0(void) {TMOD = 0x01;TH0 = 0x0FF;TL0 = 0x0a4;EA = 1;ET0 = 1;TR0 = 1; }void main(void) {InitTimer0();qq=50; //修改这个值就能调节LED亮度...

屯溪区18421754734: 求;用51单片机编写最简单的程序,C语言,使步进电机转动,间歇式转动,快慢交替转动 -
穆诗丹参: 编一个简单的吧,控制两相电机.#include#define uchar unsigned charuchar step[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};void delay(uchar sd){uchar i,j;for(i=0;i<120jj++);}main(){uchar i,j;while(1) { for(j=0;j<10;j++) for(i=0;i<8;i++) { P0=step[i]; ...

屯溪区18421754734: 急求高手给写一个51单片机程序~注意:只要汇编语言~不要C语言~~急急急~~~~~~~~
穆诗丹参: 查询方式: ORG 0000H AJMP MAIN MAIN: MOV P1,#01H MOV R0,#8 MOV A,P1 XU: RL A MOV P1,A ACALL DELAY DJNZ R0,XU AJMP MAIN DELAY: MOV R0,#0FFH ONE:MOV R1,#0FFH TWO:MOV R2,#02H THE:DJNZ R2,THE DJNZ R1,...

屯溪区18421754734: 求单片机高手帮忙写个程序51单片机/INT0/INT1都是下降沿
穆诗丹参: 主程序如下: while(1) { if(INT0==0) { P2.1=0;//看你的LED是共阳还是共阴,再修改 p2.0=1; } if(INT1==0) { P2.2=1; } } 这样可以不用中断!

屯溪区18421754734: 求大神帮忙写个51单片机的接收脉冲程序. -
穆诗丹参: 用计数器T1的中断控制蜂鸣器发出1KHz音频 #include<reg51.h> // 包含51单片机寄存器定义的头文件 sbit sound=P3^7; //将sound位定义为P3.7引脚 /************************************************************** 函数功能:主函数 **************************...

屯溪区18421754734: 求一个基于51单片机的计算器程序 -
穆诗丹参: /QQ 296750363 按键...

屯溪区18421754734: 求大神编写51单片机程序 内容如下 如果采取可再加悬赏 -
穆诗丹参: #define OSC 12000000//12MHz晶体#define YANSHI 2.00//延时2.00秒,精度10mS,最多655.35 S.#define QUANSHU 3 //正反转一次,算一圈,总共QUANSHU圈.//===========================================================...

屯溪区18421754734: 求高手给我编一个51单片机红绿灯程序 -
穆诗丹参: 你的设计不合常理.1、右转弯无需红绿灯;2、若用595作时间显示驱动,可节省大量端口.3、缺少A、B路通行时间、黄灯闪烁时间规定.

屯溪区18421754734: 萌新求一个程序用51单片机点亮一个led延时10秒后熄灭求大神写一下或者是10秒后灯亮也可以 -
穆诗丹参: // 12MHz晶振#include<reg51.h> sbit LED=P1^0; //LED接P1.0 unsigned int cnts_per250us; void main( ) { LED=LED; EA=1; ET0=1; TMOD=0x02; // 自动重装模式 TH0=TL0=6; TR0=1; while(1); } void t0() interrupt 1 { if ( ++cnts_per250us==40000) { LED=~LED; cnts_per250us=0; } }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网