找回密码
 立即注册

QQ登录

只需一步,快速开始

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

在51hei板上用中断方式实现闪烁灯_汇编

[复制链接]
跳转到指定楼层
楼主
ID:1 发表于 2010-4-11 00:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

/************************************************
跳线设置:J4的2,3端跳线帽拔掉(防止DA灯干扰,如不介意不拔也可以),双排针跳线除PSEN外全部插上

显示效果:D1灯不停的闪烁
************************************************/
       ORG 0000h

        AJMP START

        ORG 000BH        ;T0中断入口地址

        AJMP TIME0 ;跳转到真正的中断程序处

START:

SETB P2.6   ;以下3行防止数码管干扰
MOV  P0,#0
CLR  P2.6
MOV  P0,#0FFH
CLR  P1.4   ;开led使能

        CLR P0.7           ;取反p20,点亮最低位LED

        MOV 30H,#0       ;30H地址置数,用于计算中断次数

        MOV TMOD,#00000001B      ;设置定时器0,使用方式1,定时20ms

        MOV TH0,#0B1H              ;计数器初始值高8位

        MOV TL0,#0E0H     ;计数器初始值低8位

        SETB EA                ;开总中断允许位

        SETB ET0              ;开启T0定时器

        SETB TR0            ;开启T0定时器中断允许位

        AJMP $                ;死循环,等待中断产生

TIME0: PUSH ACC          ;进入中断首先将ACC\PSW压栈

        PUSH PSW             ;然后重装计数器初始值

        MOV TH0,#0B1H     ;计数器初始值高8位

        MOV TL0,#0E0H      ;计数器初始值低8位

        INC 30H                 ;将30H内数据加1

        MOV A,30H             ;然后判断是否计数到25次(即0.5秒)?

        CJNE A,#25,TIME01 ;未到25次,则跳转到TIME01处执行出栈操作

        CPL P0.7                 ;到了25次,则取反P20端口

        MOV 30H,#0            ;同时将30H单元内数据清零

TIME01: POP PSW            ;出栈

        POP ACC                 ;出栈

        RETI                      ;中断返回用RETI

        END                     ;伪指令,结束程序

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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