当前位置:文档之家› 硬件实验三按键与显示实验

硬件实验三按键与显示实验

\本科实验报告课程名称:微机原理与接口技术张开桓姓名:信息学院学院:控制系系:专业:自动化3080104703学号:指导教师:齐杭丽2010年12 月15 日实验报告课程名称: 微机原理与接口技术 指导老师: 齐杭丽 成绩:____ ___实验名称: 按键与显示实验 实验类型: 设计型 同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得硬件实验三 按键与显示实验1.实验目的① 熟练运用keil 环境对硬件接口进行调试。

② 掌握IO 扩展键盘的软硬件设计方法; ③ 掌握数字转换成显示段码的软件译码方法; ④ 掌握静态显示的原理和相关程序的编写。

⑤ 掌握动态显示的原理和相关程序的编写; 2.预习要求① 理解51单片机IO 实现独立式键盘扩展的工作原理。

② 理解8段数码管静态显示的电路工作原理,采用静态显示有何优缺点; ③ 理解8段数码管动态显示的电路工作原理,采用动态显示有何优缺点;④ 理解8段数码管静态显示的IO 控制方式及同步串行口控制方式如何实现软件设计; 3.实验设备计算机 1台; ZDGDTH-1型80C51实验开发系统 1套; 2号导线 、8P 数据线 若干条。

4.基础型实验内容① 查询式键盘和静态显示实验8个独立式键盘的电路如图2-1所示,串口扩展的6个静态数码管电路如图2-2所示。

设将P0口连接到键盘接口,则如果有键按下,相应的口线输出为低,否则输出为高。

单片机通过读取接口的状态,判断按下什么键。

有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。

专业:自动化(控制系) 姓名: 张开桓 学号: 3080104703 日期: 2010/12/15 地点: 东4-6068个按键的键值从右至左分别为0~7。

实验例程是查询按键操作,并将按下的键值在6个静态数码管上显示出来。

6个静态数码管与6片74LS164(串转并移位寄存器)连接,通过IO口与单片机连接,实现串行静态显示的控制。

用8P数据线将80C51/C8051F020MCU模块的 JD1(P1口)与查询式键盘模块JD1C7相连。

在实验箱右上角的扩展区中插入静态串行显示模块,用二号导线将80C51/C8051F020MCU 模块的 P3.0(RXD)、P3.1(TXD)分别与静态数码显示模块的DIN、CLK相连;将A7区的电源短路帽JD5A7打到右端。

在Keil环境连续运行该程序,观察实验结果。

电路图:图2-1 8个独立式按键电路源程序:DBUF EQU 30HDAT EQU P3.0CLK EQU P3.1ORG 0000HL0: MOV P1, #0FFHL1: MOV A, P1CJNE A, #0FFH,KEYPUTSJMP L1KEYPUT: CJNE A,#0FEH,NEXT1SJMP K0NEXT1: CJNE A,#0FDH,NEXT2SJMP K1NEXT2: CJNE A,#0FBH,NEXT3SJMP K2NEXT3: CJNE A,#0F7H,NEXT4SJMP K3NEXT4: CJNE A,#0EFH,NEXT5SJMP K4NEXT5: CJNE A,#0DFH,NEXT6SJMP K5NEXT6: CJNE A,#0BFH,NEXT7SJMP K6NEXT7: SJMP K7K0: MOV B,#00HLCALL DISPLJMP L0K1: MOV B,#01HLCALL DISPLJMP L0K2: MOV B,#02HLCALL DISPLJMP L0K3: MOV B,#03HLCALL DISPLJMP L0K4: MOV B,#04HLCALL DISPLJMP L0K5: MOV B,#05HLCALL DISPLJMP L0K6: MOV B,#06HLCALL DISPLJMP L0K7: MOV B,#07HLCALL DISPLJMP L0DISP: MOV DBUF, BMOV DBUF+1,BMOV DBUF+2,BMOV DBUF+3,BMOV DBUF+4,BMOV DBUF+5,BMOV R0,#DBUFMOV DPTR,#TABMOV R2,#06HDP0: MOV A,@R0MOVC A,@A+DPTRMOV R3,#08HDP1: RLC AMOV DAT,CCLR CLKSETB CLKDJNZ R3,DP1INC R0DJNZ R2,DP0RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH ; 0,1,2,3,4,5DB 7DH,07H,7FH,6FH,77H,7CH ; 6,7,8, 9,A,BDB 58H,5EH,79H,71H,00H,40H ; C,D,E,F, ,-END结果:按前述要求连接硬件电路,并在Keil上并运行该程序。

