找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6353|回复: 1
打印 上一主题 下一主题
收起左侧

用8051控制8个LED循环(用汇编写)

[复制链接]
跳转到指定楼层
楼主
ID:23928 发表于 2010-5-18 22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

8051输出控制8个LED循环LED从LED1到LED8再到LED1,每次LED发光并循环,一个开关控制引起中断,电平触发,中断后8个LED一起闪5下,然后恢复到前面的循环,画出链接示意图,写出程序(软件延时循环5*126*200次控制)

-------

求各位大大帮忙下 小弟刚学单片机 做不来

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:23004 发表于 2010-5-19 18:40 | 只看该作者

;本程序的功能,通过P1口控制8个流水灯,从左循环到右,再从右循环到左

;其中并不包括中断按键,这个代码给你参考参考

;

PORT EQU  P1
    ORG    0000H                ;主程序开始地址0000H
             AJMP   START                ;跳转到地址MAIN处执行
             ORG    0030H                ;主程序地址0030H
START:       CALL    LEFT                ;设定左移次数,存放于寄存器R5
             CALL   RIGHT                ;将数据FFH赋值给A
             JMP     START                ;跳转到START
           
             ;以下是左移子程序
LEFT:        PUSH    PSW                 ;将PSW压入堆栈
             SETB    RS1                 ;将RS1置1,同下一条指令一起
                                         ;选定寄存器组2
             CLR     RS0                 ;将RS0置0
             MOV    R4,#8                ;将数据8赋值给R4
             MOV    A,#0FFH              ;将数据FFH赋值给A
             CLR     C                    ;将进位位C清0
NEXT1:       RLC     A                   ;带进位左移

             MOV    PORT,A                ;将A中数据赋给P2
             CALL    LATER              ;调用延时程序
             DJNZ   R4,NEXT1            ;R4=R4-1,R4≠0时,转到NEXT1
             POP     PSW                 ;出栈到PSW
             RET                         ;子程序结束,返回主程序
             ;以下是右移子程序
RIGHT:       PUSH    PSW                 ;PSW压入堆栈
             SETB    RS1                 ;将RS1置1,同下一条指令一起选定
                                         ;寄存器组2
             SETB    RS0                 ;将RS0置1
             MOV    R4,#8                ;将数据8赋值给R4
             MOV    A,#0FFH              ;将数据FFH赋值给A
             CLR     C                   ;将进位为清0
NEXT2:       RRC     A                   ;带进位位右移A
             MOV    P1,A                 ;将A中数据赋给P2
             CALL    LATER               ;调用延时程序
             DJNZ   R4,NEXT2             ;R4=R4-1,R4≠0时,转到NEXT2
             POP     PSW                 ;出栈到PSW
             RET                         ;子程序结束,返回主程序
             ;以下是延时子程序
LATER:       MOV   R7,#0FFH             ;
AD1:         MOV   R6,#0A0H             ;
AD2:         DJNZ   R6,AD2              ;
             DJNZ   R7,AD1              ;
             RET                        ;
             END                       

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表