彙編入門---8255IO控制LED燈實驗
彙編繼續,獻上8255 IO控制LED燈實驗程式碼
(1)8255 A口輸出控制流水燈,B口輸入,B口最低位控制流水燈流向
;Made by X-Ray龍 ;8255流水燈顯示實驗 IOY0 EQU 3000H ;片選IOY0對應的埠始地址 MY8255_A EQU IOY0+00H*4 ;8255的A口地址 MY8255_B EQU IOY0+01H*4 ;8255的B口地址 MY8255_C EQU IOY0+02H*4 ;8255的C口地址 MY8255_MODE EQU IOY0+03H*4 ;8255的控制暫存器地址 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT LA DB ? ;定義資料變數 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,82H ;工作方式0,A口輸出,B口輸入 OUT DX,AL MOV LA,01H LOOP1: MOV DX,MY8255_B IN AL,DX ;讀B口的一位元組資料記憶體放到AL中 MOV BL,AL TEST BL,00000001B ;判斷B口最低位0或1,是0則跳C1左迴圈,是1則跳C2右迴圈 JZ C1 JMP C2 C1: MOV AL,LA ;左迴圈,用變數LA來存放上一次移位後的資料 CALL DALLY ;延時,方便人眼觀察出燈的變化 MOV DX,MY8255_A OUT DX,AL ROL AL,1 MOV LA,AL JMP C3 C2: MOV AL,LA ;右迴圈 CALL DALLY MOV DX,MY8255_A OUT DX,AL ROR AL,1 MOV LA,AL JMP C3 C3: MOV AH,1 ;判斷是否有按鍵按下 INT 16H JZ LOOP1 ;無按鍵則跳回繼續迴圈,有則退出 QUIT: MOV AX,4C00H ;結束程式退出 INT 21H DALLY PROC NEAR ;軟體延時子程式 PUSH CX PUSH AX MOV CX,0FFFH D1: MOV AX,0FFFFH D2: DEC AX JNZ D2 LOOP D1 POP AX POP CX RET DALLY ENDP CODE ENDS END START
(2) A口輸出控制LED,B口輸入由開關控制高低電平,實現開關控制LED燈亮滅,同時把八位LED狀態回顯到螢幕
;Made by X-Ray龍 ;8255基本輸入輸出實驗 IOY0 EQU 3000H ;片選IOY0對應的埠始地址 MY8255_A EQU IOY0+00H*4 ;8255的A口地址 MY8255_B EQU IOY0+01H*4 ;8255的B口地址 MY8255_C EQU IOY0+02H*4 ;8255的C口地址 MY8255_MODE EQU IOY0+03H*4 ;8255的控制暫存器地址 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE START: MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,82H ;工作方式0,A口輸出,B口輸入 OUT DX,AL LOOP1: MOV DX,MY8255_B ;讀B口 IN AL,DX MOV DX,MY8255_A ;寫A口 OUT DX,AL MOV CX,0008H MOV BL,10000000B C1: TEST AL,BL JZ C2 CALL SHOW1 ;顯示1 C2: TEST AL,BL JNZ C3 CALL SHOW2 ;顯示0 C3: SHR BL,1 LOOP C1 CALL CHANGE ;換行 MOV AH,1 ;判斷是否有按鍵按下 INT 16H JZ LOOP1 ;無按鍵則跳回繼續迴圈,有則退出 QUIT: MOV AX,4C00H ;結束程式退出 INT 21H SHOW1 PROC NEAR PUSH AX MOV AH,02H MOV DL,31H INT 21H POP AX RET SHOW1 ENDP SHOW2 PROC NEAR PUSH AX MOV AH,02H MOV DL,30H INT 21H POP AX RET SHOW2 ENDP CHANGE PROC NEAR PUSH AX MOV AH,02H MOV DL,0AH INT 21H MOV AH,02H MOV DL,0DH INT 21H POP AX RET CHANGE ENDP CODE ENDS END START
相關推薦
彙編入門---8255IO控制LED燈實驗
彙編繼續,獻上8255 IO控制LED燈實驗程式碼(1)8255 A口輸出控制流水燈,B口輸入,B口最低位控制流水燈流向;Made by X-Ray龍 ;8255流水燈顯示實驗 IOY0 EQU 3000H ;片選IOY0對應的埠始地
CC2530學習路線-基礎實驗-GPIO 控制LED燈亮滅(1)
內部 執行 了解 toc 平時 如果 繼續 技術 發光二極管 目錄 1.前期預備知識 1.1 新大陸ZigBee模塊LED燈電路 1.2 CC2530相關寄存器 1.3 寄存器操作技巧 1.4 CPU空轉延時 1.4 操作流程圖 2.程序代碼 The End 1.前
STM32 嵌入式學習入門(3)——STM32F103 按鍵輸入控制LED燈
STM32 嵌入式學習入門(3)—— STM32F103 按鍵輸入控制LED燈 按鍵是微控制器上一個很重要的輸入裝置,也很容易掌握,只要明白了IO口最基本的使用,就可以操作按鍵了。 我們的目的是控制開發板上板載的三個按鍵來操作開發
STM32 嵌入式學習入門(2)——STM32的GPIO介紹 STM32 嵌入式學習入門(3)——STM32F103 按鍵輸入控制LED燈
STM32簡介及STM32學習方法簡介 STM32是新的基於ARM核心的32位MCU系列,該核心為ARM公司為要求高效能、低成本、低功耗的嵌入式應用專門設計的Cortex-M核心,該核心採用標準的ARM架構。該核心具有超前的體系結構以及高效能、低電壓、低功耗,且
CC2530基礎實驗之串列埠控制LED燈
/************************************************************** * 檔名稱:uart2.c * 功 能:PC機控制發光二極體亮滅 *****************************
arm彙編按鍵控制led燈
例項一:按下就亮個燈.text .global _start _start: mov r7,lr @初始化按鍵 ldr r0,=0xe0200c40 ldr r1,=0x0 str r1,[
樹莓派實驗一:控制LED燈
輸出,控制LED燈。 這是一個簡單的電路,如圖,如果Pin是高電平,發光二極體會亮,如果是低電平,則不亮。注意,Pin和Gnd之間除了發光二極體以後,還有一個電阻R1,這是防止短路燒電子板的。 Gnd是地線的意思,相當於電池的負極。GPIO的9號,14
java操作樹莓派GPIO控制LED燈--結合springboot實現介面呼叫
1、概述 本文使用java結合springboot實現了對樹莓派GPIO介面的操作以達到控制LED燈的功能 2、pom檔案如下: <project xmlns="http://maven.apache.org/POM/4.0.0" &nb
arduino學習系列——按鍵控制LED燈
一、器材 arduino UNO、麵包板、按鍵、連線線 二、連線圖 按鍵的兩邊一邊接地,另一邊與引腳2相連 三、程式碼 #define LED 13 #define INPUT_KEY 2 int val = 0; void setup(){ pinMode(LED,OUTPU
STM32-自學筆記(9.SysTick定時器控制LED燈閃爍,程式用到的庫函式介紹)
1.SysTick_CLKSourceConfig 函式原型:viod SysTick_CLKSourceConfig (u32 SysTick_CLKSource) 功能:選擇SysTick的時鐘源 引數:SysTick_CLKSource:SysTick時鐘源 引數:S
STM32-自學筆記(8.使用STM32的SysTick定時器控制LED燈閃爍)
SysTick定時器,被稱為“系統節拍時鐘”。SysTick屬於ARM Cortex-M3核心的一個內設,STM32也帶有SysTick定時器。 SysTick定時器的基本結構 SysTick工作原理: SysTick從時鐘源介面獲得時鐘驅動 從重灌暫存器將
uboot-彙編實現點亮LED燈
背景 有時候在除錯新專案開發板,上電啟動後串列埠完全沒有列印資訊,開發板沒有一點資訊反饋,這時候我們需要在uboot程式碼的stage1階段彙編程式碼中實現LED點亮來測試CPU是否載入了啟動程式碼,以此來判斷整個CPU和開發板的狀態。 實現 整體實現流
雲中樹莓派(4):利用聲音感測器控制Led燈
1. 聲音感測器及其配置 聲音感測器如下圖所示: 將 VCC 引腳接入樹莓派 5V 引腳,將 GND 引腳接入樹莓派 GND 引腳,將 OUT 引腳接入樹莓派 GPIO20。 要注意,模組在環境聲音強度達不到設定閾值時,OUT輸出高電平(1),當外界環境聲音強度超過設定閾值時
樹莓派使用wiringPi控制LED燈
硬體連線: 1,樹黴派.麵包板,公對母杜邦線,LED二極體,200歐左右電阻 二極體的正極連線一個200歐姆左右的電阻,然後連線到樹黴派的5V引腳,對應著2號引腳,如下圖所示, 負極連線GND,即連線為0V的任意引腳. 連線的電路圖如下: 連線好的實物圖如下: 軟
STM32F407ZET6 用串列埠通過鍵盤控制LED燈的亮滅
1、串列埠定義 串列埠通訊是一種裝置間非常常用序列通訊(資料互動)方式,因為它比較簡單便捷,大部分電子裝置支援串列埠通訊方式,電子工工程師除錯裝置時常用的介面 序列通訊:佔用I/O較少,速度上較慢點 並行通訊:佔用I/O較多,速度上快速 2、
用定時器控制Led燈閃爍
實驗目的 閃燈程式在嵌入式學習中猶如“Hello World!”在C/C++語言學習中一樣經典。它以簡單的方式引導了無數的嵌入式愛好者。通過本節的學習你可以基本瞭解STM32的GPIO以及基本定時器的使用。 硬體說明 本例程需要一個定時器和一個LED,其中LED就是擴充套件板上的紅色LED接在PD3上且正極接
字元裝置驅動控制led燈
開發板:龍芯1B PC:ubuntu13.10 本程式為字元裝置驅動,提供控制led燈功能,如要實現控制需要自己寫應用程式,開啟驅動檔案就可控制led燈,led燈通過gpio控制 #include <linux/init.h> #include <lin
ESP8266-01之NodeMCU(lua)實現遠端控制LED燈
開發環境 ESP-01 wifi模組 LualLoader NodeMCU nodemcu_float_0.9.6-dev_20150704.bin nodemcu_integer_0.9.6-de
BLE 安卓APP控制LED燈的實現
//注:參考AmoMcu原始碼修改。 開啟APP,檢查藍芽是否開啟BluetoothAdapter mBluetoothAdapter; final BluetoothManager bluetoothManager =(BluetoothManager) getSys
【醬菜創客】ESP8266連線伺服器實現遠端控制LED燈
#include <ESP8266WiFi.h> WiFiClient client; #define relay1 2 //繼電器連線在8266的GPIO2上 const char *ssid = "xxxx";//這裡是我的wifi,你使用時修改為你要連線的wifi ssid con