51单片机 (2)流水灯实验

发布者:快乐舞步最新更新时间:2018-05-19 来源: eefocus关键字:51单片机  流水灯 手机看文章 扫描二维码
随时随地手机看文章

一、控制一/多灯亮灭

汇编实现


  1. ;注释  

  2. LOOP:  

  3. ;SETB P1.1 ;(1)熄灭灯  

  4. MOV P1,#0FFH;  

  5. LCALL DELAY     ;(2)延时一段时间  

  6. ;CLR P1.1        ;(3)点亮灯  

  7. MOV P1,#0FDH;  

  8. LCALL DELAY     ;(4)延时一段时间     

  9. AJMP LOOP       ;(5)跳转到第一句LOOP处  

  10.   

  11. ;以下子程序   

  12. DELAY:   

  13.     MOV R7,#250 ;  

  14. D1: MOV R6,#250 ;  

  15. D2: DJNZ R6,D2  ;R6=R6-1;IF(R6!=0) GOTO D2;  

  16.     DJNZ R7,D1  ;  

  17.     RET         ;返回主程序  

  18. END             ;子程序结束标志  


C语言实现


  1. #include   

  2.   

  3. sbit led=P1^3;  

  4. void Delay(){  

  5.     unsigned char i,j;  

  6.     for(i=0;i<250;i++)  

  7.     for(j=0;j<200;j++);  

  8. }  

  9. void main(){  

  10.    while(1){  

  11.       P1=0xfe;  

  12.       Delay(); Delay();Delay();Delay();  

  13.       led=0;  

  14.       Delay(); Delay();Delay();Delay();  

  15.       P1=0x00;  

  16.       Delay(); Delay();Delay();Delay();  

  17.    }  

  18. }  

开关控制单灯亮灭


  1. #include   

  2.   

  3. sbit led=P1^3;  

  4. void main(){  

  5.    while(1){  

  6.       if(P0^1==0){ //开关是否按下  

  7.         led=0;  

  8.       }else{  

  9.             led=1;  

  10.       }  

  11.    }  

  12. }  

流水灯表示乘法运算结果


  1. #include  

  2. void main(void){  

  3.   unsigned char s,m,n;  

  4.   m=64;  

  5.   n=71;  

  6.   s=m*n;  //s=4544=17*256+192  所以用P0表示17、P1表示192  

  7.   P0=s/256;  

  8.   P1=s%256;  

  9. }  


走马灯


  1. #include   

  2. void Delay(){  

  3.     unsigned char i,j;  

  4.     for(i=0;i<250;i++)  

  5.     for(j=0;j<250;j++);  

  6. }  

  7. void main(){  

  8.    unsigned int i;  

  9.    i=0x01;   

  10.    while(1){  

  11.       P1=i; Delay();  

  12.       i<<=1;  

  13.       if(i==0x100) i=0x01;  

  14.    }  

  15. }  

摘自《单机片C语言编程100个实例》


  1. //实例19:用if语句控制P0口8位LED的流水方向  

  2. #include  //包含单片机寄存器的头文件   

  3. sbit S1=P1^4;     //将S1位定义为P1.4  

  4. sbit S2=P1^5;     //将S2位定义为P1.5  

  5. /***************************** 

  6. 函数功能:主函数  

  7. *****************************/  

  8. void main(void)  

  9. {    

  10. while(1)  

  11. {  

  12. if(S1==0)   //如果按键S1按下   

  13. P0=0x0f;  //P0口高四位LED点亮   

  14. if(S2==0)   //如果按键S2按下   

  15. P0=0xf0;  //P0口低四位LED点亮   

  16. }        

  17. }  


关键字:51单片机  流水灯 引用地址:51单片机 (2)流水灯实验

上一篇:51单片机 (3)定时器和计数器
下一篇:I2C模拟程序----汇编语言格式

推荐阅读最新更新时间:2024-03-16 16:03