然后,按动独立键盘上的按键,按下KEY0-KEY7中的每个键时,即在六位静态数码管上显示该键键值,直到按下下一个键。

②动态显示实验6位动态数码管显示的接口电路设计如图2-3所示,假设P0口输出显示的段码,P2口输出位码,用8P数据线将80C51/C8051F020MCU模块的JD0(P0口)、JD2(P2口)分别与A7区的JD1A7、JD2A7相连;A7区的电源短路帽JD5A7打到右端。

在Keil环境连续运行该程序,观察实验结果。

图2-3 6位动态数码管显示接口电路流程图如下:源程序:DBUF EQU 30HTEMP EQU 40HORG 0000HLJMP DISPORG 0100HDISP:MOV 30H,#8MOV 31H,#6MOV 32H,#1MOV 33H,#8MOV 34H,#6MOV 35H,#1MOV R0,#DBUFMOV R1,#TEMPMOV R2,#6MOV DPTR,#SEGTABDP00: MOV A,@R0MOVC A,@A+DPTRMOV @R1,AINC R1INC R0DJNZ R2,DP00DISP0: MOV R0,#TEMPMOV R1,#6MOV R2,#1DP01: MOV A,@R0MOV P0,AMOV A,R2MOV P2,AACALL DELAYMOV A,R2RL AMOV R2,AINC R0DJNZ R1,DP01SJMP DISP0SEGTAB:DB 3FH,06H,5BH ; 0,1,2DB 4FH,66H,6DH ; 3,4,5DB 7DH,07H,7FH ; 6,7,8,DB 6FH,77H,7CH ; 9,A,BDB 58H,5EH,7BH ; C,D,EDB 71H,00H,40H ; F, ,-DELAY: MOV R4,#03HAA1: MOV R5,#0FFHAA: NOPNOPDJNZ R5,AADJNZ R4,AA1RETEND结果:按要求连接硬件电路并在Keil上运行上述源程序,此时,动态数码管上显示数字“168168”。

5.设计型实验内容①在最后一个数码管上依次显示a、b、….f各段,每段显示时间为100ms,用T0定时器实现;源程序:DBUF EQU 30HORG 0000HLJMP DISPORG 0100HDISP:MOV DBUF,#01HMOV R1,#01HMOV R2,#6DP: MOV A,DBUFMOV P0,AMOV A,R1MOV P2,AACALL DELAYMOV A,DBUFRL AMOV DBUF,ADJNZ R2,DPSJMP DISPDELAY: MOV TMOD,#01HMOV R3,#2LOOP: MOV TH0,#3CHMOV TL0,#0B0HSETB TR0JNB TF0,$CLR TF0DJNZ R3,LOOPRETEND硬件电路连接:用8P数据线将80C51/C8051F020MCU模块的JD0(P0口)、JD2(P2口)分别与A7区的JD1A7、JD2A7相连;A7区的电源短路帽JD5A7打到右端。

结果:连接好电路并在Keil上运行程序,则最后一个动态数码管的边缘各段(即对应a、b、c、d、e、f各段)依顺时针方向依次点亮,在该数码管上形成了一个运动着的小边框。

与预期通过动态数码管显示所要实现的功能相符,实验成功。

