微机原理LED流水灯模板
微机原理与单片机接口技术单片机课程设计
![微机原理与单片机接口技术单片机课程设计](https://img.taocdn.com/s3/m/9be9ddddaa00b52acfc7ca44.png)
实验一流水灯实验一、实验目的:(1)简单I/O引脚的输出(2)掌握软件延时编程方法(3)简单按键输入捕获判断二、实验实现的功能(1)开机是点亮12发光二极管,闪烁三下(2)按照顺时针循环依次点亮发光二极管(3)通过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计流水灯电路图四、系统软件设计实验一流水灯实验功能:1)开机是点亮12发光二极管,闪烁三下2)按照顺时针循环依次点亮发光二极管3)通过按键将发光二极管的显示改为顺逆时针方式#include<STC10.h>#define uchar unsigned char#define uint unsigned intsbit kh1=P3^6;sbit kl1=P0^5;tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff}; tab2[]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3b,0x37,0x2f,0x1f}; tab3[]={0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; tab4[]={0x1f,0x2f,0x37,0x3b,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f};void delay1() //延时60ms{uint x,y;for(x=200;x>0;x--)for(y=220;y>0;y--);}void delay2() //延时250ms{uint x,y;for(x=500;x>0;x--)for(y=200;y>0;y--);}void start() //点亮12个发光二极管,闪烁3次{uchar temp;while(temp<=2){P2=0x00;P3=0xc3;delay2();P2=0xff;P3=0xff;delay2();temp++;}}void main() //主函数{uchar b,z,n;start();while(1){n=b;z=(n%2);if(z==1){uchar x;for(x=0;x<12;x++){P2=tab3[x];P3=tab4[x];delay1();kh1=0;kl1=1;if(!kl1){delay1();if(!kl1)b+=1;while(!kl1);}}}if(z==0){uchar x;for(x=0;x<12;x++){P2=tab1[x];P3=tab2[x];delay1();kh1=0;kl1=1;if(!kl1){delay1();if(!kl1)b+=1;while(!kl1);}}}}}五、实验过程中遇到的问题及解决方法1、用for循环执行顺逆时针循环按下开关后无法原地返回。
流水灯程序 简单又详细【范本模板】
![流水灯程序 简单又详细【范本模板】](https://img.taocdn.com/s3/m/2641a5f3a8114431b80dd833.png)
流水灯原理图流水灯程序
其实流水灯程序就是你只要搞懂端口的高低电平是怎么一回事,置为1 即将该点即为高电平,置0即为低电平,低电平一般是0。
3V,同时要知道发光二极管在满足一定电压的同时正常发光电流为10~15mA左右,低于该电流二极管发光亮度会很暗。
比如用一个5V的电源驱动以个发光二极管其亮度会很亮,当串联一个300欧的电阻时,二极管两端的电压大概为2。
3V,此时电阻两端的电压为5.0—2。
2=2。
8V;电路中的电流为2.8V/300=9.3ma,接近于正常情况下的发光电流,当串联1K电阻时,则基本就不会光。
下图即为分别串联电阻为R=300,100,500.欧姆的情况下个发光二极管的亮
度.。
微机原理课程设计 流水灯控制系统
![微机原理课程设计 流水灯控制系统](https://img.taocdn.com/s3/m/e2aaa043a58da0116d17491b.png)
微机原理课程设计流水灯控制系统姓名:XX学院:物理电气信息学院班级:2010电子姓名:12010245…流水灯控制系统一、设计内容:本课程设计选用8086对8255A的A口控制来实现模拟流水灯功能的实现。
编写相关程序,通过proteus仿真软件来实现我名字“安亮”两个字的闪烁,“安”字接8255的A口的P0,“亮”字接A口的P1。
先让“安”字和“亮”字同时点亮,再让两个字同时暗,接着让“安”字点亮,再让“亮”字点亮,然后让“安”字和“亮”字同时亮暗闪烁八次,再跳到开始,以此循环。
二、设计目的:1、了解流水灯的基本工作原理2、熟悉8255A并行接口的各种工作方式和应用3、利用8255A接口,LED发光二极管,设计一个流水灯模拟系统,让我的名字“安亮”两个字按一定规律点亮。
三、实验原理在8086系统中,采用16位数据总线,进行数据传输时,CPU总是将低8位数据线上的数据送往偶地址端口,而过高8位数据线上的数据送往奇地址端口反过来,从偶地址端口取得的数据总是通过低8位数据线传送到CPU,从奇地址端口取得的数据总是通过高8位数据线送到CPU。
在8086系统中,将8255A的A1端和地址总线的A29255A 在对CPU并且,相连,A1端和地址总线的A0的8255A而将相连,的端口进行访问时,将地址总线的A0位总是设置为0。
本课程设计通过对8255A的A口控制来实现模拟流水灯功能的实现。
“安”接A 口的P0,“亮”接A口的P1,实现两个字按一定规律的一个闪烁。
8255的内部结构255A内部结构由以下四部分组成:数据端口A、B、C;A组控制和B组控制;读/写控制逻辑电路;数据总线缓冲器。
端口A:包括一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器,可作为数据输入或输出端口,并工作于三种方式中的任何一种。
端口B:包括一个8位的数据输出锁存/缓冲器和一个8位的数据输入缓冲器,可作为数据输入或输出端口,但不能工作于方式2。
微机原理流水灯
![微机原理流水灯](https://img.taocdn.com/s3/m/119571b705a1b0717fd5360cba1aa81144318f92.png)
微机原理流水灯流水灯,又称为跑马灯,是一种常见的LED灯效。
它的灯光效果像水流一样流动,非常美观。
在微机原理中,流水灯的实现是一个很好的实践项目,可以帮助学生理解数字电路和微机原理的知识。
本文将介绍如何使用微机原理实现流水灯,并提供相应的代码和电路图供参考。
首先,我们需要准备以下材料:1. 8个LED灯。
2. 8个220Ω的电阻。
3. 一个面包板。
4. 杜邦线若干。
5. 一个Arduino开发板。
接下来,我们来看一下流水灯的原理。
流水灯的实现原理是通过依次点亮LED 灯,然后熄灭前一个LED,点亮下一个LED,以此类推,就形成了灯光像水流一样流动的效果。
在微机原理中,我们可以利用Arduino开发板来实现这一效果。
首先,我们需要将8个LED灯连接到Arduino开发板上。
将LED的长针(阳极)通过220Ω的电阻连接到Arduino的数字引脚2~9上,LED的短针(阴极)接地。
接下来,我们需要编写Arduino的程序来实现流水灯的效果。
以下是流水灯的Arduino代码:```c。
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9};void setup() {。
for (int i = 0; i < 8; i++) {。
pinMode(ledPins[i], OUTPUT);}。
}。
void loop() {。
for (int i = 0; i < 8; i++) {。
digitalWrite(ledPins[i], HIGH);delay(100);digitalWrite(ledPins[i], LOW);}。
}。
```。
在这段代码中,我们首先定义了8个LED灯的引脚号,然后在setup函数中将这些引脚设置为输出模式。
在loop函数中,我们依次点亮每个LED灯,并通过delay函数控制灯光的流动速度。
接下来,我们将Arduino开发板连接到电脑上,上传这段代码到开发板中。
微机原理 LED灯实验
![微机原理 LED灯实验](https://img.taocdn.com/s3/m/ad727de525c52cc58bd6be99.png)
实验5 可编程并行接口8255芯片一.实验目的1.了解8255芯片的结构和功能2.掌握8255初始化程序的设计方法3.学会8255和CPU信号的连接方法4.重点掌握方式0的控制字和A,B,C端口的使用二.实验内容1.实验4的第3个内容用8255方式0实现,其中A口输入,B口输出DATA SEGMENTLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HIOA EQU 200HIOB EQU 202HIOC EQU 206HIOCON EQU 206HDATA ENDSCODE SEGMENT PUBLICASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DX,AXMOV DX,IOCONMOV AL,10010000BOUT DX,ALMOV BX,OFFSET LEDREP1:MOV DX,IOBMOV AL,0C0HOUT DX,ALMOV AL,01HMOV SI,1MOV CX,10LOP1:READ1:MOV DX,IOAIN AL,DXTEST AL,01HJNZ READ1READ2:MOV DX,IOAIN AL,DXTEST AL,01HJZ READ2MOV AX,SIXLATMOV DX,IOBOUT DX,ALINC SILOOP LOP1JMP REP1CODE ENDSEND START实验结果为按一下按钮,数码管跳变一次,从1到9,到9后再按输出0,循环下去。
2.完成8255方式1选通式查询输出,要求采用查询式输出,不断检测输出缓冲区满信号OBF,当OBF为高电平时,轮流电亮8个LED灯。
DATA SEGMENTORG 0100HLED DB 01HIOA EQU 200HIOB EQU 202HIOC EQU 204HIOCON EQU 206HDATA ENDSCODE SEGMENT PUBLICASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV DX,IOCONMOV AL,10100000BOUT DX,ALNEXT:MOV DX,IOAMOV AL,LEDOUT DX,ALMOV DX,IOAWAIT_A:MOV DX,IOCIN AL,DXTEST AL,10000000BJZ WAIT_AROL LED,1CALL DELAYJMP NEXTDELAY PROC NEARPUSH BXPUSH CXMOV BX,200LP1:MOV CX,496LP2:LOOP LP2DEC BXJNZ LP1POP CXPOP BXRETDELAY ENDPCODE ENDSEND START实验结果为按一次按钮,LED灯从左到右点亮一盏,如果按住按钮不松开,则LED 灯自动从左向右循环点亮。
微机原理流水灯
![微机原理流水灯](https://img.taocdn.com/s3/m/e99f13785b8102d276a20029bd64783e08127d14.png)
微机原理流水灯流水灯是一种常见的电子产品,它可以通过不同的灯光组合展示出各种图案和文字。
在微机原理中,流水灯也是一个经典的实验项目,通过学习和掌握流水灯的原理和实现方法,可以帮助我们更好地理解微机原理的相关知识。
首先,我们需要了解流水灯的工作原理。
流水灯通常由多个LED灯组成,这些LED灯按照一定的顺序依次亮起,然后熄灭,再依次亮起,如此循环往复。
这种效果可以通过微机原理中的计时器和计数器来实现。
计时器用来控制LED灯的亮起时间,而计数器则用来控制LED灯的顺序。
通过合理地设计计时器和计数器的工作模式,我们就可以实现流水灯的效果。
接下来,我们来介绍一种常见的流水灯实现方法。
首先,我们需要准备一块开发板,例如51单片机开发板。
然后,我们需要连接数个LED灯到开发板的GPIO口上,并且通过电阻限流,以防止LED 灯烧坏。
接着,我们需要编写相应的程序,通过控制计时器和计数器的工作模式,来实现LED灯的流水灯效果。
最后,将程序下载到开发板上,即可看到LED灯按照预定的顺序依次亮起和熄灭,实现流水灯的效果。
除了这种基于单片机的实现方法,我们还可以利用FPGA来实现流水灯。
FPGA是一种可编程逻辑器件,可以根据我们的设计需求来实现各种逻辑功能。
通过使用FPGA,我们可以更加灵活地设计流水灯的工作模式,实现更加丰富多彩的流水灯效果。
当然,相比于基于单片机的实现方法,利用FPGA来实现流水灯可能需要更多的硬件资源和编程知识,但是它可以实现更加复杂和高级的流水灯效果。
总的来说,微机原理中的流水灯实验项目不仅可以帮助我们更好地理解计时器和计数器的工作原理,还可以培养我们的动手能力和创造力。
通过不断地实践和探索,我们可以设计出各种各样的流水灯效果,甚至可以将其应用到实际的电子产品中。
希望大家在学习微机原理的过程中能够加深对流水灯的理解,同时也能够在实践中不断提升自己的能力。
最后,希望大家能够在微机原理的学习中取得更大的进步,为将来的发展打下坚实的基础。
微机实验-流水灯8255
![微机实验-流水灯8255](https://img.taocdn.com/s3/m/55166129647d27284b735199.png)
电子信息工程系实验报告课程名称:微机原理与接口技术实验项目名称:8255并行接口流水灯实验 实验时间:2009.12班级: 姓名: 学号:一、实 验 目 的:(1)掌握8255的工作方式及应用编程。
(2)掌握8255的典型应用电路接法。
二、实 验 设备:PC 机一台,实验箱及外部线路一套。
三、实验内容:编写程序,使8255的A 口作为LED 灯的输出,实现8位数据灯的相对循环显示。
(思考:用B 口的一位作为输入,控制LED 灯的循环方向。
)四、实 验 原理:INTEL8255是一种通用的可编程并行I /O 接口芯片,是专为INTEL 公司的微处理器设计的,也可用于其它系列的微型机系统中。
利用8086汇编指令系统,编制初始化程序,可以变更8255 的工作方式,通用性强,使用灵活。
8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。
可与外设并行进行数据交换。
A 口和B 口内具有中断控制逻辑,在外设与CPU 之间可用中断方式进行信息交换。
8255能与许多外部设备连接,例如:键盘、显示器、打印机等。
1、8255芯片特性(1)一个并行输入/输出的LSI 芯片,多功能的I/O 器件,可作为CPU 总线与外围的接口.(2)具有24个可编程设置的I/O 口,即使3组8位的I/O 口为PA 口,PB 口和PC 口.它们又可分为两组12位的I/O 口,A 组包括A 口及C 口(高4位,PC4~PC7),B 组包括B 口及C 口(低4位,PC0~PC3).A 组可设置为基本的I/O 口,闪控(STROBE)的I/O 闪控式,双向I/O3种模式。
2、8255引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU 进行通讯;/CS=1时,8255无法与CPU 做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU 发送数据或状态信息,即CPU 从8255读取信息或数据。
微机原理,流水灯实验
![微机原理,流水灯实验](https://img.taocdn.com/s3/m/3d1dddabc77da26925c5b0ea.png)
.MODEL TINYM8255A EQU 0F000H ;A端口口地址M8255B EQU 0F001H ;B端口口M8255CON EQU 0F003H ;控制口地址.STACK 100.DATAMODEA DB 10000010B ;A组方式0,A端口输出,B组方式0,B端口输出START: MOV AL,MODEA ;控制字给ALMOV DX,M8255CON ;控制口地址给DXOUT DX,AL ;8255初始化,确认控制方式MOV BL,11111110B ;BL初始化,最右边灯低电平亮START1:MOV DX,M8255A ;A端口地址给DXMOV AL,BL ;11111110给ALOUT DX,AL ;AL给DX,输出DX,灯亮CALL DELAY ;延时MOV DX,M8255B ;B端口给DXIN AL,DX ;B端口的设置给ALTEST AL,01H ;AL/B端口的设置与00000001按位对比JE START2 ;相等则跳转到START2ROR BL,1 ;循环右移一个单位JMP START1 ;无条件跳转到START1START2:ROL BL,1 ;循环左移一个单位JMP START1 ;无条件跳转到START1DELAY PROC NEARPUSH CXMOV CX,50000DEL: LOOP DEL ;CX减1,减50000次,每次一个晶振的时间POP CXRETDELAY ENDPEND START延时子程序DELAY PROC NEARDELAY1: XOR CX,CX ;异或指令,相同为0,这里cx清0LOOP $ ;循环控制指令,cx-1,当cx=1时执行后续指令,256次循环后cx=1.RETDELAY ENDPSTART2:ROL BL,2 ;循环左移2个单位JMP START1 ;无条件跳转到START1START2:ROL BL,3 ;循环左移3个单位JMP START1 ;无条件跳转到START1START: MOV AL,MODEA ;控制字给ALMOV DX,M8255CON ;控制口地址给DXOUT DX,AL ;8255初始化,确认控制方式MOV BL,01010100B ;BL初始化,最右边灯低电平亮,隔灯亮MOV BL,00000001B ;BL初始化,最右边灯暗LED_DATA DB 01110111BDB 10111011BLED_DATA DB 01110111BDB 11011101BDB 10111011BSTART: MOV AL,MODEA ;控制字给ALMOV DX,M8255CON ;控制口地址给DXOUT DX,AL ;8255初始化,确认控制方式LEA BL,LED_DATA ;BL初始化,有效地址给BLSTART1:MOV DX,M8255A ;A端口地址给DXMOV AL,BL ;11111110给ALOUT DX,AL ;AL给DX,输出DX,灯亮CALL DELAY ;延时MOV DX,M8255B ;B端口给DXIN AL,DX ;B端口的设置给ALTEST AL,01H ;AL/B端口的设置与00000001按位对比JE START2 ;结果相等则跳转到START2MOV DX,M8255B ;可能不要IN AL,DX ;可能不要TEST AL,02H ;再次对比00000010JE START3MOV DX,M8255B ;可能不要IN AL,DX ;可能不要TEST AL,04H ;再次对比00000100JE START4ROR BL,1 ;循环右移一个单位JMP START1 ;无条件跳转到START1START2:ROL BL,1 ;循环左移一个单位JMP START1START3:ROR BL,2 ;循环右移2个单位JMP START1START4:ROL BL,2 ;循环左移2个单位JMP START1START1:MOV DX,M8255A ;A端口地址给DXMOV AL,BL ;11111110给ALOUT DX,AL ;AL给DX,输出DX,灯亮CALL DELAY ;延时MOV DX,M8255B ;B端口给DXIN AL,DX ;B端口的设置给ALXOR AL ,00H ;AL/B端口的设置与00000001按位对比CMP AL,01HJE START2CMP AL,02HJE START3CMP AL,04HJE START4JE START2 ;相等则跳转到START2ROR BL,1 ;循环右移一个单位JMP START1 ;无条件跳转到START1。
实验一 LED流水灯
![实验一 LED流水灯](https://img.taocdn.com/s3/m/249fe704a6c30c2259019e82.png)
实验一 LED流水灯一、实验目的1、学习LPC系列处理器GPIO口的使用方法;2、掌握在开发过程中程序工程模板的建立和使用编程方法。
二、实验要求1、了解LPC系列处理器GPIO口的功能原理;2、了解程序设计中多模块编程的方法;三、实验原理1、LPC系列处理器GPIO口的原理参见《ARM原理与嵌入式应用——基于LPC2400处理器和IAR开发环境》中有关GPIO 口的章节,重点要掌握GPIO口的初始化、数据的输入和输出。
2、实验板上的LED(1)、原理图实验板上LED的硬件连接参见原理图。
(2)、说明实验板上的4个LED是利用GPIO口来直接控制的。
图中的四个LEDPORT引脚分别对应的是P3.24、P3.25、P3.26、P3.27四个引脚。
四根信号线经过74LVC244驱动以后连接到发光二极管LED上,引脚输出高电平则LED点亮,输出低电平则LED熄灭。
3、程序工程模板说明(1)、工程目录说明在程序开发中,尤其是涉及到的代码较多时,应该将不同的代码分别存放,这样做的好处是系统代码结构清楚,查找、管理和代码移植都容易。
实验板提供的程序工程模板中,主要有以下几个目录:1)Common:这个目录存放了几乎各个实验都要使用的公用代码、IAR配置宏和链接器命令文件。
其中src目录下有四个源程序文件:cstartup.s79芯片的初始化汇编代码、target.c目标板的初始化C语言代码、irq.c中断实现程序、timer.c定时器程序。
这四个程序在大多数实验中都会用到,是实验板基本的程序代码。
2)Target:这个目录存放了目标板各个不同部件的驱动程序。
例如:rtc.c提供的实时时钟的驱动程序;uart0.c是串口0的驱动程序等等。
在编写自己的应用程序时,可将自己需要的部分代码加进自己的工程里。
3)Include:存放头文件的目录。
以上三个目录都已经提供。
4)Src:存放用户源程序的目录。
在实验中,用户自己编写的源程序存放在此。
微机原理与接口技术课程设计流水灯
![微机原理与接口技术课程设计流水灯](https://img.taocdn.com/s3/m/67704abcdbef5ef7ba0d4a7302768e9951e76ee3.png)
微机原理与接口技术课程设计流水灯1. 设计目标设计一个基于51单片机的流水灯系统,能够实现多种不同的流水灯效果,并且可以通过按键进行切换和控制。
2. 硬件设计(1)51单片机使用STC89C52系列单片机作为主控芯片,具有较高的性价比和稳定性。
(2)LED灯使用8个LED灯作为流水灯的显示元件,需要连接到P0口的8个引脚上。
(3)按键使用一个按键作为流水灯效果的切换和控制,需要连接到P3.2口。
(4)电源使用5V直流电源供电,需要连接到单片机的VCC和GND引脚上。
3. 软件设计(1)IO口初始化首先需要将P0口的8个引脚设置为输出模式,P3.2口的引脚设置为输入模式。
(2)流水灯效果实现流水灯效果可以通过循环移位的方式实现,具体代码如下:```cvoid flow_light(){unsigned char i, j;for (i = 0; i < 8; i++){for (j = 0; j < 8; j++){P0 = ~(1 << j);delay_ms(50);}P0 = 0xff;}}```其中,P0 = ~(1 << j)表示将P0口的第j个引脚设置为低电平,其他引脚设置为高电平,从而实现LED灯的亮灭。
(3)按键控制通过检测P3.2口的引脚状态,可以实现按键的控制,具体代码如下:```cvoid key_control(){if (P3 & 0x04){delay_ms(10);if (P3 & 0x04){mode++;if (mode >= 3){mode = 0;}}}}```其中,P3 & 0x04表示检测P3.2口的引脚状态,如果为高电平,则表示按键未按下;delay_ms(10)表示延迟10ms,以避免按键抖动;mode表示当前的流水灯效果模式,通过按键控制其值的变化。
(4)主函数代码主函数代码如下:```cvoid main(){while (1){switch (mode){case 0:flow_light();break;case 1://其他流水灯效果break;case 2://其他流水灯效果break;}key_control();}}```其中,switch (mode)表示根据当前的流水灯效果模式执行不同的函数;key_control()表示检测按键状态并进行相应的控制。
微机原理与接口技术课程设计报告音乐流水灯参考模板
![微机原理与接口技术课程设计报告音乐流水灯参考模板](https://img.taocdn.com/s3/m/85cc7200e009581b6ad9eb70.png)
微机原理与接口技术课程设计论文题目:音乐流水灯姓名:鞠强学号:201330020228班级:1330202专业:自动化2015年6月一、实验任务及要求任务:1、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;2、掌握实时处理程序的编制和调试方法。
要求:用8255、8253、8259配合8086使蜂鸣器发出唱歌声同时还能够使用数码管进行边跳舞边唱歌实验。
二、硬件连线键盘的控制、LED显示模块:采用74系列模块控制键盘的行信号Q_0、Q_1、Q_2、Q_3分别与开放的输入信号Q0、Q1、Q2、Q3相连,键盘的列信号P_0、P_1、P_2和开放的输出信号P0、P1、P2相连。
74芯片的片选信号CS1接地址译码信号340H, CS2接地址译码信号360H。
蜂鸣器发声控制:由8255模块控制;PC0直接与蜂鸣器相连,CS_4连接到实验仪中部的地址输出端CS_4中断处理模块:由8259控制8259的片选CS-1连地址输出300H,INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V, 8259的IRQ0连接到8253的OUT0。
三、程序流程图主程序初始化各阶段寄存器及相关变量初始化8253、8255芯片设置中断向量、开放8253中断屏蔽开放处理器中断中断服务程序保护现场判断时间是否不小于59分55秒报时扫描键盘G 键?调用启停子程序S COUNT COUNT=40? ADDONE 子程序COUNT 清0显示时间,调用显示时间子程序结束中断(发EOI 命令)恢复现场中断返回Y YN Y四、实验源代码DATA SEGMENT AT 0 USE16ORG 1000HHOUR DW ?MIN DW ?SEC DW ?SLL DB ?COUNT DB ?DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATAORG 1500HBEG:JMP STARTTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H ;0~F 的共阴极七段译码表00H表示不显示任何东西KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;行列编码值KEYV AL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;所有键的键面值PORT1 EQU 340H ;数码管段选端口PORT2 EQU 360H ;数码管位选端口,键盘矩阵的行列端口START: MOV EAX,60000000HMOV CR0,EAXMOV AX,DATAMOV DS,AXMOV HOUR,0203H ;小时分钟以及秒的初始化MOV MIN,0509HMOV SEC,0502HLEA BX,TABMOV SLL,0 ;开始暂停标志位置0MOV COUNT ,0 ;中断次数计数初始值为0;8255初始化,用于产生报时的脉冲MOV EAX,80808080H;控制字MOV DX,20CH ;后面的是4个8255的控制端口20C-20F (这个地址由实验台决定)OUT DX,EAX ;初始化8255,A、B、C口均为方式0输出MOV DX,20BHMOV AL,0FFHOUT DX,AL;8253初始化,用于产生周期为25ms的中断MOV AL,00110110B ;计数器0,先低后高,方式三,二进制MOV DX,32cH ;写往控制口OUT DX,ALMOV DX,320H ;计数器0写初值:47KHz*25msMOV AX,1175OUT DX,ALMOV AL,AHOUT DX,ALMOV AL,0FEH ;IR0开屏蔽OUT DX,ALXOR AX,AX ;装载中断向量MOV ES,AXMOV DI,08H*4MOV AX,OFFSET INTSRMOV ES:[DI],AXMOV AX,SEG INTSRMOV ES:[DI+2],AXSTI ;开中断JMP $INTSR PROC ;中断服务程序CMP MIN,0509H ;比较当前时间是否在59分55秒~00分00秒之间JL NEXT1CMP SEC,0505HJL NEXT1MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT1: CMP MIN,0JNE NEXT3CMP SEC,0JNE NEXT3MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT3: MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT2: CMP COUNT,20 ;用8255产生0.5ms的蜂鸣JLE NEXT4MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT4:CMP SLL,0JZ LOBCALL TSTARTLOB: CALL KEYCHECK ;检测有无键按下CMP AL,0AH ;启停键按下,调用启停程序JNZ NEXT5CALL TSTARTJMP NEXT6NEXT5: CMP AL,0BH ;设置键按下,调用设置时间程序JNZ NEXT6CALL SETTIMEINTSR ENDPTSTART PROC ;控制时间暂停和开始。
微机原理LED流水灯模板
![微机原理LED流水灯模板](https://img.taocdn.com/s3/m/6e3a58dd240c844769eaee6b.png)
目录
第一章设计课题与要求........................................................... ..................1
1.1设计目的........................................................... .......................1
3.3.2开关闭合仿真结果...........................................................11
第四章设计总结................................................................ .........................12
1.2设计要求........................................................... .......................1
第二章流水彩灯控制系统的整体设计......................................................2
2.3.2硬件原理设计..................................................................7
2.3.3软件程序设计................................................................ 8
参考文献.............................................................. ..........................................12
LED流水灯
![LED流水灯](https://img.taocdn.com/s3/m/d5313d8884868762caaed54c.png)
LED流水灯一、电路说明本套件是一个由3只三极管和9只LED组成的循环灯。
电路是这样工作的,当电源一接通,3只三极管就要争先导通,但由于元器件有差异,只有某一只管子最先导通。
假如Q1最先导通,那么Q1集电极电压下降,使电容C1的左端接近零电压,由于电容器两端的电压不能突变,所以Q2基极也被拉到近似零电压,使Q2截止。
Q2集电极为高电压,那么接在它上面的发光二极管就亮了。
此刻Q2集电极上的高电压通过电容器C2使Q3基极电压升高,三极管Q3也将迅速导通。
因此在这一段时间内,Q1与Q3的集电极均为低电压,只有接在Q2集电极上的发光二极管亮,而其余两只发光二极管不亮。
随着电源通过电阻R3对C1的充电,使三极管Q2基极电压逐渐升高,当超过0.6伏时,Q2由截止状态变为导通状态,集电极电压下降,发光二极管熄灭。
与此同时三极管Q2集电极电压的下降通过电容器C2的作用使三极管Q3的基极电压也下跳,Q3由导通变为截止。
接在Q3集电极上的发光二极管就亮了。
如此循环,电路中3只三极管便轮流导通和截止,三只发光二极管就不停地循环发光。
改变电容的容量可以改变循环灯循环的速度。
二、性能参数工作电压:DC3V—9V三、元件清单:四、电路图五、组装好的成品图C9013 NPN三极管△主要用途:作为音频放大和收音机1W推挽输出(C9012互补)参数符号测试条件最小值典型值最大值单位集电极漏电流ICBO VCB=30V,IE=0 100 nA发射极漏电流IEBO VBE=5V,IC=0 100 nA集电极、发射极击穿电压BVCEO IC=1mA,IB=0 25 V 发射极、基极击穿电压BVEBO IE=100μA,IC=0 5 V 集电极、基极击穿电压BVCBO IC=100μA,IE=0 30 V 集电极、发射极饱和压降VCE(sat)IC=500mA,IB=50mA 0.6 V基极、发射极饱和压降VBE(sat)IC=500mA,IB=50mA 1.2 V基极、发射极压降VBE VCE=1V,IC=10mA 1.0 V直流电流增益HFE1 VCE=1V,IC=50mA 96 300HFE2 VCE=1V,IC=500mA 40参数符号标称值单位集电极、基极击穿电压VCBO 30 V集电极、发射极击穿电压VCEO 25 V发射极、基极击穿电压VEBO 5 V集电极电流IC 500 mA集电极功率PC 625 mW结温TJ 150 ℃贮存温TSTG -55-150 ℃6发射△电参数(Ta=25℃)(按HEF1分类)标准分档:F:96-135 G:112-166 H:144-202 I:200-300 TO-921. 发射极E2. 基极B3. 集电极CF G H1 H2 I1 I296-120 120-150 150-170 170-200 200-250 250-300C9014 NPN三极管△主要用途:作为低频、低噪声前置放大,应用于电话机、VCD、DVD、电动玩具等电子产品(与C9015互补)参数符号测试条件最小值典型值最大值单位集电极漏电流ICBO VCB=60V,IE=0 100 nA发射极漏电流IEBO VBE=5V,IC=0 100 nA集电极、发射极击穿电压BVCEO IC=1mA,IB=0 50 V发射极、基极击穿电压BVEBO IE=10μA,IC=0 5 V集电极、基极击穿电压BVCBO IC=100μA,IE=0 60 V集电极、发射极饱和压降VCE(satIC=100mA,IB=10mA 0.25 V基极、发射极饱和压降VBE(sat)IC=100mA,IB=10mA 1.0 V直流电流增益HFE1 VCE=6V,IC=2mA 120 700HFE2 VCE=6V,IC=150mA 25参数符号标称值单位集电极、基极击穿电压VCBO 60 V集电极、发射极击穿电压VCEO 50 V发射极、基极击穿电压VEBO 5 V集电极电流IC 150 mA集电极功率PC 625 mW结温TJ 150 ℃贮存温TSTG -55-150 ℃6发射△电参数(Ta=25℃)(按HEF1分类)标准分档:B:100-300 C:200-600 D:400-1000 TO-921. 发射极E2. 基极B3. 集电极CB C1 C2 D1 D2 D3120-200 200-300 300-400 400-500 500-600 600-700。
微机原理流水灯
![微机原理流水灯](https://img.taocdn.com/s3/m/74c836b84793daef5ef7ba0d4a7302768e996fff.png)
微机原理流水灯微机原理流水灯是一种常见的电子电路实验项目,通过使用微机原理的知识和流水灯的原理,可以实现一个简单而又有趣的电子电路。
在这个实验项目中,我们将使用集成电路、LED灯和电阻等元件,通过逻辑门的组合和时序控制,实现LED灯的流水效果。
本文将详细介绍微机原理流水灯的原理、电路图、元件选型、电路搭建和实验步骤等内容,希望能帮助大家更好地理解和掌握这一实验项目。
一、原理介绍。
流水灯是一种LED灯的控制方式,通过逐个点亮LED灯,然后依次熄灭,再点亮下一个LED灯,如此循环往复,就形成了LED灯的流水效果。
在微机原理流水灯中,我们将通过逻辑门的组合和时序控制,实现LED灯的流水效果。
具体原理如下:1. 逻辑门的组合,我们将使用多个逻辑门,如与门、或门、非门等,通过它们的组合,实现LED灯的控制和时序逻辑。
2. 时序控制,通过时序控制电路,我们可以控制LED灯的点亮和熄灭的时间,从而实现LED灯的流水效果。
二、电路图。
接下来,我们将介绍微机原理流水灯的电路图,如下图所示:(这里插入电路图)。
三、元件选型。
在搭建微机原理流水灯的电路时,我们需要选择合适的元件,包括集成电路、LED灯、电阻等。
具体的元件选型如下:1. 集成电路,我们将使用74LS164或74HC595等移位寄存器芯片,用于控制LED灯的流水效果。
2. LED灯,选择适合的颜色和亮度的LED灯,用于实现流水灯的效果。
3. 电阻,根据LED灯的参数,选择合适的电阻,限流保护LED 灯。
四、电路搭建。
在进行微机原理流水灯实验之前,我们需要先进行电路搭建。
具体的电路搭建步骤如下:1. 将选好的元件按照电路图连接好,注意元件之间的引脚连接和电路的布局。
2. 检查电路连接是否正确,确保没有接错线或短路等问题。
3. 给电路供电,观察LED灯的流水效果是否符合预期。
五、实验步骤。
最后,我们将介绍微机原理流水灯的实验步骤,帮助大家更好地进行实验:1. 按照电路图和元件选型,搭建好微机原理流水灯的电路。
微机流水灯实验
![微机流水灯实验](https://img.taocdn.com/s3/m/8c776bcf915f804d2a16c199.png)
深圳大学实验报告课程名称:微机原理及应用实验实验项目名称:可编程并行接口8255 实验学院:专业:应用物理指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务处制一、实验名称:可编程并行接口 8255 实验二、实验目的了解可编程并行接口芯片8255 的内部结构、工作方式、初始化编程及应用。
三、实验内容(1) 流水灯实验:利用8255 的A 口循环点亮发光二极管。
(2) I/O 输入输出实验:利用8255 的A 口读取开关状态,8255 的B 口把状态送发光二极管显示。
图1 实验原理图四、实验电路及连线(硬件实验)(1) 实验连线该模块的WR、RD 分别连到MCU 主模块的WR、RD。
该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU 主模块的数据(AD0~AD7)、地址线(A0~A7)。
8255 模块选通线CS 连到MCU 主模块的地址A15。
8255 的PA0~PA7 连到发光二极管的L0~L7。
图2 流水灯实验(2) 运行程序,观察发光二极管。
2、I/O 输入输出实验:(1) 实验连线该模块的WR、RD 分别连到MCU 主模块的WR、RD。
该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU 主模块的数据(AD0~AD7)、地址线(A0~A7)。
8255 模块选通线CE 连到MCU 主模块的地址A15。
8255 的PA0~PA7 接开关K0~K7,8255 的PB0~PB7 接发光二极管L0~L7。
图3 I/O 输入输出实验(2) 运行程序,拨动开关,观察发光二极管。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
L2: OUT 22h,AL;对B口赋值
MOV BX,0FFFFH;延时
L3: NOP
NOP
NOP
DEC BX
JNZ L3
ROL AL,1
ROL AL,1;左移两位
LOOP L2;循环10次
JMP L5
L7: MOV CX,10
MOV AL,0C0H
L4: OUT 22h,AL;对B口赋值
第三章PROTUES仿真过程.............................................................. ...10
3.1编译工具Masm For Windows简介........................................10
3.2 PROTEUS简介................................................................. .......10
关键词:8086 8255 proteus
目录
第一章设计课题与要求........................................................... ..................1
1.1设计目的........................................................... .......................1
1.2设计要求
1、设计题目
编写程序,使用8255的B口均为输出,实现8位流水灯显示效果。
2、功能扩展
通过开关可以对流水灯流向进行控制,打开时为倒着流,闭合时为顺着流。
第二章流水彩灯控制系统的整体设计
2.1 16位微处理器8086简介
2.1.1 8086的编程结构
8086的编程结构可分为两大部分:共14个16位寄存器
2.2 可编程并行通信接口8255A简介...........................................5
2.2.1 8255A的内部结构..........................................................5
2.2.2 8255A芯片引脚功能......................................................6
2.3.2硬件原理设计
1、8255的WR、RD分别练到PC总线接口模块的WR和RD。
2、8255的AD0~AD7连到PC总线接口模块的数据AD0~AD7。
3、8255模块选通线CS连到PC总线接口模块的IO8。
4、8255的PB0~PB7接8个LED灯。
5、8255的PC0接到开关。
(1)、原理图:
2.1 16位微处理器8086简介........................................................2
2.1.1 8086的编程结构............................................................2
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AL,81H;设置控制字
OUT 26h,AL
L5: IN AL,24H
TEST AL,01H;查看PC0口是否有数据输入,改变流OV CX,10
参考文献.............................................................. ..........................................12
第一章设计课题与要求
1.1设计目的
1、了解流水灯的工作原理。
2、掌握流水灯编程方法和芯片8255的逻辑功能及使用方法。3、掌握一定的汇编语言知识,培养自己的动手操作能力。4、学习程序设计的基本思路和方法
3.3.2开关闭合仿真结果...........................................................11
第四章设计总结................................................................ .........................12
两种工作模式,由MN/MX引脚决定。不同模式下,部分引脚定义不同
最小模式:系统中只有一个处理器,MN/MX为高电平。
最大模式:系统中包括两个或多个处理器,一个主处理器,其他的称为协处理器。此时的工作模式引脚MN/MX为低电平。
2、8086的引脚信号
2.1.3 8086的操作和时序
1、8086的主要操作:
3.3系统仿真结果................................................................. .........11
3.3.1开关打开仿真结果..........................................................11
1.2设计要求........................................................... .......................1
第二章流水彩灯控制系统的整体设计......................................................2
2.3.2硬件原理设计..................................................................7
2.3.3软件程序设计................................................................ 8
与CPU相连引脚如下:
RESET:复位信号,输入,高电平有效。复位后清所有内部寄存器
D7~D0:数据线,与系统总线连接。
RD:读信号,输入,低电平有效,从8255A读取数据
WR:写信号,输入,低电平有效,把数据写入8255A。
CS:片选信号,输入,低电平有效,决定芯片地址。
A0 A1:端口选择信号,8255占4个端口地址。
Masm for windows 集成实验环境是从事一线教学的大学教师针对汇编语言初学者的特点开发的一个简单易用的汇编语言学习与实验软件,支持32位与64位的操作系统WINDOWS 7,支持DOS的16/32位汇编程序和Windows下的32汇编程序(并提供调试通过的35个WINDOWS汇编程序实例源代码),它具有错误信息自动定位、200多种中英文错误信息同步显示功能扫除了英文差的用户学习汇编语言的恐惧心理、关键字实时帮助并且在帮助中动画演示汇编指令的执行过程、语法着色、无限次撤消与恢复、WORD式的查找、替换、定位、支持中文、长文件名等功能。
①系统的复位和启动操作;
②暂停操作;
③总线操作;
④中断操作;
⑤最小模式下的总线保持;
⑥最大模式下的总线请求/允许。
2、时序分析(以最小模式为例)
(1)具有等待周期的存储器读周期
(2) 最小模式下存储器写周期
(3)最小模式下I/O端口读时序
2.1.4 8086的存储器编址和I/O编址
1、8086的存储器编址20根地址线,可管理1MB
2.2.1 8255A的内部结构
2.2.2 8255A芯片引脚功能
8255A为40引脚双列直插的NMOS器件,与外设相连引脚如下:
PA7~PA0:端口A的数据线,双向,三态输出。
PB7~PB0:端口B的数据线,可输入,也可输出。
PC7~PC0:端口C的数据线,可输入,也可输出,还可做A口或B口的控制信号线。
2.3整体设计
2.3.1总体方案设计分析
要求用8255的B口做为输出,接8个发光二极管,从而实现8位流水灯的显示效果,在C口的地位接一个开关,实现一个扩展功能的控制。
1、基本流水灯显示电路
在本次设计中用AL对B口进行赋值,通过演示一段时间再对AL进行移位和输出,实现流水灯的效果。
2、正反方向选择
把PC.0口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.0为高电平的时候则灯进行右移,低电平的时候则灯进行左移。
《微机原理》课程论文
流水灯彩灯控制设计
姓名:龙浪
学号:12012242130
专业:通信工程
班级:2012级通信(2)班
指导老师:庄红
学院:物理电气信息学院
完成日期:2014.11.29
摘要
随着电子技术的发展,计算机在现代科学中扮演着越来越重要的作用,此次课程设计流水控制器在我门日常生活中有重要的运用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。本次设计的流水彩灯控制器是其中较简单的,但这是进行复杂设计的基础。本次课程设计,运用课堂所学知识,并自学第六章串并行通信和接口技术这一章,通过编写程序,使用8255的B口为输出,实现8位流水灯显示效果。
编程地址范围:0000H~FFFFH
物理地址:段地址×16+逻辑地址
2、8086的I/O编址
每个端口对应I/O芯片内部一个寄存器,它们的地址也叫端口号。
编址方法:
(1)I/O端口和存储器统一编址
寻址能力小,指令相同
(2)I/O端口单独编址
寻址能力大,指令不相同
端口:IN、OUT指令
内存:MOV
2.2 可编程并行通信接口8255A简介
2.1.2 8086的引脚信号和工作模式........................................3