跑马灯设计1.docx

上传人:b****0 文档编号:17175090 上传时间:2023-07-22 格式:DOCX 页数:20 大小:170.17KB
下载 相关 举报
跑马灯设计1.docx_第1页
第1页 / 共20页
跑马灯设计1.docx_第2页
第2页 / 共20页
跑马灯设计1.docx_第3页
第3页 / 共20页
跑马灯设计1.docx_第4页
第4页 / 共20页
跑马灯设计1.docx_第5页
第5页 / 共20页
跑马灯设计1.docx_第6页
第6页 / 共20页
跑马灯设计1.docx_第7页
第7页 / 共20页
跑马灯设计1.docx_第8页
第8页 / 共20页
跑马灯设计1.docx_第9页
第9页 / 共20页
跑马灯设计1.docx_第10页
第10页 / 共20页
跑马灯设计1.docx_第11页
第11页 / 共20页
跑马灯设计1.docx_第12页
第12页 / 共20页
跑马灯设计1.docx_第13页
第13页 / 共20页
跑马灯设计1.docx_第14页
第14页 / 共20页
跑马灯设计1.docx_第15页
第15页 / 共20页
跑马灯设计1.docx_第16页
第16页 / 共20页
跑马灯设计1.docx_第17页
第17页 / 共20页
跑马灯设计1.docx_第18页
第18页 / 共20页
跑马灯设计1.docx_第19页
第19页 / 共20页
跑马灯设计1.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

跑马灯设计1.docx

《跑马灯设计1.docx》由会员分享,可在线阅读,更多相关《跑马灯设计1.docx(20页珍藏版)》请在冰点文库上搜索。

跑马灯设计1.docx

跑马灯设计1

 

一、题义分析与解决

1.题义与需求分析

用STARES598PCI单板开发机和接口设计跑马灯控制器,应用软件控制并行接口电路,使练级在该接口上的8个发光二极管和8个控制开关,按控制开关定义的功能形式闪烁:

①依次左移与右移闪烁;

②隔一左移闪烁;

③隔二左移和右移闪烁;

④左右相向移动闪烁。

2.解决问题的方法与思路

1)硬件部分

实验设备包括StarPCI9052、DMA$32BITRAM板卡一套、StarES-PCI模块一块、STARES598PCI实验仪一套、PC机一台

使用到STARES598PCI实验仪的模块包括:

A3区:

CPU总线、片选区

B4区:

8255电路

G6区:

发光管、按键、开关

ADC0809模/数转换器用于将采集的模拟信号转换成数字信号,CPU通过8255同0809相连接,由电位器将一路模拟量送入0809,并由8255采用查询工作方式控制0809工作。

CPU通过8255向报警系统(扬声器、发光二极管)发送控制信号。

2)软件部分(汇编语言编写程序)

①首先要对8255进行初始化设计,设置8255的工作方式并确定8255的端口地址。

②编写启动0809的程序进行模/数转换,并将结果送入(有效)。

③将与比较量相比较,大于限定最大值,则发生报警;小于限定最小值,也发生报警。

二、硬件设计

1.选择芯片8255A

1)8255A在本设计中的作用

8255A将输入端的输入信号传送到8255A中,通过分析再通过输出端把输出信号传送到LED中。

2)8255A的功能分析

图2-18255A的内部框图

8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。

三个端口都可以作为输入端口或输出端口。

A口有三种工作方式:

即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。

8255A的工作只有当片选CS效时才能进行。

而控制逻辑端口实现对其他端口的控制。

8255A的操作功能表

A1A0

操作

数据传送方式

00100

读A口

A口数据→数据总线

00101

读B口

B口数据→数据总线

00110

读C口

C口数据→数据总线

01000

写A口

数据总线数据→A口

01001

写B口

数据总线数据→B口

01010

写C口

数据总线数据→C口

01011

写控制口

数据总线数据→控制口

表2-18255A的操作功能表

8255A有三种工作方式,用户可以通过编程来设置。

3)8255A的技术参数

①与外设相连的

PA7~PA0:

A口数据信号线。

PB7~PB0:

B口数据信号线。

PC7~PC0:

C口数据信号线。

②与CPU相连的

RESET:

复位信号。

当此信号来时,所有寄存器都被清除。

同时三个数据端口被自动置为输入端口。

D7~D0:

它们是8255A的数据线和系统总线相连。

CS:

片选信号。

在系统中,一般根据全部接口芯片来分配,若低位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,8255A被选中。

只有当其有效时,读信号写才对8255A进行读写。

RD:

读信号。

当此信号有效时,CPU可从8255A中读取数据。

WR:

写信号。

当此信号有效时,CPU可向8255A中写入数据。

A1、A0:

端口选择信号。

8255A内部有3个数据端口和1个控制端口,共4个端口。

规定:

A1、A0为00时,选中A端口;

A1、A0为01时,选中B端口;

A1、A0为10时,选中C端口;

A1、A0为11时,选中控制口。

