1. 程式人生 > >6-6 8255並行介面(LED)

6-6 8255並行介面(LED)

一、實驗目的

(1) 學習pc擴充套件i/o介面的方法。

(2)學習編制資料輸出程式的設計方法。

二、實驗要求

以8255 c 口為輸出口,控制8個單色LED。

三、實驗說明

工作方式0;

pa、pb、pc為獨立輸入輸出的並行口;

暫存器對應的埠地址:

pa:288h;

pb:289h;

pc:28ah;

控制口:28bh。

cs 連線288h~28fh。 適當調節LED亮滅的延遲時間。

四、彙編程式

data segment

ioport equ 0ff00h-0280hio8255a equ ioport+288hio8255b equ ioport+289hio8255c equ ioport+28ahio8255d equ ioport+28bhmess1 db '左迴圈按1',0dh,0ah,'$' db '右迴圈按2',0dh,0ah,'$' db '間隔閃爍按3',0dh,0ah,'$' db '退出按4',0dh,0ah,'$'mess2 db '按無效鍵繼續選擇',0dh,0ah,'$'mess3 db '按任意鍵退回主選單',0dh,0ah,'$'data endsstack segmentsta db 20 dup(?)top equ length stastack endscode segmentassume cs:code,ds:data,ss:stack,es:datastart: mov ax,data mov ds,ax;初始化 mov ax,stack mov ss,ax mov sp,top mov sp,ax mov dx,io8255d mov al,80h out dx,albg: lea dx,mess1 mov ah,09h int 21h mov ah,08h;等待有鍵按下 int 21h push ax lea dx,mess3 mov ah,09h int 21h pop ax mov ah,al cmp al,'1' jz zxh;進入各種迴圈 mov al,ah cmp al,'2' jz yxh mov al,ah cmp al,'3' jz jgs mov al,ah cmp al,'4' jnz wx jmp qitwx: lea dx,mess2;無效按鍵提示資訊 mov ah,09h int 21h jmp bgzxh: mov dx,io8255c;左迴圈 mov al,0fehbb: out dx,al mov cx,01hl1: loop l1 rol al,1 push ax push dx mov dl,0ffh mov ah,06h int 21h jnz bg pop dx pop ax jmp bbyxh: mov dx,io8255c mov al,80hee: out dx,al mov cx,0fffhl2: loop l2 ror al,1 push ax push dx mov dl,0ffh mov ah,06h int 21h jnz bg pop dx pop ax jmp eejgs: mov dx,io8255c mov al,55hhh: out dx,al mov cx,0ffffhl3: loop l3 not al push ax push dx mov dl,0ffh mov ah,06h int 21h jnz bg1 pop dx pop ax jmp hhbg1: jmp bgqit: mov ax,4c00h int 21hcode endsend start說明:左迴圈 改為: mov cx,01h油迴圈 改為: mov al,80h

相關推薦

6-6 8255並行介面LED

一、實驗目的 (1) 學習pc擴充套件i/o介面的方法。 (2)學習編制資料輸出程式的設計方法。 二、實驗要求 以8255 c 口為輸出口,控制8個單色LED。 三、實驗說明 工作方式0; pa、pb、pc為獨立輸入輸出的並行口; 暫存器對應的埠地址: pa:288h; p

專題6-新增除錯資訊led

下面將基於前面寫的start.S、gboot.lds、和makefile,加入led的除錯資訊,驗證程式是否完全正確。(比如:點亮led2、led4) GPIO控制方法主要涉及到兩個暫存器: 資料暫存器裡面的值決定該IO口輸出高電平還是低電平。 244

Android 6.0 Camera2 原始碼分析1不同的activity介面

Camera2中主要的activity activity都在AnroidManifest.xml中有註冊。我們先通過AndroidManifest.xml來大概的瞭解下都有哪些activity AndroidManifest.xml <?xm

Android自己定義組件系列【6】——進階實踐3

err ack XML @+ layout apk get ast edi 上一篇《Android自己定義組件系列【5】——進階實踐(2)》繼續對任老師的《可下拉的PinnedHeaderExpandableListView的實現》進行了分析,這一篇計劃中間插一段“知識點

CentOS 6.5搭建Smokeping平臺

smokeping1、添加EPEL和RPMForge第三方源如果是i686平臺:rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh http://ftp.tu-chemnitz.de

CentOS 6.5搭建Smokeping平臺

smokeping1、添加監控點[[email protected]/* */ ~]# vi /usr/local/smokeping/etc/config ##添加以下內容## + Other menu = 三大網絡監控 title = 監控統計 ++ dianxin menu = 電信網絡監

6課 列表初始化1_統一初始化

nio 概念 基類 class 臨時對象 clas 靜態 logs char 1. 統一初始化(Uniform Initialization) (1)在C++11之前,很多程序員特別是初學者對如何初始化一個變化或對象的問題很容易出現困惑。因為可以用小括號、大括號或賦值操作符

