找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机流水灯的电路图和演示程序

[复制链接]
跳转到指定楼层
楼主
ID:75926 发表于 2015-4-10 19:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[color=#ff0000,strength=3)"]单片机编程是硬件编程:
1.  编写底层驱动
2.  根据电路原理图来实现

&附电路原理图:










[color=#ff0000,strength=3)"]

&硬件实物图:



[color=#ff0000,strength=3)"]实现的功能演示:
1.  8个LED小灯的正向与反向流水演示
C代码源程序:
# include <reg51.h>
typedef unsigned char uint8;         //宏定义
typedef unsigned int uint16;
sbit ENLED = P1^4;                                //位声明
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;


main()
{       
        uint8 j = 0;
        uint16 i;
        ENLED = 0;
    ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;
        while (1)
        {
                P0 = ~(1 << j++);//00000001 按位取反后为11111110
                //非精确延时
                for(i = 0; i < 20000; i++); //分号不能少
                while (8 == j)
                {
                        j = 0;
                }
        }
       
}

汇编代码源程序:
ORG 00H
MOV DPTR,#TABLE
MAIN:
        MOV P1,#11101110B  ;38译码器对三极管的开关控制,使LED灯能正常工作
        MOV R2,#0
START:
        MOV A,R2
        MOVC A,@A+DPTR ;MOVC A,@A+DPTR 写成        MOVC A,@DPTR+A 是错误的
        MOV P0,A
        LCALL DELAY100MS
        INC R2
        CJNE R2,#13,START
        SJMP MAIN


TABLE:DB 0FEH, 0FDH, 0FBH, 0F7H, 0EFH, 0DFH, 0BFH, 7FH, 0BFH, 0DFH, 0EFH, 0F7H, 0FBH, 0FDH


DELAY100MS:                        ;@11.0592MHz
        PUSH 30H
        PUSH 31H
        MOV 30H,#180
        MOV 31H,#68
NEXT:
        DJNZ 31H,NEXT
        DJNZ 30H,NEXT
        POP 31H
        POP 30H
        RET

END         

      



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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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