③参数说明:

输入最低电压:

min=-0.5V,max=0.8V

输入最高电压:

2.0V

输出最低电压:

0.45V

输出最高电压:

2.4V

8255A的方式控制字

D7D6D5D4D3D2D1D0

1

0

0

0

1

0

0

1

1:

工作方式A口方式0输出B口方式0输出

C口高4位输入C口低4位输入

图2-28255A的方式控制字表

方式0的工作特点:

这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。

通道的功能为:

两个8位通道:

通道A和B。

两个四位通道:

通道C高4位和低四位,任何一个通道可以作输入/输出,输入是不锁存的,输出是锁存的,在方式0时各个通道的输入/输出可有16种不同的组合。

D7D6D5D4D3D2D1D0

0

X

X

X

写入位编码

写入内容

写入位编码0写入0

D0-D7000-1111写入1

图2-38255A的置位/控制字表

2.选择芯片开关

1)开关在本设计中的作用

本次设计需要用到八位开关预置界限值,而只要考虑4种控制方式,只需要4个开关,开关打到一端为0,开关打到另一端为1。

2)开关的功能分析

显示输入数值.

3)开关的技术参数

编码

数字

编码

数字

0000

0

1000

8

0001

1

1001

9

0010

2

1010

A

0011

3

1011

B

0100

4

1100

C

0101

5

1101

D

0110

6

1110

E

0111

7

1111

F

表2-2开关编码表

3.选择芯片LED

1)LED在本设计中的作用

显示输入电压值,和最大最小限压值.

2)LED的功能分析

LED显示电路较为简单,成本也较低,在功能单一的仪器仪表与机电设备中应用较广。

但当设备显示的点或位较多时,就需要采用一定的驱动电路与相应的驱动方式。

利用专用接口芯片如8255作为计算机芯片的端口扩展,并通过软件编程加外部驱动实现。

图2-5LED内部框图

数字

DP

g

f

e

d

c

b

a

二进制编码(字形)

0

0

0

1

1

1

1

1

1

3FH

1

0

0

0

0

0

0

1

1

03H

2

0

1

0

1

1

0

1

1

5BH

3

0

1

0

0

1

1

1

1

4FH

4

0

1

1

0

0

1

1

0

66H

5

0

1

1

0

1

1

0

1

6DH

6

0

1

1

1

1

1

0

1

7DH

7

0

0

0

0

0

1

1

1

07H

8

0

1

1

1

1

1

1

1

7FH

9

0

1

1

0

1

1

1

1

6FH

A

0

1

1

1

0

1

1

1

77H

B

0

1

1

1

1

1

0

0

7CH

C

0

0

1

1

1

0

0

1

69H

D

0

1

0

1

1

1

1

0

5EH

E

0

1

1

1

1

0

0

1

79H

F

0

1

1

1

0

0

0

1

71H

表2-3共阴极七段LED显示段码

(1)静态:

数码管显示过程持续得到信号,与数码管接口的I/O口线为专用。

特点是无闪烁,元器件多,占I/O线多,无须扫描,节省CPU时间,编程简单。

(2)动态:

数码管显示过程轮流得到信号,与各数码管接口的I/O口线为共用。

特点是有闪烁,元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂(有多个LED时尤为突出)。

3)芯片LED的技术参数

Pcw

If

Vr

Ir

If

^p

对应型号

散射颜色

BT235-2

70

25

5

≥1.5

≤2.5

200

SEL-10

红色

BT1441529

100

40

5

≥0.5

≤2.5

565

绿色

BT1341529

100

40

5

≥0.5

≤2.5

585

蓝色

 

表2-4芯片LED的技术参数

消耗功率PM=150mW

最大工作电流IFM=100mA

正常工作电流IF=40mA

正向压降VF≤1.8V

燃亮电压为5v

共阴极LED的PM=300mW,IFM=200mA,IF=60mA,VF≤1.8V,VR≥5V,发红光。

4.硬件总逻辑图及其说明

首先根据要求分析程序要求4个输入开关和8个LED显示灯,我把8255初始化使得PA口连接LED为输出,PC连接开关为输入,PB为方式0不做处理,初始化的开关选择0为打开1为闭合,而且选择开关的1、2、3、4来控制,这样方便程序比较的要求。

每个开关对应的是LED显示的一种情况,其中一个开关打开其他开关就需要闭合。

三、控制程序设计

1.控制程序设计思路说明

初始化8255芯片,定为89,然后定PC1为1、PC2为1、PC3为1、PC4为1,熄灭说有灯是为了使开关置1时为闭合状态,当要进入子程序控制时,把硬件的开关打开,在方式0状态时比较当比较为0时跳入某个子程序.

2.控制程序流程图

总程序框图

子程序一子程序二

子程序三子程序四

3.控制程序

.

.MODELTINY

PCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址,也为DMA&32BITRAM板卡上的8237提供基地址)

Vendor_IDEQU10EBH;厂商ID号

