资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
华 北 科 技 学 院接 口 技 术课 程 设 计 报 告班级: 姓名: 设计题目: 密码的设置和验证 设计时间: 2012-6-4 至 2012-6-15 指导教师: 评 语:_评阅成绩: 评阅教师:1一、课程设计目的1、掌握8253的基本工作原理和编程方法。2、掌握8255的基本工作原理和编程方法。3、掌握数码管显示数字的原理。4、了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法。5、了解双色点阵LED显示器的基本原理,掌握PC机控制双色点阵LED显示程序的设计方法。进行程序设计方法和芯片使用基本训练,巩固在课堂上学到的有关芯片初始化编程和使用的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉接口技术的原理及应用,达到能独立使用现有芯片编制程序并正确运行的水平。二、课程设计内容密码的设置和验证:按原理图连接好电路。将8253OUT0接8255C口PC7,将8255的A口PA0PA6分别与七段数码管的段码驱动输入端a相连,8255的C口PC5PC4与位码驱动输入端S1、S0相接,dp接地(关闭) ,8255的C口PC3PC0与逻辑电平开关K3K0相接, K3K0又与LED灯L3L0相接。编程实现如下功能:1、 在10秒钟内设定好4位密码(每位为0或1) 。七段数码管用于计时:9-0,8*8双色LED显示红色“SET” ,4位密码由逻辑电平开关低四位K3-K0拨入。2、 输入密码,有三次验证密码的机会。10s内输入密码,七段数码管用于计时:9-0,8*8双色LED显示红色“IN” ,4位密码由逻辑电平开关低四位K3-K0拨入。3、 若输入的错误密码错误,则发出警报声而后继续让输入密码。4、 若三次都输入错误则报警提示。5、 若输入密码正确则验证成功,8*8双色LED显示红色“OK”,提示SUCCESS。三、课程设计原理及原理图原理:8253可编程定时/计数器方式控制字:2D7D6:00 计数器0,01 计数器1,10 计数器2,11 非法。D5D4: 00 计数器锁存命令,01 只读写低字节,10 只读写高字节,11 先 读写低字节后读写高。D3D1: 000 方式0,001 方式1,010 方式2,011 方式3,100 方式4,101 方式5。D0: 0 二进制,1 十进制。并行 I/O 接口芯片 8255端口 A:PA0PA7A 组,支持工作方式 0、1、2端口 B:PB0PB7B 组,支持工作方式 0、1端口 C:PC0PC7仅支持工作方式 0、A 组控制高 4 位 PC4PC7、B 组控制低 4 位PC0PC3 DAC0832 数模转换器数字量 按权相加 模拟量七段数码管实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。3双色点阵 LED 显示器实验仪上设有一个共阳极 88 点阵的红绿两色 LED 显示器,其点阵结构如图所示。该点阵对外引出 24 条线,其中 8 条行线,8 条红色列线,8 条绿色列线。若使某一种颜色、某一个 LED 发光,只要将与其相连的行线加高电平,列线加低电平即可。如欲显示汉字,采用逐列循环发光。“SET”点阵代码:行代码输出 40H; 红色列代码输 01H;第一列 1 个红色 LED 发光。行代码输出 7CH; 红色列代码输 02H;第二列 5 个红色 LED 发光。行代码输出 40H; 红色列代码输 04H;第三列 1 个红色 LED 发光。行代码输出 54H; 红色列代码输 08H;第四列 3 个红色 LED 发光。行代码输出 7CH; 红色列代码输 10H;第五列 5 个红色 LED 发光。行代码输出 08H; 红色列代码输 20 H;第六列 1 个红色 LED 发光。行代码输出 54H; 红色列代码输 40 H;第七列 3 个红色 LED 发光。行代码输出 20H; 红色列代码输 80 H;第八列 1 个红色 LED 发光。“IN”点阵代码:行 7EH; 行 04H;行 08H;行 10H;行 20H;行 7EH;行 00H;行 7EH。“OK”点阵代码:行 42H; 行 24H;行 14H;行 7EH;行 7EH;行 42H;行 42H;行 7EH。4原理图(电路图):P A 0P A 1P A 2P A 3P A 4P A 5P A 6P A 7C SP C 0P C 1P C 2P C 3P C 4P C 5P C 6P C 78 2 5 5d pgfedcbaS 0S 1七段数码管O U T 0C SC L K 0G A T E 08 2 5 3K 3K 2K 1K 0L 3L 2L 1L 0G N D2 8 8 H 2 8 F H2 8 0 H 2 8 7 H+ 5 V1 M H Z5四、流程图主流程图6熄灭七段数码管灯(LED_OFF): 打开七段数码管灯 S0(LED_ONS0):开 始结 束PUSH DXAPO DXA写 825控 制 字 : 001B方 式 0, A口 出 , C口 高 4位出 , 低 4位 入PC4置 0: 010BPC5置 0: 010B开 始结 束PUSH DXAPO DXA写 825控 制 字 : 001B方 式 0, A口 出 , C口 高 4位出 , 低 4位 入PC4置 1: 010BPC5置 0: 010B7发出错误警报声(ALERT):五、程序源代码;宏定义开 始结 束PUSH CXPO CXCX-20;取 20次 32个 正 弦 波 数 据取 正 弦 波 数 据将 数 据 送 DAC0832,实 现 放 音是 否 取 完32个 数 据是 否 取 完20次TT F短 延 时F8;*SCREEN_MODEL MACRO MOV AH,6MOV AL,0MOV BH,34HMOV BL,0AHMOV CX,0MOV DH,24MOV DL,79INT 10HENDM;-;输出字符串OUTSTR MACRO STRLEA DX,STRMOV AH,09HINT 21HENDM;*DATAS SEGMENTMESS1 DB please input password from the logic_switch! ,0dh,0ahDB (10 seconds to do this,the low 4 bits!) $MESS2 DB 0dh,0ah,input password form the logic_swith to Open the clock! ,0dh,0ahDB ( you have 3 chances ) $MESS3 DB 0dh,0ah,Press any key to continue ,0dh,0ah,$MESS4 DB 0dh,0ah,you lose a chance! ,0dh,0ah,$MESS5 DB 0dh,0ah,Open success! ,0dh,0ah,$PASSWORD DB ? I82531 EQU 0280HI8253C EQU 0283H I8255A EQU 288H I8255C EQU 28AHI8255K EQU 28BH I0832A EQU 2A8h LED_Table DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHICS1 EQU 0290HICS2 EQU 0298HICS3 EQU 02A0HCOLUMN DB 00h,01h,02h,03h,04h,05h,06h,07h WORD_SET DB 40H,7CH,40H,54H,7CH,08H,54H,20H 9WORD_IN DB 7EH,04H,08H,10H,20H,7EH,00H,7EH WORD_F DB 00H,00H,90H,90H,90H,0FFH,00H,00H WORD_T DB 00H,40H,40H,7EH,40H,40H,00H,00H data1 DB 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh DB 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96hDB 80h,66h,4eh,38h,25h,15h,09h,04hDB 00h,04h,09h,15h,25h,38h,4eh,66h ;正弦波数据DATAS ENDSSTACKS SEGMENTDB 200 DUP (?)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV ES,AXSCREEN_MODEL ;置屏显 OUTSTR MESS1;*设定密码 * CALL LED_OFF ;七段数码管灯灭 MOV CX,10AGAIN: MOV AL,00110010B ;计数器 0,先写高 8 位后写低 8,二进制MOV AX,3000HMOV DX,I82531 OUT DX,ALMOV AL,AHOUT DX,AL ;写计数初值MOV DX,I8255KMOV AL,10001001B ;方式 0,A 口出,C 口入 OUT DX,AL ;写 8255 控制字 MOV DX,I8255CTEST1: IN AL,DX ;读 C 口数据TEST AL,10000000B;是否计数完 1 秒 JZ TEST1PUSH CX 10;*显示计时* MOV AX,CXDEC AX MOV BX,AX MOV DX,I8255KMOV AL,10001001B ;方式 0,A 口出,C 口入 OUT DX,AL ;写 8255 控制字 LEASI,LED_TableMOV BH,0ADD SI,BX CALL LED_ONS0 ;打开七段数码管灯 S0MOV AL,SI
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号