51单片机通用汇编延时子程序,
[DELY]:通用延时子程序 [地址]:7FEBH - FFEBH [功能]:延时 [入口]:延时常数放在 R2 寄存器中。时间常数 N(十六进制)所对应的延时时间(6MZH 晶振时)见下表: [出口]:R2=0 [占用寄存器]:R2 [调用]:无 例:延时1 秒子程序 MOV R2,#18H LCALL 7FEBH RET ORG 7FEBH ;通用延时子程序(07EBH & 0FEBH & ...) L7FEB: PUSH 02H ;R2(复位后R2即为 02H)存放时间常数,进栈保护 L7FED: PUSH 02H ; R2 进栈保护 L7FEF: PUSH 02H ; 进栈 L7FF1: DJNZ R2,$ ;R2 不为零
[单片机]
51单片机学习笔记2 -- 单灯控制及流水灯
1.LED仿真电路绘制 LED就不展开介绍了,二极管单向导通电能转换光能,直接上原理图,可以看到LED灯D1连接在51单片机P1.0引脚 在Protues元器件查找输入关键词LED,在详细列表下拉找到几个颜色的LED,分别是蓝、绿、红、黄,随便找一个颜色的LED即可 单个LED的接线按照原理图如下进行仿真电路绘制,注意LED的朝向(LED阳极接限流电阻R2,阴极接芯片引脚P1.0) 2.Keil 51工程创建 打开Keil软件,先关掉当前打开的工程,菜单栏 Project - Close Project 新建一个文件夹以存放工程文件,Keil新建工程 选择新建的文件夹存放工程,并给工程命名 选择工程对应的处
[单片机]
<font color='red'>51单片机</font>学习笔记2 -- 单灯控制及<font color='red'>流水灯</font>
基于51单片机的自动门设计
一.硬件方案 本设计是用STC89C52单片机作为控制器,步进电机、热释电型红外传感器、led指示灯、蜂鸣器相结合的系统。热释电红外传感器给单片机传输检测信号,通过单片机控制电机驱动,从而控制电机转动,实现门的自动开关。 主要由51单片机+5线4相步进机+人体感应模块+发光二极管+按键设计而成;如图: 二.设计功能 (1)具有自动开门和手动开门两种模式的功能。 (2)采用两个红外人体感应传感器,一个是安装在进门口,一个安装在出门口,自动模式下:任意一个感应到人都会自动打开门步进电机正转一圈,开门后当没有感应人系统会自动延时3秒自动关门,如果在关门的时候感应人到,门就会自动打开,防止误伤到人。优点:安全可靠。 (3)手动模式
[单片机]
基于<font color='red'>51单片机</font>的自动门设计
51单片机红外遥控电风扇程序
红外遥控电风扇的电路图下载:http://www.51hei.com/bbs/dpj-20601-1.html 下面是主要源码: /**********************李登峰************************ * 编写;李登峰 * 晶振:11.0592MHZ ******************************************************************/ /*----------------------------------------------- 名称;单片机红外遥控电风扇 ---------------------------------------
[单片机]
<font color='red'>51单片机</font>红外遥控电风扇程序
51单片机入门教程(6)——外部中断
一、外部中断 1.1 中断 关于中断的概念在上一篇博客中已经提到了。(传送门:51单片机入门教程(5)——定时器中断) 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。 51单片机的中断源优先级与向量号如下表: 中断源 优先级 中断向量号 INT0 – 外部中断0 最高 0 T0 – 定时器/计数器0中断 第2 1 INT1 – 外部中断1 第3 2 T1 – 定时器/计数器1中断 第4 3 串口中断 第5 4 T2 – 定时器/计数器2中断 最低 5 1.2 外部中断 除了定时器中断外,51单片机还有两个外部中断源
[单片机]
<font color='red'>51单片机</font>入门教程(6)——外部中断
基于51单片机的共阳篮球计分器设计
一.硬件方案 本设计采用51单片机作为核心元件,利用两个供阴的三位一体数码管来显示两队的分数,一个四位一体数码管显示时间的计时。显示分数范围可达0~999分,足够赛程计分的需要。四位一体数码管中2个用于显示分钟,2个用于显示秒钟。比赛前,将时间设置好,比赛开始时启动计时,直至倒计时到零为止。计时范围达到0~99分钟,能满足实际赛程计时的需要。为了配合计时器调整时间和计分器校正比分,设计了6个按键,4个用于输入甲、乙两队的分数,另2个用于启动和暂停赛程时间。另外,还设计了定时报警系统,即比赛时间到时,扬声器发出报警声提示赛程结束。 硬件主要为:STC89C52单片机+最小系统+数码管显示模块+数码管驱动模块+蜂鸣器模块+按键模块
[单片机]
基于<font color='red'>51单片机</font>的共阳篮球计分器设计
51单片机系列连载3—数码管静态显示
今天主要介绍一下数码管,实际上在学完发光二极管的基础上,数码管一点都不难理解,因为这二者本来就是一脉相通的。首先,我们看一下实物图,基本人人都很熟悉: 它的内部结构就是由8个发光二极管组成的,只是要区分共阳极与共阴极,这个跟之前的二极管原理一样。当然,在排列时要注意顺序,一般都是a到h。 那么什么是动态显示与静态显示呢?看一下官方的解答。所谓静态显示,就是每一个数码管的段码都要独占具有锁存功能的输出口,CPU把要显示的字码送到输出口上,就可以使数码管
[单片机]
基于51单片机的超声波发生器设计方案
  本设计的超声波发生器是利用单片机生成初始信号,然后经过一系列处理电路的作用后生成用来杀灭水蚤的超声波,成本低、效果好,可以在农业上加以采用。在此对3个模块进行设计:   (1)信号发生模块。12 MHz的8051单片机硬件连接及其程序设计。   (2)信号处理模块。驱动电路设计(CD4069非门集成芯片);倍频电路设计(S9014或ECGl08三极管、104普通电容、11 257.9 nH自制电感、1 kΩ电阻);整波电路设计(CD4069非门集成芯片);和频电路设计(CD4081与门集成芯片);选频电路设计(S9014或ECGl08三极管、104普通电容、112.58 nH自制电感、1 kΩ电阻)。   (3)信号检测
[单片机]
基于<font color='red'>51单片机</font>的超声波发生器设计方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved