汇编语言与接口技术--跑马灯

一、 实验要求

  1. 在单片机开发板的LED灯D1~D8上实现跑马灯。LED与单片机引脚连线电路如下图:

  1. 单片机芯片选择AT89C51,晶振频率设为12MHz,操作参考单片机开发板使用说明。
  2. 跑马灯点亮的时间间隔约为1秒。
  3. 分别用定时器的模式1和模式2实现。(用P83的延时子程序实现)

二、 实验设计

 1.整体思路

(1)初始化阶段(MAIN 程序段)

设置堆栈指针 SP 为 #60H,为程序运行时的堆栈操作预留空间,确保函数调用和局部变量存储等操作有足够的内存空间。

将寄存器 B 赋值为 #14H,用于后续控制跑马灯移动的速度和周期,作为中断次数计数器或其他与时间相关的控制参数。

配置定时器 / 计数器 0 的工作模式为模式 1(MOV TMOD,#01H)。

将初始的 LED 状态值 #0FEH(假设低电平点亮 LED,此值对应点亮除最低位外的其他 LED 灯)赋值给累加器 A,并将 A 的值输出到 P2 端口,从而设置 LED 灯的初始点亮状态。

使能定时器 0 中断(SETB ET0)、总中断(SETB EA),并启动定时器 0 开始计时(SETB TR0),为后续的定时器中断触发跑马灯状态更新做准备。

最后进入一个无限循环 SJMP HERE,等待定时器中断的发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值