版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 摘要霓虹灯主要是通过8255A对LED亮灭状态的控制,和8254定时/计数器的定时功能实现霓虹灯闪烁控制系统,外设是红、绿、黄三种颜色的发光二极管,在程序自动控制下,按照不同规律闪烁同时由数码管显示相应的闪烁方式。关键字: 8255A 8254 LED 数码管 一、设计的任务和要求设计霓虹灯闪烁控制系统,是外设的红、绿、黄三种颜色的发光二极管,在开关的控制下或者在程序自动控制下,按照不同规律闪烁。要求发光二极管的亮、灭变化有一定的规律;发光二极管变化规律要求有多种状态。二、设计小组成员及分工本次课设由冀 任共同完成,在课设中遇到的问题四个人共同思考解决。三、总体设计1、8254用于定时:定时
2、/计数器0与定时器/计数器1共同构成100ms的定时器,确定执行相邻闪烁方式的间隔时间。28255A用于控制LED的状态和数码管显示:PA0接8254的输出,B口接数码管,显示对应的闪烁方式,C口输出控制LED的状态。3、六种闪烁方式:方式1: 从左向右依次点亮8个LED灯,数码管显示1方式2:从右向左依次点亮8个LED灯,数码管显示2方式3:从左向右依次点亮4个的红灯、2个黄灯和2个绿灯,数码管显示3方式4:从左向右两个两个的点亮8个LED灯,数码管显示4方式5:从两边向中间依次点亮8个LED灯,数码管显示5方式6:按红、绿、黄顺序点亮相同颜色的灯,数码管显示61、芯片介绍(1)芯片8255
3、A8255A是具有3个8位并行I/O口3种工作方式的可编程并行接口芯片。 8255共有40个引脚,采用双列直插式封装。D0-D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。CS:片选信号线,低电平有效,表示芯片被选中。RD:读出信号线,低电平有效,控制数据的读出。WR:写入信号线,低电平有效,控制数据的写入。Vcc:+5V电源。PA0-PA7:A口输入/输出线。PB0-PB7:B口输入/输出线。PC0-PC7:C口输入/输出线。RESET:复位信号线。A1、A0:地址线,用来选择8255内部端口。GND:地线。三种工作状态:1) 工作方式 0 :这是 8255A 中各端口的基本输
4、入 / 输出方式。它只完成简单的并行输入 / 输出操作, CPU 可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式 0 ,则可由工作方式控制字定义 16 种工作方式的组合。 2) 工作方式 1 :被称作选通输入 / 输出方式。在这种工作方式下,数据输入 / 输出操作要在选通信号控制下完成。 3) 工作方式 2 :被称作带选通的双向传送方式。 8255A 中只允许端口 A 处于工作方式 2 ,可用来在两台处理机之间实现双向并行通信。其有关的控制信号由端口 C 提供,并可向 CPU 发出中断请求信号。(2)芯片82548254 芯片是可编程定时/计数器芯片,片内有3个独立的
5、16位计数器,每个计数器可编程设定为6中不同的工作方式。 8254的引脚图和引脚说明8254芯片的工作方式: 8254芯片共有六种工作方式,分别对应与六种不同的用途。 1)方式0:计数结束产生中断。 2)方式1:可重触发单稳方式。 3)方式2:分频器。 4)方式3:方波发生器。 5)方式4:软件触发计数。 6)方式5:硬件触发计数。2、硬件连接图开始五、软件编程数码管显示1,点亮L7灯1、软件流程图CX=19(循环19次)开始点亮L0灯8254计数器1,方式0,只读写低八位。 延时8254定时器1置初值10,定时100mSAL给8255C口NNPC0=1YAL左移 循环结束?结束 (1)825
6、4定时程序结束Y (2)方式1开始8255设控制字为81H(端口C低四位为输入)读端口C数据并保存8255设控制字为90H(端口A输入,端口B和C输出)8254定时器0置初值10000,周期为?有键按下下?YN状态1(从左开始一盏盏亮到最右边循环2次)8254定时程序状态2从右开始一盏盏亮到最左边循环2次)8254定时程序状态3(红黄蓝从左到右各亮一边循环2次)8254定时程序状态4(左起两盏两盏亮循环2次)8254定时程序结束 (3)主程序数码管显示3左起第一展红灯(L0)亮延时左起第二展红灯(L1)亮延时左起第三展红灯(L4)亮延时左起第四展红灯(L7)亮延时左起第一展黄灯(L3)亮延时左
7、起第二展黄灯(L6)亮延时左起第一展绿灯(L2)亮延时左起第二展绿灯(L2)亮延时结束灯全灭开始 (5) 方式3延时CX=19(循环19次),点亮L0灯数码管显示2开始AL给8255C口AL右移一位结束灯全灭循环结束?NY (4)方式2YN (6) 方式4数码管显示4开始延时CX=9(循环9次),点亮L6,L7灯AL给8255C口AL左移两位结束灯全灭循环结束?数码管显示6 红灯(L7)亮延时 绿灯(L5)亮延时 黄灯(L3)亮延时 红灯(L1)亮延时 黄灯(L6)亮延时 红灯(L4)亮延时 绿灯(L2)亮延时 红灯(L0)亮延时结束灯全灭开始(8)方式6数码管显示5 灯L7,L0亮延时 灯L
8、6,L1亮延时 灯L5,L2亮延时开始结束灯全灭循环结束?CX=2(循环两次)NY (7) 方式52、汇编语言源程序DATA SEGMENTIOPORT EQU 0D880H-280HIO8255A EQU IOPORT+280HIO8255B EQU IOPORT+281HIO8255C EQU IOPORT+282HIO8255T EQU IOPORT+283HIO82540 EQU IOPORT+288HIO82541 EQU IOPORT+289HIO8254K EQU IOPORT+28BH ;地址PB DB ? DATA ENDSSTACK SEGMENT STACKSTA DW
9、50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK ;定义代码段START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,IO8255T ; 8255控制字为81H,端口C低四位为输入MOV AL,10000001B OUT DX,AL MOV DX,IO8255C ;读端口C数据并保存 IN AL,DX MOV PB,AL MOV DX,IO8255T ;8255设控制字为90H MOV AL,90H ; (端口A输入,端口B和C输
10、出) OUT DX,AL MOV DX,IO8254K ;定时器0,方式三,先读写低八位,再读写高八位 MOV AL,36H OUT DX,AL ;输入时钟,1MHZ MOV DX,IO82540 MOV AX, 10000 ;初值10000,输出时钟周期10MS OUT DX,AL NOP NOP MOV AL,AH OUT DX,AL MOV DX,IO8254K ;计数器1,方式0,只读写低八位 MOV AL,50H OUT DX,ALCHXU1: MOV DX,IO8255B MOV AL,06H OUT DX,AL ;数码管显示1 MOV CX,17 ;循环17次 MOV AL,00
11、000001B ;点亮L7灯A: CALL DELAY10 ;延时 MOV DX,IO8255C OUT DX,AL ROL AL,1 ;AL循环左移一位 LOOP A ;循环是否结束?没有结束,跳到A MOV AL,00H ;灯全灭 OUT DX,AL MOV AH,01H ;有无键入 INT 16H JNZ ppp CHXU2: MOV DX,IO8255B ;数码管显示2 MOV AL,5BH OUT DX,AL MOV DX,IO82541 MOV AL,10 ;初值10,检测1秒 OUT DX,ALDING2: MOV DX,IO8255A ;读入PA0值 IN AL,DX AND
12、AL,01H JZ DING2 ;8255的PA0=1停止计时 MOV CX,17 ; 循环17次 MOV AL,10000000B ;点亮L1灯B: CALL DELAY10 ;延时 MOV DX,IO8255C OUT DX,AL ROR AL,1 ;AL循环右移一位 LOOP B ;循环是否结束?没有结束,跳到B MOV AL,00H OUT DX,AL ;灯全灭 MOV AH,01H ;有无键入 INT 16H JNZ ppp CHXU3: MOV DX,IO8255B ;数码管显示3 MOV AL,4FH OUT DX,AL MOV DX,IO82541 MOV AL,10 ;初值1
13、0 OUT DX,ALDING3: MOV DX,IO8255A IN AL,DX AND AL,01H JZ DING3 ; 8255的PA0=1停止计时 MOV CX,2 ; 循环2次C0: PUSH CX MOV DX,IO8255C MOV AL,01H ;左起第一展红灯亮 OUT DX,AL CALL DELAY10 MOV AL,08H ;左起第二展红灯亮 OUT DX,AL CALL DELAY10 MOV AL,40H ;左起第三展红灯亮 OUT DX,AL CALL DELAY10 MOV AL,80H ;左起第四展红灯亮 OUT DX,AL CALL DELAY10 MOV
14、 AL,02H ;左起第一展黄灯亮 OUT DX,AL CALL DELAY10 MOV AL,10H ;左起第二展黄灯亮 OUT DX,AL CALL DELAY10 MOV AL,04H ;左起第一展绿灯亮 OUT DX,AL CALL DELAY10 MOV AL,20H ;左起第二展绿灯亮 OUT DX,AL CALL DELAY10 POP CX MOV AH,01H ;有无键入 INT 16H JNZ ppp LOOP C0 MOV AL,00H ;灯全灭 OUT DX,AL CHXU4: MOV DX,IO8255B ;数码管显示4 MOV AL,66H OUT DX,AL MO
15、V DX,IO82541 MOV AL,10 ;初值10 OUT DX,AL DING4: MOV DX,IO8255A ;读入PA0值 IN AL,DX AND AL,01H JZ DING4 ;8255的PA0=1停止计时 MOV CX,9 ; 循环9次 MOV AL,00000011B ;点亮L6,L7灯D: PUSH CX CALL DELAY10 ;延时 MOV DX,IO8255C OUT DX,AL MOV CL,2 ROL AL,CL ;AL左移两位 POP CX LOOP D ;循环若没有结束,跳到D MOV AL,00H ;灯全灭 OUT DX,AL MOV AH,01H
16、;有无键入 INT 16H JNZ ppp CHXU5: MOV DX,IO8255B ;数码管显示5 MOV AL,6DH OUT DX,AL MOV DX,IO8254K MOV AL,50H OUT DX,AL ;计数器1,方式0,只读写低8位 MOV DX,IO82541 MOV AL,10 ;初值100 OUT DX,AL DING5: MOV DX,IO8255A ;读入PA0值 IN AL,DX AND AL,01H JZ DING5 MOV CX,2E: PUSH CX MOV DX,IO8255C MOV AL,81H ;L7 ,L0亮 OUT DX,AL CALL DELA
17、Y10 MOV AL,42H ; L6,L1亮 OUT DX,AL CALL DELAY10 MOV AL,24H ;L5,L2亮 OUT DX,AL CALL DELAY10 MOV AL,18H OUT DX,AL CALL DELAY10 POP CX MOV AH,01H ;有无键入 INT 16H JNZ ppp LOOP E ;循环若没有结束,跳到E MOV AL,00H OUT DX,ALCHXU6: MOV DX,IO8255B ;数码管显示6 MOV AL,7DH OUT DX,AL MOV DX,IO8254K MOV AL,50H OUT DX,AL ;计数器1,方式0,
18、只读写低8位 MOV DX,IO82541 MOV AL,10 ;初值100 OUT DX,ALDING6: MOV DX,IO8255A ;读入PA0值 IN AL,DX AND AL,01H JZ DING6 MOV CX,2F: PUSH CX MOV DX,IO8255C MOV AL,01H ;L7亮 OUT DX,AL CALL DELAY10 MOV AL,04H ; L5亮 OUT DX,AL CALL DELAY10 MOV AL,10H ; L3亮 OUT DX,AL CALL DELAY10 MOV AL,40H ; L1亮 OUT DX,AL CALL DELAY10
19、MOV AL,02H ; L6亮 OUT DX,AL CALL DELAY10 MOV AL,08H ; L4亮 OUT DX,AL CALL DELAY10 MOV AL,20H ; L2亮 OUT DX,AL CALL DELAY10 MOV AL,80H ; L0亮 OUT DX,AL CALL DELAY10 POP CX MOV AH,01H ;有无键入 INT 16H JNZ ppp LOOP F ;循环若没有结束,跳到F MOV AL,00H ;灯全灭 OUT DX,AL CALL DELAY10 JMP CHXU1 ;循环致信程序PPP: MOV DX,IO8255B ;数码管
20、熄灭 MOV AL,00H OUT DX,AL ;退出DOS MOV AX,4C00H INT 21HDELAY1 PROC NEAR PUSH CX MOV CX,0FFFFHCCC: LOOP CCC POP CX RETDELAY1 ENDPDELAY10 PROC NEAR PUSH AX PUSH CX MOV CX,0800HUUU: CALL DELAY1 LOOP UUU POP CX POP AX RETDELAY10 ENDPCODE ENDS END START六、程序运行的结果程序按照以下四种工作方式依次执行,当有按键按下时,执行完此时正在执行的方式就停止。方式1:从左
21、向右依次点亮8个LED灯,数码管显示1方式2:从右向左依次点亮8个LED灯,数码管显示2方式3:从左向右依次点亮4个的红灯、2个黄灯和2个绿灯,数码管显示3方式4:从左向右两个两个的点亮8个LED灯,数码管显示4方式5:从两边向中间依次点亮8个LED灯,数码管显示5方式6:按红、绿、黄顺序点亮相同颜色的灯,数码管显示6七、设计过程中出现的问题及解决方法1、循环与任意键结束问题的解决。起初写好的程序实现不了按任意键结束和循环,本来是执行完闪烁方式4后判断是否有键按下,没有继续循环执行,有退出。然后在每种工作方式之后都加了判断是否有键按下的程序,就可以实现按意见结束的功能,并在无键按下时一直循环。
22、2、两个数码管同时显示,将其S0端口接地,便实现了其单独的显示。八、设计总结通过这次课程设计我们学到很多。使我们的学习能力有所提高,但是由于我们的课设还是比较简单,时间也比较紧,所以我们自己要是有机会和时间,一定要做其他一些感兴趣的东西,使自己对硬件语言编程掌握的更灵活一些。九、程序清单DATA SEGMENTIOPORT EQU 0D880H-280HIO8255A EQU IOPORT+280HIO8255B EQU IOPORT+281HIO8255C EQU IOPORT+282HIO8255T EQU IOPORT+283HIO82540 EQU IOPORT+288HIO82541
23、 EQU IOPORT+289HIO8254K EQU IOPORT+28BH ;地址PB DB ? DATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK ;定义代码段START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,IO8255T ; 8255控制字为81H,端口C低四位为输入MOV AL,10000001B OUT DX,AL MOV DX,IO8255C
24、 ;读端口C数据并保存 IN AL,DX MOV PB,AL MOV DX,IO8255T ;8255设控制字为90H MOV AL,90H ; (端口A输入,端口B和C输出) OUT DX,AL MOV DX,IO8254K ;定时器0,方式三,先读写低八位,再读写高八位 MOV AL,36H OUT DX,AL ;输入时钟,1MHZ MOV DX,IO82540 MOV AX, 10000 ;初值10000,输出时钟周期10MS OUT DX,AL NOP NOP MOV AL,AH OUT DX,AL MOV DX,IO8254K ;计数器1,方式0,只读写低八位 MOV AL,50H
25、OUT DX,ALCHXU1: MOV DX,IO8255B MOV AL,06H OUT DX,AL ;数码管显示1 MOV CX,17 ;循环17次 MOV AL,00000001B ;点亮L7灯A: CALL DELAY10 ;延时 MOV DX,IO8255C OUT DX,AL ROL AL,1 ;AL循环左移一位 LOOP A ;循环是否结束?没有结束,跳到A MOV AL,00H ;灯全灭 OUT DX,AL MOV AH,01H ;有无键入 INT 16H JNZ ppp CHXU2: MOV DX,IO8255B ;数码管显示2 MOV AL,5BH OUT DX,AL MO
26、V DX,IO82541 MOV AL,10 ;初值10,检测1秒 OUT DX,ALDING2: MOV DX,IO8255A ;读入PA0值 IN AL,DX AND AL,01H JZ DING2 ;8255的PA0=1停止计时 MOV CX,17 ; 循环17次 MOV AL,10000000B ;点亮L1灯B: CALL DELAY10 ;延时 MOV DX,IO8255C OUT DX,AL ROR AL,1 ;AL循环右移一位 LOOP B ;循环是否结束?没有结束,跳到B MOV AL,00H OUT DX,AL ;灯全灭 MOV AH,01H ;有无键入 INT 16H JN
27、Z ppp CHXU3: MOV DX,IO8255B ;数码管显示3 MOV AL,4FH OUT DX,AL MOV DX,IO82541 MOV AL,10 ;初值10 OUT DX,ALDING3: MOV DX,IO8255A IN AL,DX AND AL,01H JZ DING3 ; 8255的PA0=1停止计时 MOV CX,2 ; 循环2次C0: PUSH CX MOV DX,IO8255C MOV AL,01H ;左起第一展红灯亮 OUT DX,AL CALL DELAY10 MOV AL,08H ;左起第二展红灯亮 OUT DX,AL CALL DELAY10 MOV AL,40H ;左起第三展红灯亮 OUT DX,AL CALL DELAY10 MOV AL,80H ;左起第四展红灯亮 OUT DX,AL CALL DELAY10 MOV AL,02H ;左起第一展黄灯亮 OUT DX,AL CALL DELAY10 MOV AL,10H ;左起第二展黄灯亮 OUT DX,AL CALL DELAY10 MOV AL,04H ;左起第一展绿灯亮 OUT DX,AL CA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年大象分类说课稿
- 苏教版(2024)数学二年级上册第四单元 认识三位数(基础卷)
- 2025-2026学年国王拼音说课稿
- 2025-2026学年三只熊的早餐说课稿评价
- 2025-2026学年地理教师说课稿
- 2026下半年高中数学教资面试函数专项试卷
- 2025-2026学年公输说课稿模板人物
- 2026课件:环境污染刑事案件适用法律解释
- 《商业银行贷款》课件
- 《心脏血管检查》课件
- 2026年昆明市嵩明润泽水务运营有限公司招聘(5人)笔试备考试题及答案解析
- 2026慈溪市上林人才服务有限公司派遣至浒山街道办事处招聘编外工作人员5人考试备考题库及答案详解
- (2026版)围手术期出凝血管理麻醉专家意见
- 建筑工程疫情防控工作方案
- 实习生录用通知书标准范本
- 电力工程预结算工作流程及审计要点
- 2025年内外贸协同发展项目可行性研究报告
- 综合办公室主任岗位竞聘
- 自考03450公共部门人力资源管理模拟试题及答案
- 化工岗位安全操作规程
- 绿色食品品牌2025年建设规划与消费者偏好研究报告
评论
0/150
提交评论