RS485控制交通灯1
- 格式:doc
- 大小:343.50 KB
- 文档页数:20
SOPC实验指导书电信学院实验中心目录第一章EL-SOPC4000实验系统的资源介绍 (1)一、系统功能概述 (1)二、系统硬件资源 (2)三、特别说明 (11)第二章数字可编程设计实验 (12)实验一组合逻辑3-8译码器的设计 (12)第三章基于NIOS的软核设计实验 (23)实验一 Nios软核的设计 (23)实验二外设模块的设计 (27)实验三 SOPC应用系统的生成 (40)实验四 Nios II软核验证以及Nios II IDE软件的介绍 (46)实验五 SOPC系统的PIO验证 (52)实验六基于NIOS的交通灯实验 (55)实验七 7段数码管显示实验 (59)实验八按键及拨码开关实验 (61)实验九 16×16 LED点阵实验 (62)实验十 UART与PC机通信实验 (64)第一章EL-SOPC4000实验系统的资源介绍一、系统功能概述EL-SOPC4000实验箱是集EDA 和SOPC 开发为一体的综合性实验箱,它不仅可以独立完成各种EDA 设计,也可以完成多种SOPC开发。
主CPU适配器E-PLAY-SOPC配合EL-SOPC4000底板,可完成各种基本的EDA实验。
在实验板上有丰富的外围扩展资源,有常用的按键,拨码开关,LED灯,蜂鸣器,交通灯,16x16点阵,数码管,4x4矩阵键盘,AD/DA,CAN功能单元,RS232,RS485,可调时钟输出。
实验板上还集成了一个8寸的VGA接口的液晶屏,可完成视频图像的显示。
由于CPU 适配器E-PLAY-SOPC本身具有E_PLAY接口,只需提供电源即可独立完成功能测试,也可控制用户开发的E_PLAY接口模块。
由于EL-SOPC4000底板加入了两路E_LAB外扩接口,可以配合公司现有的多种E_LAB模块,来完成大学生毕业设计、电子设计竞赛、及创新设计,同时该系统也是从事教学及科研的广大教师和工程师们的理想开发工具,具有极高的灵活性,开放性和可开发性。
- - -.. XX师X学院学士学位论文〔设计〕开题报告
- - 总结资料
. . -.
总结局部
信号灯控制虽然是一种简单控制,但应用到繁忙街道的十字路口之后却会产生不可以低估的作用。
科学的信号灯控制可以提高道路的使用效率,提高城市的通行速度。
交通信号自动控制是交通控制的重要组成局部,是交通科学管理的一种有效手段。
采用PLC技术和现
代阿络通汛技术,使午辆行驶和道路导航实现智能化,不仅可缓解道路交通拥堵,减少交通事故,而且改善道路交通环境.节约交通能源,减轻驾驶疲劳等功能,最终实现平安、舒适、快速、经济的交通环境。
- . word资料.
. . -.
- . word资料.
. . -.
- . word资料.。
通道闸机使用说明书CPW-321HSV3.0北京西莫罗智能科技有限公司目录1. 简介 (1)2. 安全保护措施 (2)2.1常见安全注意事项 (2)2.2安全注意事项 (2)3.产品描述 (2)3.1技术细节 (2)3.2主要技术参数 (3)4.设备定义 (3)4.1产品分类 (3)4.2通行模式术语定义 (4)4.3设备外形尺寸 (4)5.产品结构和工作原理 (5)5.1产品结构 (5)5.2系统工作原理 (6)5.3闸机系统构成 (6)6.产品的安装和调试 (6)6.1闸机的安装 (6)6.2闸机的状态检查 (7)6.3产品功能调试 (8)7.常见故障与排除 (11)8.闸机维护 (12)1. 简介通道闸机结构稳定可靠,外型美观。
他的弧线外壳无缝机械设计,降低了维护。
设备配备标准的电气接口,很容易与读写系统设备集成如磁卡、条码卡、ID卡和IC卡。
这个产品有一个系列,有很多的型号和规格可供您选择。
广泛适用于人行通道智能管理如酒店,学校,工厂,矿场,地铁和宾馆等场所。
您购买的通道闸机是根据CE质量认证管理系统研发和生产,产品已经经过了严格和认真的检测产品采用高端的技术,为了确保安全和可靠的运作,以及保证安全的操作,使用说明书提供了系统使用的注意事项。
建议用户在使用设备前仔细阅读使用说明书,以免由于您的不当操作,使您的权利受到损害。
这份使用说明书对通道闸机的操作和组件进行了详细说明。
需要了解更多产品,请您登陆到北京西莫罗官网查看。
2. 安全保护措施2.1 常见安全注意事项通道闸机是根据最新的技术进行设计生产和检测的,虽然产品离开工厂时是完全可运行和安全的状态,但这些都要在正确的安装来实现,因此操作说明书必须仔细阅读,安全注意事项必须遵守。
在不正确的操作和故意的破坏的情况下,制造商可以拒绝承担任何责任和担保。
设备使用的电源已经高到可以危害到生命的安全,因此在实施保养或者维修前,您必须保证设备断开电源,并检测证实完全断开。
线圈检测器使用手册V1.1杭州海康威视数字技术股份有限公司技术热线:400-700-59982013-03非常感谢您购买我公司的产品,如果您有什么疑问或需要请随时联系我们。
本手册适用于LD-220X系列线圈检测器。
本手册可能包含技术上不准确的地方、或与产品功能及操作不相符的地方、或印刷错误。
我公司将根据产品功能的增强而更新本手册的内容,并将定期改进或更新本手册中描述的产品或程序。
更新的内容将会在本手册的新版本中加入,恕不另行通知。
安全使用注意事项此内容的目的是确保用户正确使用本产品,以避免危险或财产损失。
在使用此产品之前,请认真阅读此说明手册并妥善保存以备日后参考。
如下所示,预防措施分为“警告”和“注意”两部分:警告:无视警告事项,可能会导致死亡或严重伤害。
注意:无视注意事项,可能会导致伤害或财产损失。
警告:⏹在本产品安装使用中,必须严格遵守国家和使用地区的各项电气安全规程。
⏹请使用正规厂家提供的电源适配器,供电电源要求为DC12V/1A。
⏹在接线、拆装等操作时请一定要将电源断开,切勿带电操作。
⏹如果设备工作不正常,请联系购买设备的商店或最近的服务中心,不要以任何方式拆卸或修改设备。
(对未经认可的修改或维修所导致的问题,本公司不承担责任)。
注意:⏹请不要使物体摔落到设备上或大力震动设备,并使设备远离存在磁场干扰的地点。
避免将设备安装到表面震动或容易受到冲击的地方。
(忽视此项可能会损坏设备)⏹请不要在高温(超过80℃)或低温(低于-30℃)或高湿度地点安装设备。
⏹提供良好的通风环境。
⏹请勿在潮湿环境下操作。
⏹请勿在易爆环境中操作。
⏹保持产品表面清洁和干燥。
⏹避免接触裸露电路。
产品加电时,请勿接触裸露的接点和部件。
目录目录 (3)1 产品介绍 (4)1.1 产品说明 (4)1.2 功能特性 (4)1.3 技术参数 (4)2 应用指导 (6)2.1 接口描述 (6)2.1.1 前面板接口 (6)2.1.2 后面板接口 (7)2.1.3 盖板丝印介绍 (8)2.2 应用拓扑图 (8)2.2.1 单设备典型应用 (8)2.2.2 主从设备级联典型应用 (9)3 设备配置 (11)3.1 设备配置端口 (11)3.2 配置软件描述 (13)附录1:常见问题解答 (17)1产品介绍1.1产品说明LD-220X系列线圈检测器是一种独立式的车辆检测设备,采用高性能的微处理器,高稳定性的振荡电路和多通道轮询扫描技术,能够快速、有效、准确地检测车辆经过。
《接口技术》大型综合(课程设计)作业【目的】(1)掌握8086cpu微机接口电路的I/O系统的设计(2)掌握8086cpu微机接口电路的初始化汇编编程和具体项目功能的软件汇编语言代码编写(3)要求学生根据接口电路的硬件要求进行计算机的汇编语言程序设计,使学生的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。
【要求】(1)每三个同学组成一个小组,选一位组长,负责与教师联系(2007年10月8日前选定题目及确定小组成员以电子版形式发至oucljp@);每一组选择一个题目,完成系统的软硬件部分设计。
(2)自学、查找所选择I/O接口芯片和内存芯片的相关的资料。
使用接口技术知识实现能完成相应功能的硬件系统。
(3)要求写出系统(包括各个子系统)的设计方案及论证,画出系统原理图(硬件连线图)以及系统工作流程。
(4)画出程序流程、编写系统初始化程序和功能程序清单。
【设计报告书内容要求】1.每一小组要上交一份完整的设计方案(放假前以电子版形式发至邮箱oucljp@),内容包括:(1)报告封面(设计题目、小组成员)(2)设计题目(3)小组成员分工及成果(4)设计方案以及论证(5)硬件原理图(包括芯片的选型介绍)(6)程序流程图(包括各个子系统和子过程的程序流程)(7)程序清单,要有适当的注释(8)程序运行结果分析与预测(9)系统改进(升级)建议或者方案等。
2.每一个同学需要上交一份设计报告,简单介绍在课程设计过程中所做的工作,碰到的问题以及解决方法,阐述综合作业的收获等等。
【设计成绩评定】本次设计的成绩占《接口技术》课程期末总评成绩的15%,具体评定方法如下:(1)报告内容的完整性占20%的比例。
(2)硬件原理图占20%的比例。
(3)程序流程图占20%的比例。
(4)程序清单占10%的比例。
(5)程序运行结果分析与预测占20%的比例。
(6)系统改进(升级)建议或者方案占10%的比例。
【系统要求】1.交通灯控制(1)要求:十字路口1) 正常情况下,两路口轮流放行,且以一位8段数码管显示剩余时间;2) 夜间,两路口均为黄灯闪烁,均可放行。
单片机交通灯控制系统摘要:基于89C51单片机作为控制中心的交通灯控制系统,该系统有红、黄、绿三种信号灯显示功能,还有交通方向指示信号和倒计时功能。
关键词:单片机;控制系统;交通灯汽车工业的发展,带动着生产经济的发展,随之而来的是人们的购车热潮,越来越多的汽车增加了城市交通的负担,如何能够更有效的疏导交通已成为当今社会的一大难题,那么就需要有一套性能可靠,功能齐全,安全有效的交通灯控制系统,来合理指挥交通。
本文介绍的是一种基于89C51单片机作为控制中心的交通灯控制系统。
1系统控制的基本要求十字路口交通灯控制系统:东西方向、南北方向各有一组红、黄、绿三色信号灯,一组直行,左转,右转方向信号灯,有左转待停信号灯和一个时钟系统,时钟系统由两个LED组成,用于显示时间的变化。
具体要求为:1)要能够满足初始时东西向和南北向的红绿灯都亮红灯;2)在东西向路口亮绿灯40 s之后,转黄灯亮5 s,然后再转红灯亮40 s;3)南北向的红绿灯要能够与东西向相配合,再东西向绿灯亮的时候亮红灯,反之则亮绿灯;4)紧急事件发生之时,按下单脉冲按钮,则东西南北向都亮10 s红灯;5)东西向以及南北向的红绿灯时间要能够在LED显示器上显示;6)所有的上述时间设置,要能够满足根据车流量进行实时调节的需求。
2硬件电路的设计本次系统的硬件电路设计如图1所示。
如图1所示,本次构建的硬件系统包括了89C51单片机,接口芯片、交通灯以及时间显示几个重要的构成部分。
其中,89C51单片机是一个标注你的40引脚双列直插式的集成电路芯片,具有功能较强,功耗相对较低,而且能够适应恶劣环境下工作的特点,芯片内置了256KB数据存储以及4KB程序存储,非常适合本次构建的交通灯控制系统的实际需求。
接口芯片采用的是英特尔公司设计生产的8255A芯片,该芯片的满足I/O接口的实际需求,具有使用相对方便,通用性较强的特点,能够满足本系统设计的需求。
交通灯采用的是双色LED装置,包括了红色LED管芯以及绿色LED管芯,通过电平的加高或者调低,从而实现红灯、绿灯、黄灯的亮、灭。
维修电工高级测试题含参考答案一、单选题(共80题,每题1分,共80分)1、PLC控制系统设计的步骤是( )。
① 正确选择PLC来保证控制系统的技术和经济性能指标② 深入了解控制对象及控制要求③系统交付前,要根据调试的最终结果整理出完整的技术文件④ PLC进行模拟调试和现场调试A、②→①→④→③B、①→②→④→③C、④→②→①→③D、①→③→②→④正确答案:A2、常用的绝缘材料包括:( )、液体绝缘材料和固体绝缘材料。
A、胶木B、木头C、玻璃D、气体绝缘材料正确答案:D3、测绘X62W铣床电气线路控制电路图时要画出控制变压器TC、( )、行程开关SQ1~SQ7、速度继电器KS、转换开关SA1~SA3、热继电器FR1~FR3等。
A、电动机M1~M3B、按钮SB1~SB6C、熔断器FU1D、电源开关QS正确答案:B4、( )的方向规定由高电位点指向低电位点。
A、电流B、电能C、能量D、电压正确答案:D5、以下FX2N可编程序控制器控制车床运行时,程序中使用了顺控指令( )。
A、STLB、ZRSTC、RETD、END正确答案:A6、PLC输入模块本身的故障描述不正确的是( )。
A、没有输入信号,输入模块指示灯不亮是输入模块的常见故障B、PLC输入模块本身的故障可能性极小,故障主要来自外围的元部件C、输入模块电源接反会烧毁输入端口的元器件D、PLC输入使用内部电源,给信号时,指示灯不亮,可能是内部电源烧坏正确答案:C7、异步测速发电机的误差主要有:线性误差、剩余电压、相位误差。
为减小线性误差,交流异步测速发电机都采用( ),从而可忽略转子漏抗。
A、电阻率小的铁磁性空心杯转子B、电阻率小的非磁性空心杯转子C、电阻率大的铁磁性空心杯转子D、电阻率大的非磁性空心杯转子正确答案:D8、三相半控桥式整流电路由( )晶闸管和三只功率二极管组成。
A、三只B、二只C、一只D、四只正确答案:A9、PLC通过( )寄存器保持数据。
一、题义分析及解决方案1.题义要求分析本题要求利用两台PC机和两套STAR ES98PCI实验仪。
主机通过RS485发出控制命令给从机,从机收到控制命令,检验命令的正确性(从机将接收来的两次命令进行比较,看是否一致,检验正误),执行命令——控制交通灯,交通灯有单行线无左转和双行线带有左转和右转两种模式,通过RS485通信,实现这两种模式的交通灯控制。
对于题意分析,首先,主机是如何将命令通过什么来发送给从机的,主从机之间是怎么样建立起连接的,它们之间需不需要通信协议,需要的话应怎样设置;交通灯两种模式的切换,主机是以什么方式让从机接收到命令后切换。
再者,从机接收到命令后如何来处理,具体怎么样实现交通灯的控制。
其次,怎样用八个交通灯模拟实现双行线交通灯的转换。
最后,在模式切换这个问题中是否可以实现即时切换。
总结如下:(1)怎么利用RS485总线技术。
(2)需不需要设置RS485通信协议,怎样设置。
(3)主从机通信,串行与并行的转换如何实现。
(4)从机如何将接收到的命令进行比较与执行。
(5)从机控制交通灯如何实现。
(6)交通灯运行状态怎么实现,交通灯状态的切换问题怎么解决。
2.解决问题方法和及思路1)硬件部分主从机是通过RS485来建立通信的,RS485支持远距离传输,因此可直接将该芯片的A、B端相连。
RS485内部含有一个驱动器和接收器。
RO和DI端分别为接收器的输出和驱动器的输入端,与8250连接时分别与8250的SOUT和SIN相连即可。
主机通过8255连接的按键来发送不同的数值达到交通灯模式的控制与切换。
从机接到控制命令,通过比较后来执行单行线或双行线。
从机的8255主要负责八个交通灯不够实现双行线的使用,把东西或南北方向的黄灯当作是否左转的标志性灯,若黄灯代表可以左转,若黄灯灭代表不可以左转,以此实现了交通灯的模式实现。
由于并行输出输入与串行通信之间需要沟通的桥梁,主从机中的8250起到了串并转换的作用。
2)软件部分根据硬件需要采用MAX485PAC芯片,为实现对通信的控制,采用汇编语言,控制MAX485PAC的工作方式,实现主机对从机的控制。
通讯为RS485接口。
在主机上使用8255A芯片,为实现对通信的控制,8255连接小键盘,根据对键盘接受的数值不用发出不同的命令。
从机上采用8255A芯片是来控制交通灯,通过汇编语言编程,分别编程控制8255的工作方式,在编程时应考虑到状态的转换采用查询方式控制,根据需求分析可采用8255的方式0下工作具体如下设置:8255A芯片的PA、PB、PC三口的工作方式为方式0,将8255的PA口接发光二极管,PB口作为段选码,PC口作位选码。
二、硬件设计1.选择芯片RS4851)芯片RS485在本设计中的作用该芯片实现主机对从机的控制,其控制信号为串行通讯。
在从机接受命令经过检验后执行命令实现对交通灯的控制。
2)芯片RS485功能分析MAX485接口芯片是Maxim公司的一种RS-485芯片。
图1 RS485芯片引脚定义RO——接收数据的 TTL电平输出;RE——低电平有效的接收允许;DE——高电平有效的发送允许;DI——发送数据的TTL电平输入;A——485差分信号的正向端;B——485差分信号的反向端。
MAX485是芯片接口的一种类型DIP封装(Dual In-line Package),也叫双列直插式封装技术,是一种最简单的封装方式。
指采用双列直插形式封装的集成电路芯片,绝大多数中小规模集成电路均采用这种封装形式,其引脚数一般不超过100。
DIP封装的CPU芯片有两排引脚,需要插入到具有DIP结构的芯片插座上。
当然,也可以直接插在有相同焊孔数和几何排列的电路板上进行焊接。
DIP封装的芯片在从芯片插座上插拔时应特别小心,以免损坏管脚。
DIP封装结构形式有:多层陶瓷双列直插式DIP,单层陶瓷双列直插式DIP,引线框架式DIP(含玻璃陶瓷封接式,塑料包封结构式,陶瓷低熔玻璃封装式)等。
采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式。
它完成将TTL电平转换为RS-485电平的功能。
MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。
RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。
在与单片机连接时接线非常简单。
只需要一个信号控制MAX485的接收和发送即可。
同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。
可以串行口取电,可以驱动RS232与MAX485实现通信。
没加负载时电压有5。
16V,加负载后降制3V左右。
MAX485接TTL端可以直接接单片机的Txd与Rxd,另一端是Rs232电平的,与PC机连接。
只是电平转换,不用软件驱动。
2.选择芯片8255A1)芯片8255A在本设计中的作用通过8255A的三个I/O端口A口、B口、C口与发光二极管以及LED显示器连接起来控制交通灯的规律性变化以及倒计时显示。
2)芯片8255A功能设计PA、PB、PC三口均工作在方式0状态。
:PB0~PB3接黄灯,PB4~PB7接红灯;PA0~PA3接绿灯,PA4~PA7作为段选码;PC0~PC7作为位选码。
在用8255A前首先要对它进行初始化,设置它的方式选择控制字。
方式0的工作特点:这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。
其功能为:两个8位通道:通道A、B。
两个四位通道:通道C高4位和低四位;任何一个通道可以作输入/输出;输出是锁存的;输入是不锁存的;在方式0时各个通道的输入/输出可有16种不同的组合。
方式0的使用场合:同步传送是在外设控制过程的各种动作时间为固定,且已知的条件下使用的。
因此,传送中不要应答信号。
输入时,执行程序只要给出IN指令;而输出时,也只给出OUT指令,就能实现数据的输入或输出。
优点是程序简单,接口的硬件开销小。
查询式传输时,要先查询一个外设的状态,当该状态表示外设已准备好时,方能开始查询传输,否则CPU将继续查询。
但在方式0,没有规定固定的应答信号,所以,这时将通道A、B作为数据通道,把通道C的4个位(高4位或低4位)规定为输出口,用来输出一些控制信号,而把通道C的另外4个位规定为输入口,用来输入外设的状态。
这样,利用通道C来配合通道A和B的输入/输出操作。
8255A方式选择控制字说明:控制字格式如下:图2 8255A控制字格式D 7=1工作方式控制标志。
D 5D 6组合设定A 口工作方式:00~方式0、01~方式1、10/11~方式2。
D 4设定A 口的输入/输出,D4=1输入D 4=0输出。
D 3C 口高位输入/输出选择,D 3=1输入D 3=0输出。
D 2B 口工作方式选择,D 2=1方式1;D 2=0方式0。
D 1B 口输入/输出选择D 1=1输入D 1=0输出。
D 0设定C 口低位输入/输出D 0=1输入D 0=0输出。
3)芯片8255A 技术参数表1 8255A 技术参数表 (DAR )工作电流最大为4MA 。
8255的输出电压不高,连接到LED 时,最好加入一个驱动器起到电流放大的作用。
3.选择芯片82501)芯片8250在本设计中的作用通过8250的SOUT 与SIN 与完成串行信号与并行信号的转换。
2)芯片8250功能设计8250通过波特率发生控制电路设置双方的波特率,发送器将待发送的内容自动转存到发送移位寄存器,在发送器时钟的控制下,由SOUT 引脚发送出去。
接收器在接收时钟控制下,由SIN 引脚输入的串行数据逐位存入移位寄存器,转换后的并行数据存入接收缓冲寄存器,等待CPU 读取。
通信线控制寄存器保8255A 技术参数 测试条件 规范值单位 大 小输入低电平电压V IL 0。
8 -0。
5 V输入高电平电压V IH V CC 2。
0 V输出低电平电压V OL IOL =2。
5MA 0。
45 V输出低电平电压V OL IOL =1。
7MA 0。
45 V输出高电平电压V OH IOR =-400MA 2。
4 V输出高电平电压V OH IOH =-200MA 2。
4 V达林顿驱动电流IOAR -4。
0 -1。
0 mA电源电流 ICC 120 mA输入负载电流 IIL IIN =0~ V CC I/O mA输出浮动电流 IOF VOR =0。
45~ V CC I/O mA存CPU写入的通讯数据格式,状态寄存器提供串行数据发送和接收时的状态16550的控制字格式如下:图3 8250控制字格式3)芯片8250技术参数表2 8250内部寄存器及其复位状态波特率的设置参数:在除数寄存器的高8位和低8位分别写入00H,0F0H 实现波特率为4800的设置。
4.硬件总逻辑图及其说明图4 硬件原理图本设计以STAR ES598PCI试验仪及8250,8255,及MAX485之间的连接,8086CPU的数据总线和8250,8255A的数据总线相连,8086的读写控制分别和8250,8255A的读写控制相连。
8250地址锁存的地址线A0、A1、A2分别与8255A 的地址线A0、A1、A2相连。
8255A地址锁存的地址线A1、A2分别与8255A 的地址线A0、A1相连。
译码器分别与和8250及8255A的片选CS相连。
8255A 的三个端口的功能为:PA口接发光二极管,PB口作为段选码,PC口作位选码。
三、控制程序设计1.控制程序设计思路说明实验由两台PC机两套STAR ES598PCI实验仪完成。
主机通过RS485发出控制命令给从机,从机收到控制命令,通过对两次命令的比较检验命令的正确性,然后执行命令,用8255A芯片控制发光二极管来实现交通灯的闪烁。
交通灯有单行线和双行线两种模式需要切换,切换命令也是由主机通过RS485对从机的通讯实现的。
其中单行线和双行线的实现方式不同。
2.程序流程图图5 MAX485接收发送程序流程图图6 程序主流程图N YNY NY图7 倒计时显示子流程图图8 500ms延时程3.控制程序主机程序:..MODEL TINYPCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址, 也为DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_ID EQU 10EBH ;厂商ID 号Device_ID EQU 8376 ;设备ID号进入显示个位延时显示十位延时个位减一十位减一个位赋9返回CX=0 个位等于表外第一个地址十位等于表外第一个地址.STACK 100 .DATA IO_Bit8_BaseAddress DW ? msg0 DB 'BIOS 不支持访问PCI $' msg1 DB '找不到Star PCI9052板卡 $' msg2 DB '读8位I/O 空间基地址时出错$' COM1_ADD DW 00FBH ;8250控制寄存器地址 COM2_ADD DW 00F8H ;8250除数寄存器地址 COM3_ADD DW 0FCH ;MODEM 控制寄存器地址 COM4_ADD DW 0FDH ;8250通信状态寄存器地址 ADR DW 00E0H ;用于清除PCI9052上一次写操作产生的地址 BUF DB 100 DUP (?) ;存储按键的键号 COM_ADD DW 00D3H ;8255A 控制口偏移量 PA_ADD DW 00D0H ;PA 口偏移量 PC_ADD DW 00D2H ;PC 口偏移量 .CODE START: MOV AX,@DATA MOV DS,AX NOP CALL InitPCI CALL ModifyAddress ;根据PCI 提供的基地址,将偏移地址转化为实地址址 ;程序开始 BEGIN1: ;初始化8250 MOV DX,COM1_ADD ;8250控制寄存器地址送DX MOV AL,80H ;置DLAB=1,设置除数寄存器 OUT DX,AL MOV DX,COM2_ADD ;除数寄存器地址送DX MOV AX,18H ;波特率为4800bit/s OUT DX,AL MOV AL,00H INC DX OUT DX,AL MOV DX,COM1_ADD ;8250控制寄存器地址送DX MOV AL,1BH ;8位数据位,偶校验,1位停止位 OUT DX,AL MOV DX,COM3_ADD MOV AL,03H OUT DX,AL MOV DX,COM2_ADD MOV AL,0 ;禁止所有中断INC DX OUT DX,AL ;8255A 初始化 MOV DX,COM_ADD ; 置8255A 控制口地址 MOV AL,90H ;8255A 的初始化 OUT DX,AL MOV DX,COM_ADD ;对pc0设置1,使其对MAX485RE/DE 端,使其处于发送 MOV AL, 01H OUT DX,AL;检测是否有键按下 WAIT1: AND AL,00H MOV DX,PA_ADD IN AL,DX ;读键盘值 CMP AL,0FFH JZ WAIT1 ;所有列线为高,无键按下 ;有键按下,延时去抖动 CALL DL500ms CALL DL500ms ;按键识别 PUSH CX MOV CX,2 MOV SI,0 LOOP1: MOV BUF[SI],AL CALL TRANS INC SI LOOP LOOP1 POP CX JMP WAIT1 ;查询方式发送子程序 TRANS PROC NEAR AGAIN: MOV DX,COM4_ADD ;通信状态寄存器地址送DX IN AL,DX TEST AL,20H ;检测发送器是否准备就绪 JZ AGAIN MOV DX,COM2_ADD MOV AL,BUF[SI] ;取出发送区域的待发送数据 OUT DX,AL ;指向下一个待发送数据 ;MOV DX,COM4_ADD ;IN AL,DX MOV DX,ADR OUT DX,AL ;用于清除PCI9052上一次写操作产生的地址 RET TRANS ENDP DL500ms PROC NEAR PUSH AX PUSH DX MOV DX,500 ;延时500ms MOV AH,0FFH ;星研公司提供的软中断 INT 21HPOP DX POP AX RET DL500ms ENDP InitPCI PROC NEAR MOV AH,00H MOV AL,03H INT 10H ;清屏 MOV AH,0B1H MOV AL,01H INT 1AH CMP AH,0 JZ InitPCI2 LEA DX,msg0 InitPCI1: MOV AH,09H INT 21H JMP Exit InitPCI2: MOV AH,0B1H MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在Star PCI9052板卡LEA DX,msg1JMP InitPCI1InitPCI3: MOV DI,PCIBAR3MOV AH,0B1HMOV AL,09HINT 1AH ;读取该卡PCI9052基地址JNC InitPCI4LEA DX,msg2JMP InitPCI1InitPCI4: AND CX,0FFFCHMOV IO_Bit8_BaseAddress,CXRETInitPCI ENDP ModifyAddress PROC NEARADD COM_ADD,CXADD PA_ADD,CXADD PC_ADD,CXADD COM1_ADD,CXADD COM2_ADD,CXADD COM3_ADD,CXADD ADR,CXADD COM4_ADD,CXRETModifyAddress ENDPExit: MOV AH,4CHINT 21HEND START从机程序:.MODEL TINY PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址, 也为DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_ID EQU 10EBH ;厂商ID 号Device_ID EQU 8376 ;设备ID号.STACK 100.DATAIO_Bit8_BaseAddress DW ?msg0 DB 'BIOS不支持访问PCI $'msg1 DB '找不到Star PCI9052板卡 $'msg2 DB '读8位I/O空间基地址时出错$'errormsg DB '数据接收错误!重新发送数据$'COM_ADD DW 00D3H;8255A控制口偏移量PA_ADD DW 00D0H ;PA口偏移量PB_ADD DW 00D1H ;PB口偏移量PC_ADD DW 00D2H ;PC口偏移量COM1_ADD DW 00FBH ;8250控制寄存器地址COM2_ADD DW 00F8H ;8250除数寄存器地址COM3_ADD DW 00FCH ;MODEM控制寄存器地址COM4_ADD DW 00FDH ;8250通信状态寄存器地址ADR DW 00E0H ;用于清除PCI9052上一次写操作产生的地址LED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯DB 11010111B ;东西红灯,南北绿灯DB 11011111B ;东西红灯,南北绿灯闪烁DB 00111001B ;东西绿灯,南北红灯DB 10111001B ;东西绿灯闪烁,南北红灯DB 10010011B ;东西红灯,南北绿灯DB 10011011B ;东西红灯,南北绿灯闪烁REC_DATA DB 100 DUP ( ? ) ;存放接收的数据TIMES DW ? ;要接收的数据个数.CODESTART: MOV AX,@DATAMOV DS,AXNOPCALL InitPCICALL MoDIfyAddress ;根据PCI 提供的基地址,将偏移地址转化为实地址;程序开始;初始化8250MOV DX,COM1_ADD ;8250控制寄存器地址送DXMOV AL,80H ;置DLAB=1,设置除数寄存器OUT DX,ALMOV DX,COM2_ADD ;除数寄存器地址送DXMOV AL,18H ;波特率为4800bit/sOUT DX,ALINC DXMOV AL,00HOUT DX,ALMOV DX,COM1_ADD ;8250控制寄存器地址送DXMOV AL,1BH ;8位数据位,偶校验,1位停止位OUT DX,ALMOV DX,COM3_ADDMOV AL,03HOUT DX,AL MOVDX,COM2_ADD ;禁止所有中断 MOV AL,0 INC DXOUT DX,AL;初始化8255AMOV DX,COM_ADD ;初始化8255控制口,将地址设置成COM_ADDMOV Al,80H ;方式0下,PA,PB,PC口全为输出口 OUT DX,Al ;二极管全亮MOV DX,PA_ADDMOV AL, 00H ;对pc0设置0,使其对MAX485RE/DE端,使其处于接收态OUT DX,ALLOOP1:CALL RECEIVETESTAL,REC_DATA ;比较两次接收到的命令是否一致JZ LOOP1CMP AL,7FHJZ START1CMP AL,0DFHJZ START4JMP LOOP1;单行线程序START1:ADD DL,0FFH MOVREC_DATA[SI],DLMOVREC_DATA[SI+1],DLLEABX,LED_DataCALL DL500ms ;将控制信息表的首地址给BXMOV DX,PA_ADD MOV Al,0 ;Al 为0表示查表中第一个字节的内容 XLAT ;查表,将表中第一个字节的内容放入Al 中 OUT DX,Al ;东西绿灯,南北红灯 MOV CX,6 CALL DL500ms START2: MOV Al,1 XLAT OUT DX,Al ;东西绿灯闪烁,南北红灯 MOV Al,0 XLAT OUT DX,Al ;东西绿灯亮,南北红灯 CALL DL500ms LOOP START2 CALL DL2S MOV Al,2 ;东西红灯,南北绿灯 XLAT OUT DX,Al CALL DL2S MOV CX,6 START3: MOV Al,3 ;东西红灯,南北绿灯闪烁 XLAT OUT DX,Al CALL DL500ms MOV Al,2 ;东西红灯,南北绿灯亮 XLAT OUT DX,Al CALL DL500ms LOOP START3 CALL RECEIVE CMP AL,7FH JZ START1 CMP AL,0DFH JZ START4 JMP LOOP1 JMP START1 START0 : JMP START1 ;双行线程序 START4 : ADD DL,0FFH MOV REC_DATA[SI],DL MOV REC_DATA[SI+1],DL LEA BX,LED_Data ;将控制信息表的首地址给BX CALL DL500ms MOV DX,PA_ADD MOV Al,4 ;Al 为0表示查表中第五个字节的内容 XLAT ;查表,将表中第五个字节的内容放入Al 中 OUT DX,Al ;东西绿灯,南北红灯,黄灯均亮 MOV CX,6 ;绿灯闪烁3次 CALL DL500ms START5: MOV Al,5 XLAT OUT DX,Al ;东西绿灯灭,南北红灯,黄灯均亮 CALL DL500ms MOV Al,4 XLAT OUT DX,Al ;东西绿灯,南北红灯,黄灯均亮 CALL DL500ms LOOP START5 CALL DL2S MOV Al,6 ;东西红灯,南北绿灯,黄灯均亮XLATOUT DX,AlCALL DL500msMOV CX,6START6:MOV Al,7 ;东西红灯,南北绿灯灭,黄灯均亮XLATOUT DX,AlCALL DL500msMOV Al,6 ;东西红灯,南北绿灯亮,黄灯均亮XLATOUT DX,AlCALL DL500msLOOP START6CALL RECEIVE CMP AL,7FHJZ START0CMP AL,0DFHJZ START4JMP LOOP1JMP START4error1:LEA DX,errorMSGMOV AH,09HINT 21HJMP LOOP1;查询方式接收子程序RECEIVE PROC NEAR;MOV SI,0;MOV CX,2REPIN:MOV DX,COM4_ADD ;通信状态寄存器地址IN AL,DXTEST AL,1EH ;检测接收的数据有无错误JNZ ERROR1TEST AL,01H ;检测接收缓冲器中是否有数据JZ REPINMOV DX,COM2_ADD ;数据接收寄存器地址送DXIN AL,DXMOV REC_DATA,ALMOV DX,ADROUT DX,ALMOVDX,COM2_ADD ;数据接收寄存器端口地址INAL,DX ;再次从数据接收寄存器中读取数据MOV DX,ADROUT DX,ALCLC ;接收成功,清CF标志位JMP DONEERROR: STC ;接收不成功,置CF标志位DONE: RETRECEIVE ENDP;延时500msDL500ms PROC NEARPUSH AXPUSH DXMOV DX,500MOV AH,0FFHINT 21HPOP DXPOP AXRETDL500ms ENDP;延时7s;DL7S PROC NEAR; PUSH CX; MOV CX,14; DL7S1: CALL DL500ms ; LOOP DL7S1; POP CX; RET;DL7S ENDP;延时2秒DL2S PROC NEARPUSH CXMOV CX,4DL2S1: CALL DL500ms LOOP DL2S1POP CXRETDL2S ENDP;程序结束InitPCI PROC NEARMOV AH,00HMOV Al,03HINT 10H ;清屏MOV AH,0B1HMOV Al,01HINT 1AHCMP AH,0JZ InitPCI2LEA DX,msg0InitPCI1: MOV AH,09HINT 21HJMP ExitInitPCI2: MOV AH,0B1HMOV Al,02HMOV CX,Device_IDMOV DX,Vendor_IDMOV SI,0INT 1AHJNC InitPCI3 ;是否存在Star PCI9052板卡LEA DX,msg1JMP InitPCI1InitPCI3: MOV DI,PCIBAR3MOV AH,0B1HMOV Al,09HINT 1AH ;读取该卡PCI9052基地址JNC InitPCI4LEA DX,msg2JMP InitPCI1InitPCI4: AND CX,0FFFCHMOV IO_Bit8_BaseAddress,CXRETInitPCI ENDPMoDIfyAddress PROC NEARADD COM_ADD,CXADD COM1_ADD,CX ADDCOM2_ADD,CXADDCOM3_ADD,CXADDCOM4_ADD,CXADD PA_ADD,CXADD ADR,CXADD PB_ADD,CXADD PC_ADD,CXRETMoDIfyAddress ENDPExit: MOV AH,4CHINT 21HEND START四、上机调试过程1.硬件调试主机:8255A的PA口接JP74的键盘,8250的SIN、SOUT端口分别与MAX485PCA 的RO、DI端口相连。