Device_IDEQU8376;设备ID号

.STACK100

.DATA

IO_Bit8_BaseAddressDW?

msg0DB'BIOS不支持访问PCI$'

msg1DB'找不到StarPCI9052板卡$'

msg2DB'读8位I/O空间基地址时出错$'

PA_ADDDW00F0H;8255PA口偏移量

PB_ADDDW00F1H;8255PB口偏移量

PC_ADDDW00F2H;8255PC口偏移量

COM_ADDDW00F3H;8255控制口偏移(CS1:

0F0H--0FFH)

LED_Data1DB01111111B

DB10111111B

DB11011111B

DB11101111B

DB11110111B

DB11111011B

DB11111101B

DB11111110B

DB11111101B

DB11111011B

DB11110111B

DB11101111B

DB11011111B

DB10111111B

DB01111111B

DB00000000B

LED_Data2DB01111111B

DB11011111B

DB11110111B

DB11111101B

DB00000000B

LED_Data3DB11111110B

DB11110111B

DB10111111B

DB00000000B

DB01111111B

DB11101111B

DB11111101B

DB00000000B

LED_Data4DB01111110B

DB10111101B

DB11011011B

DB11100111B

DB00000000B

.CODE

START:

MOVAX,@DATA

MOVDS,AX

NOP

CALLInitPCI

CALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址

CALLINIT_8255

MOVDX,PA_ADD;灯全熄灭

MOVAL,0ffH

OUTDX,AL

NEXT:

MOVDX,PC_ADD

INAL,DX

CMPAL,0

JZMODEM_1

CMPAL,1

JZMODEM_2

CMPAL,2

JZMODEM_3

CMPAL,3

JZMODEM_4

MODEM_1:

CALLMODE1

JMPNEXT

MODEM_2:

CALLMODE2

JMPNEXT

MODEM_3:

CALLMODE3

JMPNEXT

MODEM_4:

CALLMODE4

JMPNEXT

;-------------------------------------

INIT_8255PROCNEAR

MOVDX,COM_ADD

MOVAL,89h;A口方式0,输出,C口输入

OUTDX,AL

RET

INIT_8255ENDP

DLTIMEPROCNEAR

PUSHAX

PUSHDX

MOVDX,1;延时1s

MOVAH,0FFH;星研公司提供的软中断

INT21H

POPDX

POPAX

RET

DLTIMEENDP

MODE1PROCNEAR

MOVDX,PA_ADD

MOVBX,offsetLED_Data1

movah,0

callsub_mode

movah,2

callsub_mode

CALLDLS

movah,4

callsub_mode

CALLDLS

movah,6

callsub_mode

movah,8

callsub_mode

movah,10

callsub_mode

movah,12

callsub_mode

movah,14

callsub_mode

RET

MODE1ENDP

MODE2PROCNEAR

MOVDX,PA_ADD

MOVBX,offsetLED_Data2

movah,0

callsub_mode

movah,2

callsub_mode

CALLDLS

MOVAL,4

XLAT

OUTDX,AL;0

CALLDLS

RET

MODE2ENDP

MODE3PROCNEAR

MOVDX,PA_ADD

MOVBX,offsetLED_Data3

movah,0

callsub_mode

movah,2

callsub_mode

CALLDLS

movah,4

callsub_mode

CALLDLS

movah,6

callsub_mode

RET

MODE3ENDP

MODE4PROCNEAR

MOVDX,PA_ADD

MOVBX,offsetLED_Data4

MOVAL,0

XLAT

OUTDX,AL;0

CALLDLS

MOVAL,1

XLAT

OUTDX,AL;0

CALLDLS

MOVAL,2

XLAT

OUTDX,AL;0

CALLDLS

MOVAL,3

XLAT

OUTDX,AL;0

CALLDLS

RET

MODE4ENDP

sub_modeprocnear;入口参数为ah

MOVAL,ah

XLAT

OUTDX,AL

CALLDLS

incah

MOVAL,ah

XLAT

OUTDX,AL

CALLDLS

ret

endp

DL500msPROCNEAR

PUSHAX

PUSHDX

MOVDX,500;延时500ms

MOVAH,0FFH;星研公司提供的软中断

INT21H

POPDX

POPAX

RET

DL500msENDP

DLSPROCNEAR

PUSHCX

MOVCX,2

DLS1:

CALLDL500ms

LOOPDLS1

POPCX

RET

ENDP

InitPCIPROCNEAR

MOVAH,00H

MOVAL,03H

INT10H;清屏

MOVAH,0B1H

MOVAL,01H

INT1AH

CMPAH,0

JZInitPCI2

LEADX,msg0

InitPCI1:

MOVAH,09H

INT21H

JMPExit

InitPCI2:

MOVAH,0B1H

MOVAL,02H

MOVCX,Device_ID

MOVDX,Vendor_ID

MOVSI,0

INT1AH

JNCInitPCI3;是否存在StarPCI9052板卡

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2