最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

51匯編Proteus仿真教程——5.編寫LED流水燈匯編程序

2023-08-27 11:04 作者:電子廠人  | 我要投稿

詳細(xì)介紹如何使用51匯編的Proteus仿真去實(shí)現(xiàn)LED流水燈。此教程只做操作過程,不具體解釋每一步具體含義,以極簡的方式,通過操作讓你實(shí)現(xiàn)相關(guān)功能。
前提條件:

①新建好相關(guān)的仿真工程,繪制好相關(guān)原理圖

②學(xué)會了點(diǎn)亮LED

如果不具備以上條件,可以往回看相關(guān)教程

1、原理圖如下,通過程序控制P0口,讓LED間隔一定時(shí)間,按照順序逐個(gè)點(diǎn)亮,從而實(shí)現(xiàn)流水燈效果。


2、流水燈子程序

;====================================================================

; LED流水燈子程序

; 名稱:LEDRUN

; 輸入:空

; 輸出:空

; 功能: ?控制LED像流水一樣滾動逐個(gè)點(diǎn)亮

;====================================================================

LEDRUN:

MOV ?LED ,#01H ? ; 點(diǎn)亮第一顆LED

MOV ?R0 ,#8 ? ?; LED為8位,設(shè)置循環(huán)次數(shù)位8

LEDRUN1:

MOV ?A ?,LED ? ?; 將LED的值賦給A

LCALL DELAY ? ? ; 調(diào)用延時(shí)子程序,實(shí)現(xiàn)延時(shí)

RL ?A ? ? ? ; 將A中的值,循環(huán)左移一位

MOV ?LED ,A ? ? ; 從新將A的值賦給LED,實(shí)現(xiàn)點(diǎn)亮下一顆lLED

DJNZ R0 ,LEDRUN1 ; 將R0中的值減1,并跳轉(zhuǎn)到LEDRUN1。當(dāng)減到零退出,。(R0為8,即循環(huán)8次后退出)

RET

3、具體效果展示

?


4、整體個(gè)程序

;====================================================================

; 文件名稱:main.asm

; 文件描述:匯編基本程序教程:LED流水燈

; 創(chuàng)建人:lsh ?

; 創(chuàng)建日期: 2022.8.21

; 程序版本:1.0

; 完成日期:2022.8.21

;=========================修改記錄=====================================

; 修改人:

; 修改內(nèi)容:

; 修改時(shí)間:

;====================================================================

?

$NOMOD51

$INCLUDE (80C52.MCU)

; IO引腳定義

;====================================================================

LED ?EQU ?P0 ? ? ?; 定義P0口為LED

;====================================================================

;====================================================================

??????org ??0000h

??????jmp ??Start ? ? ? ?; 跳轉(zhuǎn)到程序開始入口

?

;====================================================================

; 主程序

;====================================================================

??????org ??0100h

Start:

;====================================================================

; 主程序的主循環(huán)

;====================================================================

Loop: ? ? ? ? ? ; ?程序主循環(huán)

LCALL LEDRUN ? ? ?; ??調(diào)用LED流水燈子程序

????AJMP ?Loop ? ? ? ?; ?跳轉(zhuǎn)到程序主循環(huán)開頭

?

;====================================================================

;子程序

;====================================================================

; 延時(shí)子程序

; 名稱:DELAY

; 輸入:空

; 輸出:空

; 功能:占用cpu,實(shí)現(xiàn)延時(shí)一段時(shí)間

;====================================================================

DELAY:

MOV ?R0,#228

DELAY1:

MOV ?R1,#20

DELAY2:

MOV ?R2,#20

DJNZ R2,$

DJNZ R1,DELAY2

DJNZ R0,DELAY1

RET

;====================================================================

?

;====================================================================

; LED流水燈子程序

; 名稱:LEDRUN

; 輸入:空

; 輸出:空

; 功能: ?控制LED像流水一樣滾動逐個(gè)點(diǎn)亮

;====================================================================

LEDRUN:

MOV ?LED ,#01H ? ; 點(diǎn)亮第一顆LED

MOV ?R0 ,#8 ? ?; LED為8位,設(shè)置循環(huán)次數(shù)位8

LEDRUN1:

MOV ?A ?,LED ? ?; 將LED的值賦給A

LCALL DELAY ? ? ; 調(diào)用延時(shí)子程序,實(shí)現(xiàn)延時(shí)

RL ?A ? ? ? ; 將A中的值,循環(huán)左移一位

MOV ?LED ,A ? ? ; 從新將A的值賦給LED,實(shí)現(xiàn)點(diǎn)亮下一顆lLED

DJNZ R0 ,LEDRUN1 ; 將R0中的值減1,并跳轉(zhuǎn)到LEDRUN1。當(dāng)減到零退出,。(R0為8,即循環(huán)8次后退出)

RET

;====================================================================

??????END ? ? ? ? ?; ??程序結(jié)束

;====================================================================

?

點(diǎn)贊、收藏加關(guān)注,下期不迷路!

?

一起學(xué)起來,讓我們成為更優(yōu)秀的自己!我們下期不見不散!


51匯編Proteus仿真教程——5.編寫LED流水燈匯編程序的評論 (共 條)

分享到微博請遵守國家法律
高唐县| 应城市| 珠海市| 启东市| 双鸭山市| 乐清市| 大丰市| 时尚| 从江县| 临武县| 肥东县| 泊头市| 安义县| 朔州市| 珲春市| 南康市| 鄂托克旗| 桐庐县| 英吉沙县| 筠连县| 米泉市| 兴宁市| 衡东县| 芮城县| 阳泉市| 凤山市| 长葛市| 棋牌| 乌恰县| 汝阳县| 衡南县| 车险| 若羌县| 金平| 广饶县| 永靖县| 嘉兴市| 嘉鱼县| 朝阳区| 永顺县| 武山县|