1、实验报告 十课程名称: 微机原理与接口技术 指导老师:李素敏 学生姓名:向春霞 学号:1243013 专业:通信工程 日期:6 月 地点:理工 603 实验九 矩阵键盘检测一、 实验目的和要求1.掌握利用单片机定时器实现定时。2.熟悉单片机与数码管的接口技术及数码管动态显示的控制过程。3.熟悉单片机与键盘的接口技术及按键识别过程。4.学会如何编制含数码管显示,定时器中断及按键控制等多种功能的综合程序,体会大型程序的编制和调试技巧。二 、主要仪器设备电脑,Keil 软件三、实验内容1、实验要求:要求其实现的功能如下(其中定时要求采取中断方式):(1) 、用 6 位数码管显示秒表时间,最左边 2
2、位显示分,中间 2 位显示秒,最右边 2 位显示秒的小数位(0.000.99 秒) ,秒与小数位之间要显示小数点。 (2) 、两个按键:计时/停止按键:首次按下从 0 开始计时,再次按下暂停计时,之后每次按下按键实现继续计时、暂停计时,继续计时、暂停计时 。 (继续计时即从上次暂停时的时间开始继续计时)复位按键:按下后全部清 0,等待下次按下计时/停止按键时重新开始计时。2.设计思路:(1)、采用内部脉冲定时,实现计时,最低显示位为 10ms 记一次数显示一次,即 0.000.99 秒。100 个 10ms 是 1 秒,所以当低位计满 100 次, (当 50H 为 10时,把 50H 单元清
3、零,向 51H 进 1)即得到秒计时 ,然后把 51H 单元清零,给52H 单元加 1.当 52H 为 10 时,清零,给 53H 加 1,当 53H 为 6 时秒计时达到60 次,则向分计时,即给 54H 加 1,再给 53H 清零,当 54H 计满 10 时,清零,给 55H 加 1,直到 55H 为 6 时给 55H 清零。50H,51H 放最低位计数52-53H 放秒位次数54-55H 放分位计数 (2) 、 S2(p3.4)键,用扫描S2:当 P3.4 为低电平时,让 TR0 为 0,即暂停计数。当 P3.4 再次为低电平时继续计数,让 TR0=1.(3) 、 S 3(p3.5)键,
4、T1 计数模式实现中断响应,复位按键 S3:当 F0 为 0 时,给 50-55H 单元清零;然后按 S2 开始计数3.源程序:ORG 0000HAJMP MAINORG 000BH LJMP TIME ;定时ORG 001BHLJMP S3 ;暂停ORG 0030H MAIN: CLR AMOV 50H,A ;最低位次数MOV 51H,A MOV 52H,A ; 秒位次数MOV 53H,AMOV 54H,A ;分位计数MOV 55H,ADS1:MOV TMOD,#61H ;定时 0 模式 1,计数 1 模式 2MOV TH0,#0D8H ;初值定时 10msMOV TL0,#0F0H MOV
5、 TH1,#0FFH ;初值,溢出中断MOV TL1,#0FFHSETB EA SETB ET1SETB ET0SETB TR0SETB TR1XS: MOV R1,#50HMOV R2,#0DFHMOV R3,#2MOV R4,#4JNB P3.4,STOPAJMP NEXTSTOP:CPL TR0WAIT:JB P3.4,NEXTSJMP WAITNEXT:MOV A,R1INC R1MOV DPTR,#DUANMOVC A,A+DPTRSETB P2.6MOV P0,ACLR P2.6SETB P2.7MOV A,R2MOV P0,ACLR P2.7 ;位选置位MOV A,R2RR AM
6、OV R2,ALCALL DELDJNZ R3,NEXTXSD: MOV DPTR,#XDUAN MOV A,R1MOVC A,A+DPTRSETB P2.6MOV P0,ACLR P2.6SETB P2.7MOV A,R2MOV P0,ACLR P2.7 ;位选置位MOV A,R2RR ALCALL DELAGA:MOV A,R1INC R1MOV DPTR,#DUANMOVC A,A+DPTRSETB P2.6MOV P0,ACLR P2.6SETB P2.7MOV A,R2MOV P0,ACLR P2.7 ;位选置位MOV A,R2RR AMOV R2,ALCALL DELDJNZ R4
7、,AGALJMP XSTIME:MOV TH0,#0D8H ;定时中断MOV TL0,#0F0HINC 50HMOV A,50HCJNE A,#10,RETUNT ;50H 满 10 给 51H 单元+1MOV 50H,#00HINC 51HMOV A,51HCJNE A,#10,RETUNT ;51H 满 10 给 52H 单元+1MOV 51H,#00HINC 52HMOV A,52HCJNE A,#10,RETUNT ;52H 满 10 给 53H 单元+1MOV 52H,#00HINC 53HMOV A,53HCJNE A,#6,RETUNT ;53H 满 10 给 54H 单元+1M
8、OV 53H,#00HINC 54HMOV A,54H CJNE A,#10,RETUNT ;54H 满 10 给 55H 单元+1MOV 54H,#00HINC 55HMOV A,55HCJNE A,#6,RETUNT MOV 55H,#00HRETUNT:RETIS3: CLR TR0CLR AMOV 50H,A ;最低位次数MOV 51H,A MOV 52H,A ; 秒位次数MOV 53H,AMOV 54H,A ;分位计数MOV 55H,ARETIDEL:MOV R6,#2 ;延时 1msDEL1:MOV R7,#248NOPDEL2:DJNZ R7,DEL2DJNZ R6,DEL1RETDUAN:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;段选地址表XDUAN:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;带小数点的段码END