用AT89C51的P0口为什么印度不控制人口8个led灯

单片机闪烁灯流水灯汇编代码大全
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
单片机闪烁灯流水灯汇编代码大全
1、单片机AT89C51的P2口接8个发光二极管,让这8个发光二极管显示闪烁功能,即八灯亮2S,熄灭3S,如此循环。
参考程序:
MOV P1,#0H
CALL delay
MOV P1,#0FFH
CALL delay
CALL delay
LJMP start
MOV R7,#200
MOV R6,#250
DJNZ R6,d1
DJNZ R7,d2
200*250次*2*1us=1000ms=1s
2、单片机AT89C51的P1口接8个发光二极管,让这8个发光二极管能够双灯左移之后再双灯右移,
形成霹雳灯的效果,如此循环5次后全灭,延时0.5S。灯右移,形成霹雳灯的效果,
如此循环5次后全灭。延时0.5S。
参考程序1:
CALL delay
CJNE R0,#4,start
MOV R0,#00H
CALL delay
CJNE R0,#4,s
MOV R0,#00H
LJMP start
MOV R5,#100
k1: MOV R6,#250
k2: MOV R7,#250
DJNZ R7,k3
DJNZ R6,k2
DJNZ R5,k1
参考程序2:
CALL delay0_5s
CALL delay0_5s
CALL delay0_5s
CALL delay0_5s
CALL delay0_5s
CALL delay0_5s
CALL delay0_5s
DJNZ R0,start
MOV P2,#0FFH
delay0_5s:
MOV R7,#20
d3: MOV R6,#200
d2: MOV R5,#250
DJNZ R5,d1
DJNZ R6,d2
DJNZ R7,d3
3、单片机AT89C51的P2口接8个发光二极管,让这8个发光二极管先交互闪烁5次,
然后双灯左移之后再双灯右移,如此循环,形成流水灯的效果,延时0.5S。
CALL delay
CALL delay
DJNZ R0,start
CALL delay
CJNE A,#B,s1
CALL delay
CJNE A,#B,s2
MOV R5,#100
k1: MOV R6,#250
k2: MOV R7,#250
DJNZ R7,k3
DJNZ R6,k2
DJNZ R5,k1
4、单片机AT89C51的P1口和P2口分别接八个发光二极管,P2口八灯实现左移,延时0.5S,
要求左移第一次,P1.0对应灯点亮,P2口灯左移第二次,P1.1对应灯亮,如此延续下去,
直至左移八次后,所有灯全灭。
CALL delay
CALL delay
CJNE A,#B,s
MOV R5,#100
k1: MOV R6,#250
k2: MOV R7,#250
DJNZ R7,k3
DJNZ R6,k2
DJNZ R5,k1
5、单片机AT89C51的P2.0、P2.1和P2.2分别接按钮开关PB1、PB2和PB3;P1.0接一个LED。按下PB1,
则LED亮;按下PB2则LED灭;按下PB3则LED闪烁。延时为0.1S。
参考程序:
MOV P2,#0FFH
JNB P2.0,s3
JNB P2.1,s2
JNB P2.2,s4
CALL delay
CALL delay
JNB P2.0,s3
JNB P2.1,s2
MOV R5,#100
k1: MOV R6,#250
k2: MOV R7,#250
DJNZ R7,k3
DJNZ R6,k2
DJNZ R5,k1
6、单片机AT89C51的P2.0、P2.1和P2.2分别接按钮开关PB1、PB2和PB3;P1口接8个LED。
按下PB1,则8个LED闪烁;按下PB2则8个LED单灯右移;按下PB3则8个LED单灯左移。延时为0.1S。
P2.0,LOOP_1
P2.1,LOOP_2
P2.2,LOOP_3
LOOP_1_1: MOV
R0,LOOP_1_1
LOOP_1_2: JB
LOOP_2_1: MOV
R0,LOOP_2_1
LOOP_2_2: JB
LOOP_3_1: MOV
R0,LOOP_3_1
LOOP_3_2: JB
7、单片机AT89C51的P2口分别接8个指拨开关;P0口接8个LED。指拨开关闭合之前8个LED全亮,
闭合指拨开关P2.0,则P0.0所对应的LED灭,以此类推。
8、单片机AT89C51的P2口分别接8个指拨开关;P0口接8个LED。
指拨开关闭合之前8个LED单灯左移3次后,全亮,闭合指拨开关P2.0,
则P0.0所对应的LED灭,以此类推。延时为0.2S。
9、单片机AT89C51的P2.0、P2.1和P2.2口分别接一个按钮开关,
P1口低4位接译码器输出部分接共阳极LED数码管。要求按一下P2.0口对应按钮,数码管显示数字“0”;
按一下P2.1口对应按钮,数码管显示数字“8”;按一下P2.2口对应按钮,数码管所显示的数字被关闭。
MOV P2,#0FFH
JNB P2.0,ON
JNB P2.1,ON8
JNB P2.2,OFF
MOV P1,#00H
MOV P1,#08H
MOV P1,#0FFH
10、单片机AT89C51的P2口接7447驱动一个共阳极七段数码管。让该数码管循环显示数字“9~0”,延时为1S。
MOV R0,#10
CALL delay
MOV R0,#10
CALL delay
MOV R5,#100
k1: MOV R6,#250
k2: MOV R7,#250
DJNZ R7,k3
DJNZ R6,k2
DJNZ R5,k1
11、单片机AT89C51的P2口接7447驱动一个共阳极七段数码管。
让该数码管显示数字“2~6”,之后显示“9~0”,如此循环,延时为1S。
12、四个集成共阳极七段数码管的公共端以PNP三极管做开关分别连接到单片机AT89C51的P1低四位,
数码管的各显示引脚a~dP分别连接到P2.0~2.7。让4个数码管稳定显示“2012”。
13、四个集成共阳极七段数码管的公共端以PNP三极管做开关分别连接到单片机AT89C51的P1低四位,
数码管的各显示引脚a~dP分别连接到P2.0~2.7。让LED先稳定显示“2012”,
约1秒之后再稳定显示“12.21”,如此循环。
14、单片机AT89C51的P0口接8个LED,用INT0产生中断。主程序正常执行时,P0口的8个LED单灯左移。
当进入中断状态时,P0口的8个LED将变成单灯右移,3个循环后,恢复中断前的状态,
即继续执行8个LED单灯左移。延时为0.5S。
CALL delay
MOV R7,#100
MOV R6,#200
MOV R5,#250
DJNZ R5,d1
DJNZ R6,d2
DJNZ R7,d3
MOV R0,#24
CALL delay
MOV R0,#24
15、功能要求:用 产生中断,主程序正常执行时,数码管循环显示“0~9”,
每0.5S增加1。当进入中断状态时,数码管循环显示“9~0”,
每0.5S减少1,一圈之后恢复中断前的状态。
CALL delay
CJNE A,#10,s
MOV R7,#100
MOV R6,#200
MOV R5,#250
DJNZ R5,d1
DJNZ R6,d2
DJNZ R7,d3
CALL delay
CJNE A,#0H,k
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网 51hei.com , All Rights Reserved用AT89C51单片机端口P1控制8个LED灯的变化(左移2次右移2次闪烁2次延时一秒)的工作原理_百度知道
用AT89C51单片机端口P1控制8个LED灯的变化(左移2次右移2次闪烁2次延时一秒)的工作原理
我有更好的答案
DELAY_MS(500);&gt:P1=0X01..代码按顺序执行就是了。P1口不同的输出对应不同的亮灯状态基本方式就是;1,看你想亮几个DELAY_MS(500);////或者别的数;...;适当延时P1=P1&&1;//左移或者右移DELAY_MS(500);P1=P1&gt
采纳率:70%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用单片机开发板上的p0口和p1口实现流水灯控制_百度知道
用单片机开发板上的p0口和p1口实现流水灯控制
用单片机开发板上的p0口和p1口实现流水灯控制使用左移右移能从p0到p1吗?还是左右移只能在一个端口使用?
我有更好的答案
貌似一次可以对16位二进制数操作,实际上要分好多步P0=a; /&/P0上得到的是低8位,但控制LED时还是要分两个端口写入例如当然只能一个一个的移了,51单片机一次只能操作一个8位端口的寄存器用C语言编程虽然可以实现16位数据的左移和右移,高8 位丢失P1=a&a&&=1;/&#47: uint
a=0x1000;8;/&#47
采纳率:88%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。AT89C51单片机的P1口控制8盏LED流水灯_百度知道
AT89C51单片机的P1口控制8盏LED流水灯
第二只引脚接的灯亮,再灭,按此方式直到第八盏灯,一个轮回后继续重复上一轮回直到断电,画出硬件电路图通电后最低位引脚接的灯先亮,然后熄灭
我有更好的答案
&&&&&&&j= j&&1;&&&&&&&&&&&&&& &&&&&&&nbsp;i++)&&&&&&&nbsp.2s&&& j= j&& // 左移1位&&}&& j=0x80;&&&&&&&&&&&&&&&&&&&&&&&&& // 设置右移初始值j为0x80&for (i=0; &// 主函数{&&nbsp://d,从P1口输出&&& delay02s( );&&&&&&nbsp.hiphotos.baidu.com/zhidao/pic/item/1b4c510fd9f9d72a93d77c1bd72a2834349bbb01;&nbsp.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http://d.char i,j,k;&&&&& &&&&&&&&}&&&&&& &&&& // for循环语句;&&&&&& // 延时0.&&&&nbsp;&&&&&&&lt.com/zhidao/wh%3D600%2C800/sign=3d95c420fefaafbc64b8d6/1b4c510fd9f9d72a93d77c1bd72a2834349bbb01.jpg" esrc="http://d.& &&&&&&&&&&&&&// 包含头文件#define uchar unsigned charvoid &delay02s(void)&&&&&&&&&&&&&& &&&&&&&&&&&&nbsp.&&&nbsp.com/zhidao/wh%3D450%2C600/sign=eef01f4dceb513/1b4c510fd9f9d72a93d77c1bd72a2834349bbb01.jpg" /># include &reg51.h&&&& P1= ~ j;&&&&&&&nbsp;&&1;// 右移1位&0;&&&&&&&&&nbsp;&&&&&nbsp;i-- )&&&&&&&nbsp;j&0;j-- )&&& for (k=250;k& delay02s( );&&&nbsp;k-- );// 延时0.2s子程序&{&unsigned &&&&nbsp,完成8个循环&&{&&& P1= ~& for ( i=2;i&gt;&}&void &main (void)&&nbsp;&while (1) &&&&&&&&&&&&&&&&&&&&&&&&&&// 死循环&0;&&&&&&nbsp;i&8;i++)& for (j=200;&nbsp,j;&{&&&8;&&&&&&&&{&&j=0x01;&&&&&&&&&&&&&&&&&&&&&&&& // j初始化为0x01,左移初始值&for(i=0;i& // 对变量j 中的值按位取反后;&}&&&&nbsp<a href=" &}这只是延时的方法实现的。
多谢你的回答啊,这是定时器延迟还是软件延迟啊?
延时。定时器的话,你可以试着这样去想一下:# include &reg51.h&
&#47;&#47; 包含头文件#define uchar unsigned charuchar timeCvoid
main (void)
&#47;&#47; 主函数{ TMOD = 0x01;TH0 = 0x3C;TL0 = 0xB0; ET0=1; EA=1;TR0=1; while (1) ;
&#47;&#47; 死循环 }void Timer0() interrupt 1{ TH0 = 0x3C; TL0 = 0xB0; timeCnt++; if(timeCnt==20)
P1=0xFE; if(timeCnt==40)
P1=0xFD; if(timeCnt==60)
P1=0xFB; if(timeCnt==80)
P1=0xF7; if(timeCnt==100)
P1=0xEF; if(timeCnt==120)
P1=0xDF; if(timeCnt==140)
P1=0xBF; if(timeCnt==160)
{ P1=0x7F; timeCnt=0;}}方法大概是这样,我没有上机试过。你可以看看。
采纳率:80%
为您推荐:
其他类似问题
流水灯的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用C语言编写51单片机三个开关控制八个LED灯的点亮,开关接P3端口,LED接P..._百度知道
用C语言编写51单片机三个开关控制八个LED灯的点亮,开关接P3端口,LED接P...
开关接P3端口用C语言编写51单片机三个开关控制八个LED灯的点亮,开关2流水灯点亮(从右边开始点亮),LED接P1端口。开关1流水灯点亮(从边开始点亮)
我有更好的答案
delay(200);
P1=tab[j+8];
delay(200);
if(k;void keyscan(){
while(,0xf7,0xdf,0x7f,
};reg51,0xef,0xf7; } while(;
k=2;j&8;j++)
keyscan();
P1=tab[j]!=2)
break.h&#define uchar unsigned char#define uint unsigned intuchar j,k;sbit key1=P3^0;i&123;i++);j&8;j++)
keyscan();
P1=tab[j+16];
delay(200);
default,0xfe,
0sbit key2=P3^1;sbit key3=P3^2,0xfb,0xfd,0xbf,0xdf:
for(j=0;j&void delay(int ms){while(ms--)for(i=0;}uchar code tab[]={
0xfe,0xdf,0xbf,0xfb,0xef,0xfd,0j++)
keyscan(),0xf7,0xef嘿嘿!key3) {
delay(10);
k=3; }}void main(){ while(1) {
keyscan();
for(j=0;8;
case 2,0x7f,0xfd。#include&lt!key1) {
delay(10);
k=1; } while(!key2) {
delay(10),0x7f,
0x7f,害人害倒底吧,全给你做好。就当我自娱自乐好了,这样的题本来你自己要做的
采纳率:43%
这个太简单了。
为您推荐:
其他类似问题
51单片机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 手足口病预防控制指南 的文章

 

随机推荐