这是一个简单的“微机原理与接口技术”的趣味实验。实验要求的完整表述为:将8255的C口接上8个发光二极管,编程使之依次亮灭。已知8255端口地址为39CH~39FH。(39FH为控制端口地址,39CH,39DH,39EH分别为A端口、B端口、C端口的端口地址)
我们知道,可编程外围接口芯片8255的PC有很多作用,可以扮演多种角色:
1. 做数据口。8255工作于方式0(基本输入输出方式)时,PC可做数据口。高四位PC7~PC4与PA组成A组,低四位PC3~PC0与PB组成B组。
2. 做状态口。8255工作于方式1(选通输入/输出方式)或者方式2(双向总线方式)时,PC做状态口。
3. 按位控制。引脚按位控制输出高低电平。这要借助于8255的按位置位/复位控制字,按位置位/复位控制字是专门用来设定PC某一位电平高或者低的。
显然,我们需要用到PC的作用3。我们利用这样的方式实现“流水灯”:依次(按位)对PC的引脚置位(即置为1)使二极管发光,再写入复位字(即置为0)是二极管熄灭。
流程图如下:
注意:
1. 写端口即是写寄存器。每一个端口背后都有一个寄存器!8255有2类控制字:方式选择控制字和按位置位/复位控制字。对8255进行编程时,这2中控制字都被写入8255控制字寄存器中。所以39FH实际上是控制字寄存器的端口地址。
2. 按位置位/复位控制字虽然都是对PC的操作,但是属于控制字。要写入命令口(39FH)而不是C口(39EH)。
程序有几部分关键代码(汇编语言编写)如下:
1. 向命令口写入工作方式控制字
MOV DX,39FH ;39FH为控制字寄存器地址
MOV AL,10000000B ;方式控制字(即80H)
OUT DX,AL
解析:
工作方式控制字格式如下
对于工作方式,PC7~PC4随PA,PC3~PC0随PB,所以不需要单独设定。
对于输入输出,PC7~PC4 和PC3~PC0需要单独设定。
2. 写入PCi的置位字,点亮二极管、
MOV AL,1 ;即00000001B
MOV DX,39FH ;仍然是39FH
MOV DX,AL
DELAY_1000MS ;延时1s
解析:
按位置位/复位控制字格式如下
有3个无效位!!!
- 大小: 68.9 KB
- 大小: 38.4 KB
- 大小: 25 KB
分享到:
相关推荐
在这个实例中,我们将P1口配置为输出模式,连接八只发光二极管,每一只对应P1口的一个位。 为了实现定时器中断,我们需要设置单片机的定时器工作模式。常见的定时器工作模式有模式0、模式1、模式2和模式3。这里我们...
要求:利用8255可编程并行口芯片,实现输入、输出,实验中用A口读取开关状态输入,用B口控制发光二极管输出。
单片机控制的发光二极管流水灯是一个常见的电子工程实验项目,它是通过编程实现LED灯按照特定顺序依次亮灭,形成流动效果。这个项目主要涉及以下知识点: 1. **单片机基础**:单片机是微型计算机的一种,集成在单一...
标题中的“51单片机8位流水灯式控制发光二极管Keil代码”指的是使用51系列单片机,通过编程实现8个发光二极管按照特定顺序依次亮灭,形成流水灯效果的项目。这个项目的核心是编写Keil C语言的源代码,以控制单片机的...
1. 流水灯实验:通过8255A的Port A循环输出数据,驱动连接的发光二极管依次亮起,形成流水灯效果,以验证Port A的输出功能。 2. 交通灯实验:模拟交通信号灯的控制,使用Port A的不同组合点亮代表红绿黄灯的二极管,...
在电子工程领域,LED(Light Emitting Diode)的控制是一项基本操作,尤其在单片机编程中。本文将深入探讨如何使用四个开关通过单片机来控制LED的亮灭。 首先,我们要理解"单片机"的概念。单片机是一种微控制器,它...
在本篇内容中,我们将详细解析一个简单的51单片机汇编语言程序,该程序的功能是通过P1口控制8个发光二极管(LED)依次循环点亮。这种类型的程序在教学实验、初学者入门以及小型电子项目中非常常见,它不仅能够帮助...
* 8255A芯片的A口PA7~PA0连发光二极管L7~L0 * PC3连接IRQ * PC6连接单脉冲发生器 2. 8255A选通行输入实验 在这个实验中,学生需要设置8255A的A口工作在方式1输入,然后每按一次单脉冲按钮产生一个正脉冲,使8255A...
* 在8255PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态。 三、电路原理图 图一:产生500μS方波 图二:按键控制LED亮 图三:流水灯依次点亮 四、实验...
- **软件编程**:编写程序控制A口和B口的输出状态,使得发光二极管按照预定顺序依次点亮熄灭。 ##### 2. 交通灯实验 **实验概述**:通过8255的A口模拟交通信号灯的控制。 - **硬件连接**:8255的A口的各个引脚分别...
标题中的"congzuodaoyou-led_P0口的8个LED从左到右循环依次点亮_"表明我们讨论的主题是关于使用微控制器的P0端口来实现一个LED走马灯的效果,其中LED会按照从左到右的顺序逐个亮起并循环。这种效果在电子制作和...
LED灯即发光二极管,它是一种半导体器件,当有适当的电流通过时,就会发出可见光。LED灯的亮度会随着电流的增加而增强,但过强的电流会导致LED灯损坏。LED灯具有低能耗、长寿命、体积小等优点。 知识点二:单片机...
LED流水灯是指一串LED灯按照特定顺序依次亮起或熄灭,形成类似水流流动的视觉效果。这种效果通常通过编程控制来实现,其中单片机是核心控制器。在本项目中,我们使用的编程语言是汇编语言,文件名为"ma001.asm",这...
- **亮灭顺序控制**:通过编程控制发光二极管的点亮顺序,实现左移或右移效果。 #### 5. 广告灯(利用取表方式) - **实验任务**:利用取表方式控制发光二极管的亮灭,形成特定图案或动画效果。 - **电路原理**:...
标题与描述中的“超酷的流水灯程序,间隔300ms先奇数亮再偶数亮”指的是一种在微控制器上运行的LED流水灯程序。这种程序通常用于教学目的,帮助学习者理解定时器、中断以及I/O口操作等关键概念。此程序的特点在于其...
在“流水灯1顺序亮然后逆着亮”这个模式下,我们需要编写程序使LED灯按照特定的顺序依次点亮,然后再反向熄灭。这通常涉及到循环控制和位操作。循环控制语句(如for或while)用于规定亮灯的次数和顺序,位操作(如...
1. 在P1.5端口上接一个发光二极管LED,编写程序,使LED不停地一亮一灭,一亮一灭的时间间隔为0.2s(其输出端为低电平时发光二极管点亮)。 2. P1.0-P1.3作输入口,接拨动开关K1-K4;P1.4-P1.7作输出口,接发光...
以实验机上74LS273做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。循环时间由定时器控制。 五、实验流程: 1. experiment preparation 2. programming 3. simulation 4. debugging 5. result ...
单片机实现发光二极管(LED)的循环点亮控制是一项基础而重要的实践任务,它涉及到微控制器原理、数字电路和编程技术等多个方面。在这个项目中,学生将学习如何使用单片机对LED进行基本的控制操作,进一步理解单片机...