1、接口技术课程设计报告目 录一、实验目的-2-二、实验内容-2-三、总体设计-2-四、实验电路-2-五、实验框图-4-六、实验程序-5-七、实验心得-10-实现特定功能的键盘及LED显示一、实验目的1、掌握键盘和显示器的接口方法和编程方法。2、掌握键盘扫描和LED八段码显示器的工作原理。二、实验内容 1、了解键盘及LED显示接口设计,绘制出原理图。 2、根据实验箱上提供的硬件资源完成: a、按1键显示年 b、按2键显示月日 c、按3键显示GOOD d、按4键数码管由左到右8字循环显示。3、设计电路并在实验台上连接线路。三、总体设计 1、选通键盘以及LED数字显示控制区 2、主要利用软件编程,实现
2、实验要求中的各项四、实验电路 使用PC机与伟福lab8000实验箱连接起来,安装好相应驱动,做好接线分析,由于lab8000实验箱已经将部分电路接线内置,所以接线仅需要将KEY/LED_CS选通端口与CS0相连即可,但作为学习过程,应更加详细的将实现电路了解,现已将实验箱所用实验器件的内部电路给出,详细电路见下页图1五、实验框图显示程序框图六、实验程序OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN_KEY equ 08001h ; 键盘读入口data segmentLEDBuf db 6 dup(?) ; 显示缓冲Num db 1 dup(
3、?) ; 显示的数据DelayT db 1 dup(?)LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKeyTable: ; 键码定义 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hdata endscode segment a
4、ssume cs:code, ds:dataDelay proc near push ax ; 延时子程序 push cx mov al, 0 mov cx,ax loop $ pop cx pop ax retDelay endpDelay1 proc near push ax ; 延时子程序 push cx mov al, 0 mov cx,38000 loop $ pop cx pop ax retDelay1 endpDisplayLED proc near mov bx, offset LEDBuf mov cl, 6 ; 共6个八段管 mov ah, 00100000b ; 从左边
5、开始显示DLoop: mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 mov al, bx mov dx, OUTSEG out dx,al mov dx, OUTBIT mov al, ah out dx, al ; 显示一位八段管 push ax mov ah, 1 call Delay pop ax shr ah, 1 inc bx dec cl jnz DLoop mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 retDisplayLED endpTestKey proc near mov dx, OUTB
6、IT mov al, 0 out dx, al ; 输出线置为0 mov dx, IN_KEY in al, dx ; 读入键状态 not al and al, 0fh ; 高四位不用 retTestKey endpGetKey proc near mov ch, 00100000b mov cl, 6KLoop: mov dx, OUTBIT mov al, ch ; 找出键所在列 not al out dx, al shr ch, 1 mov dx, IN_KEY in al, dx not al and al, 0fh jne Goon_ ; 该列有键入 dec cl jnz KLoop
7、 mov cl, 0ffh ; 没有键按下, 返回 0ffh jmp Exit1Goon_: dec cl shl cl, 2 ; 键值 = 列 X 4 + 行 mov ch, 4LoopC: test al, 1 jnz Exit1 shr al, 1 inc cl dec ch jnz LoopCExit1: mov dx, OUTBIT mov al, 0 out dx, al mov ch, 0 mov bx, offset KeyTable add bx, cx mov al, bx ; 取出键码 mov bl, alWaitRelease: mov dx, OUTBIT mov a
8、l, 0 out dx, al ; 等键释放 mov ah, 10 call Delay call TestKey jne WaitRelease mov al, bl retGetKey endpStart proc near mov ax, data mov ds, ax mov di,offset LEDBufp1: mov di,offset LEDBuf mov di, 05bh ; 显示 2008. mov di+1, 03fh mov di+2, 03fh mov di+3, 0ffh mov di+4, 0 mov di+5, 06h jmp MLoopp2: mov di,o
9、ffset LEDBuf mov di, 03fh ; 显示 08.08. mov di+1, 0ffh mov di+2, 03fh mov di+3, 0ffh mov di+4, 0 mov di+5, 5bh jmp MLoopp3: mov di,offset LEDBuf mov di,6fh ;显示good mov di+1,5ch mov di+2,5ch mov di+3,0deh mov di+4,0 mov di+5,4fh jmp MLoop p4: push cx mov cx,08h mov bx,offset LEDBufp4l: mov bx,00 inc bx
10、 loop p4l pop cx mov di, 7fh ; 显示 8 inc di cmp di,offset LEDBuf + 06h jnz next mov di,offset LEDBufnext: call delay1 call DisplayLED ; 显示 call TestKey jne MLoop jmp p4MLoop: call DisplayLED ; 显示 call TestKey ; 有键入? je MLoop ; 无键入, 继续显示 call GetKey ; 读入键码 and al, 0fh ; 显示键码 cmp al,01h jz mmpp1 cmp al
11、,02h jz mmpp2 cmp al,03h jz p3 cmp al,04h jz p4 mov ah, 0 mov bx, offset LEDMAP add bx, ax mov al, bx mov LEDBuf+5, al jmp MLoop mmpp1: jmp p1mmpp2: jmp p2 Start endpcode ends end start七、实验心得通过此次课程设计让我学会了更多的知识,以及懂得了团队合作的重要性,通过编写相关的程序以及对LAB8000实验箱的使用我们的动手能力得到了很大的提高,并且很感谢老师的细心指导,对我们的帮助很大,以及感谢本小组的其他成员,大家的共同努力使我们完成了此次课程设计。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2