②分别指定IO控制动态扫描显示模块或静态显示模块电路,画出流程并设计程序实现数码管显示自己的学号后六位号码;动态显示学号流程图:动态数码管显示学号后六位流程图源程序:DBUF EQU 30HTEMP EQU 40HORG 0000HLJMP DISPORG 0100HDISP:MOV 30H,#3MOV 31H,#0MOV 32H,#7MOV 33H,#4MOV 34H,#0MOV 35H,#1MOV R0,#DBUFMOV R1,#TEMPMOV R2,#6MOV DPTR,#SEGTABDP00: MOV A,@R0MOVC A,@A+DPTRMOV @R1,AINC R1INC R0DJNZ R2,DP00DISP0: MOV R0,#TEMPMOV R1,#6MOV R2,#1DP01: MOV A,@R0MOV P0,AMOV A,R2MOV P2,AACALL DELAYMOV A,R2RL AMOV R2,AINC R0DJNZ R1,DP01SJMP DISP0 SEGTAB:DB 3FH,06H,5BH ; 0,1,2DB 4FH,66H,6DH ; 3,4,5DB 7DH,07H,7FH ; 6,7,8,DB 6FH,77H,7CH ; 9,A,BDB 58H,5EH,7BH ; C,D,EDB 71H,00H,40H ; F, ,- DELAY: MOV R4,#03HAA1: MOV R5,#0FFHAA: NOPNOPDJNZ R5,AADJNZ R4,AA1RETEND硬件电路连接:用8P数据线将80C51/C8051F020MCU模块的JD0(P0口)、JD2(P2口)分别与A7区的JD1A7、JD2A7相连;A7区的电源短路帽JD5A7打到右端。

其中P0口输出段码,P2口输出位码。

结果:按要求连接硬件电路并在Keil上运行上述源程序,此时,动态数码管上显示自己学号的后六位,即104703。

③用按键输入自己的学号,并在静态或动态数码管上显示出来。

源程序:DBUF EQU 30HDAT EQU P3.0CLK EQU P3.1ORG 0000HL0: MOV P1, #0FFHL1: MOV A, P1CJNE A, #0FFH,KEYPUTSJMP L1KEYPUT: CJNE A,#0FEH,NEXT1SJMP K0NEXT1: CJNE A,#0FDH,NEXT2SJMP K1NEXT2: CJNE A,#0FBH,NEXT3SJMP K2NEXT3: CJNE A,#0F7H,NEXT4SJMP K3NEXT4: CJNE A,#0EFH,NEXT5SJMP K4NEXT5: CJNE A,#0DFH,NEXT6SJMP K5NEXT6: CJNE A,#0BFH,NEXT7SJMP K6NEXT7: SJMP K7K0: MOV DBUF,#00HLCALL DISPLJMP L0K1: MOV DBUF,#01HLCALL DISPLJMP L0K2: MOV DBUF,#02HLCALL DISPLJMP L0K3: MOV DBUF,#03HLCALL DISPLJMP L0K4: MOV DBUF,#04HLCALL DISPLJMP L0K5: MOV DBUF,#05HLCALL DISPLJMP L0K6: MOV DBUF,#06HLCALL DISPLJMP L0K7: MOV DBUF,#07HLCALL DISPLJMP L0DISP: MOV DPTR,#TABDP0: MOV A,DBUFMOVC A,@A+DPTRMOV R3,#08HDP1: RLC AMOV DAT,CCLR CLKSETB CLKDJNZ R3,DP1CALL DELAYRETDELAY: MOV R5,#5D1: MOV R6,#200D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETTAB: DB 3FH,06H,5BH ; 0,1,2DB 4FH,66H,6DH ; 3,4,5DB 7DH,07H,7FH ; 6,7,8,DB 6FH,77H,7CH ; 9,A,BDB 58H,5EH,7BH ; C,D,EDB 71H,00H,40H ; F, ,-END硬件电路连接:用8P数据线将80C51/C8051F020MCU模块的 JD1(P1口)与查询式键盘模块JD1C7相连。

相关主题