Python2.6升級到2.7Centos6

Python2.6升級到2.7 centos6升級python版本 經常遇到一些python模塊沒有包含相應屬性,此時可能是python版本問題。1.首先查看原python版本[root@python ~]# python -VPython 2.6.62.下載python-2.7.12版本,解壓並安裝

《ES標準入門》&《UNDERSTANDING ECMACHRIPT 6》 讀書摘錄筆記

原來 cte 不足 hand out 好的 正則 ssi 調用 ### 前言 *這兩本書應該是目前ES6相關的比較好的了,網上有電子版本(文末有鏈接)。不過我買了書看,哈哈。這兩篇摘錄筆記分為上下兩部分,本文是上半部分(1-6章),摘錄了兩本書裏一些比較有用的知識點。*

Confluence 6 修改站點圖標favicon

log PE config ati link src odi %20 AI 你也可以修改你站點的圖標(這個站點圖標將會在你瀏覽器的標簽頁上顯示)。你需要 Confluence 的管理員權限才能進行修改。 進入 > 基本配置(General Configurat

關於weblogic 10.3.6.0 的漏洞復現1

iter oid sch AD 成功 str context blog env 最近小R 搭建了個weblogic, 因為之前在公司找系統漏洞的時候,發現了這個漏洞,所以為了特地專門搭建了個10.3.6.0版本。 漏洞編號: CVE-2017-10271 漏洞的描述:就是

Confluence 6 的小型文字檔案Cookies

求一個 link 應用服務 display api 內容 計劃任務 www 清理 這個頁面列出了存儲在 Confluence 用戶瀏覽器中的小型文字檔案(Cookies)內容。這些內容是由 Confluence 自己創建的。這個頁面不會列出由 Confluence 安裝的第

《compass-reference》翻譯計劃之6.3 檢索類對映

  6.3   檢索類對映 6.3.1   檢索ID和檢索元資料 每個root級的檢索類至少定義1個檢索ID。檢索ID用於唯一識別該物件。使用者能定義多個檢索ID,也能把類當作一個檢索ID(必須註冊自己的轉換器或者使用檢索ID元件對映)。

Android安全/開發基礎--6--程序間通訊機制IPC

6-1、多程序 1、多程序分為兩種: 第一種情況是一個應用因為某些原因自身需要採用多執行緒模式來實現。 另一種情況是當前應用需要向其他應用獲取資料。 2、Android中的多程序模式: 通過給四大元件指定android:process屬性,可以開啟多程序模式,使

《瘋狂Java講義第4版》-----第6章【面向物件命令模式、Lambda、列舉類、垃圾回收、jar

命令模式 命令模式,參考下面程式碼,就能領悟到,想做出怎樣的處理,就怎麼去覆蓋介面中的抽象方法!下面程式碼中介面Command中定義一個對陣列處理的方法,但沒說怎麼處理(畢竟是抽象方法嘛),然後讓其他類來實現這個介面,順便實現這個介面的方法,他們按照何種方式實現

6章 RFID標籤識別

c#中編碼與資料型別的轉換 Encoding:位元組編碼類 Convert:基本資料型別轉換成類 BitConverter:位元組陣列轉換 (一)讀寫標籤的使用。  1.ReadTag函式     語法:ReadTag(IntPtr hCom,byte memBank,by

Centos 6.5安裝oracle11g準備

1、Centos6.5,優盤啟動安裝,按硬碟檢索安裝檔案,安裝過程中定義好機器名和網路IP(安裝oracle需要),根據實際需要進行分割槽,選擇桌面安裝。如果是虛擬機器安裝,在虛擬軟體中“虛擬網路編

【高質量C++/C總結6】記憶體管理——堆stackheap

說在開始: 我提煉了《C++ Primer》、《侯捷C++》、《高質量程式設計指南——C/C++語言》等資料中的重要部分,並總結成此博文。其中涉及到許多我個人對C++的理解,如若有不合理之處,還請朋友們多多指出,我會虛心接受每一個建議。同時,我將實現程式碼放到了我的GitHub上ht

OpenCV(3.2)+Python(3.6)學習(基於官方API)

1.1 Getting Started with Images   博主最近由於專案需求,需要學習OpenCV,在檢視並試驗了幾種語言之後決定用Python作為開發語言。剛開始學習也是各種網上找資料,但是網上的資料過於雜亂,最後還是覺得官方API最全面。所

Hadoop-2.7.6雙namenode配置搭建HA高可用叢集部署教程

配置雙namenode的目的就是為了防錯,防止一個namenode掛掉資料丟失,具體原理本文不詳細講解,這裡只說明具體的安裝過程。Hadoop HA的搭建是基於Zookeeper的,關於Zookeeper的搭建可以檢視這裡 hadoop、zookeeper、hbase、spa