A07基于51单片机汇编LED台灯Proteus设计
作者:单片机仿真   类别:51单片机仿真    日期:2026-10-13 12:07:33    阅读:17 次   消耗积分:5 分

image.png

A07基于51单片机汇编LED台灯Proteus设计

一、设计任务

使用51单片机设计一个开关灯。

1、使用汇编语言设计。

2、使用1个按键开关设计控制LED,当按键按下打开LED,按键断开就关闭LED。

一个按键、一个LED,构成最精简的"台灯"模型。这个设计是学位操作和判转指令的好例子。

二、仿真演示

仿真运行效果

仿真里按下按键LED点亮,松开按键LED熄灭,和真实台灯开关的逻辑一样。

程序在Keil里用汇编编写,编译生成hex后加载到Proteus的51芯片里运行。工程截图如下:

Keil工程截图

实物效果:

实物演示

三、关于程序

整个程序只有七行,但用到了汇编里最常用的两条指令:

`
START: JB P1.7,LIG ;如果开关闭合,则点亮LED
CLR P2.0 ;否则熄灭LED
SJMP START
LIG: SETB P2.0
SJMP START
`

1、JB判转指令怎么读

JB是"位判转"指令,意思是:检测某一位,是1就跳转,不是1就顺序执行。

检测结果执行路径LED结果
P1.7=1(按键断开)跳到LIG,执行SETB P2.0点亮
P1.7=0(按键闭合)顺序执行CLR P2.0熄灭

按键接在P1.7口线上,LED接在P2.0口线上。程序不停循环扫描P1.7的电平,实时决定P2.0的状态,这就是"扫描式"开关控制。

2、为什么看不到延时

这个程序里没有任何DELAY,每圈循环只执行三四条指令,几个微秒就转完一圈。也就是说P1.7的电平每时每刻都在被检测,按键响应是即时的。

好处是响应快;代价是按键的机械抖动没有过滤。按键按下和松开的瞬间,触点会连续通断几毫秒,高速循环下这点抖动会被如实反映出来。对台灯来说肉眼几乎察觉不到,但如果以后做"按一下计数一次"的设计,就必须加消抖延时。

3、占用的口线

口线接什么方向
P1.7按键开关输入
P2.0LED输出

如果想把按键或LED换到别的口线,只改程序里这两处的位地址即可,电路其他部分不用动。

特别注意: 如果发现亮灭逻辑和预期相反,检查LED是共阳极还是共阴极接法,把SETB和CLR对调即可。

四、特别注意

特别注意: 仿真跑起来灯不亮,先检查压缩包是否解压完整;Proteus用7.8或8.6版本;改了汇编源码要重新编译生成hex再跑仿真。

五、资料下载

付费后获取下载链接,直接下载到电脑上,然后解压即可!每个链接前面都配了二维码,手机扫码可以直接跳转。

/

版权所有,转载本站文章请注明出处:proteus单片机
上一篇:A06基于51单片机汇编流LED闪烁Proteus设计
下一篇:A08基于51单片机汇编LED流水灯Proteus设计
${comment['nickname']}   ${comment['createtime']}
  
       
${comment.content}
${reply.nickname} 回复 ${comment.nickname}    ${reply.createtime}
     
  
回复内容:${reply.content}