当前位置:文档之家› 单片机实验6

单片机实验6

实验十一键盘与数码管显示一、实习目的掌握用单片机的键盘输入和数码管显示技术,编写程序实现键盘输入数据并在显示器上正确显示。

二、实验内容1、端口按键判断技术(按键显示数字)通过按键盘上的K02,K03,K04,K05四个按键,实现数码管显示0,1,2,3;(1)硬件连接:按键接到P3口。

用一条8PIN数据排线,把按键部份的JP48,接到CPU部份的P3口JP53,接8位数码管的数据线。

将数码管部份的数据口 JP5接到CPU部份的P0口JP51,接8位数码管的显示位线。

将数码管部份的显示位口 JP8接到CPU部份的P2口JP52.(2)参考程序org 0000hljmp startorg 0030hstart:mov p2,#0ffhCLR P2.6 ;选中最右边的七段码。

mov p3,#0ffh ;初始化,P3口置高;l1: j nb p3.2,l2 ;jnb p3.3,l3 ;jnb p3.4,l4 ;jnb p3.5,l5 ;检测按键ljmp l1 ;循环检测l2: m ov p0,#28H ;显示'0';ljmp l1l3: m ov p0,#7EH ;显示'1';ljmp l1l4: mov p0,#0A2H ;显示'2';ljmp l1l5: mov p0,#62H ;显示'3'ljmp l1end2、矩阵按键识别技术本实验实现扫描按键显示功能,分别按16个键盘显示分别显示数字123A456B789C*0#D;键盘口P1,数码管显示第二位p21, 数码管段位p0口(1)接线方法:用一条8PIN数据排线,把矩阵按键部份的JP50,接到CPU部份的P1口JP44,接8位数码管的数据线。

将数码管部份的数据口JP5接到CPU部份的P0口JP51,接8位数码管的显示位线。

将数码管部份的显示位口 JP8接到CPU部份的P2口JP52.(2)参考程序org 0000hajmp mainorg 0030hmain:mov dptr,#tab ;将表头放入DPTRlcall key ;调用键盘扫描程序movc a,@a+dptr ;查表后将键值送入ACCmov p0,a ;将Acc值送入P0口CLR P2.1 ;开显示ljmp main ;返回反复循环显示KEY: LCALL KS ;调用检测按键子程序JNZ K1 ;有键按下继续LCALL DELAY2 ;无键按调用延时去抖AJMP KEY ;返回继续检测按键K1: LCALL DELAY2LCALL DELAY2 ;有键按下延时去抖动LCALL KS ;再调用检测按键程序JNZ K2 ;确认有按下进行下一步AJMP KEY ;无键按下返回继续检测K2: MOV R2,#0EFH ;将扫描值送入 R2暂存MOV R4,#00H ;将第一列值送入R4暂存K3: MOV P1,R2 ;将R2的值送入P1口L6: JB P1.0,L1 ;P1.0等于1跳转到L1MOV A,#00H ;将第一行值送入ACCAJMP LK ;跳转到键值处理程序L1: JB P1.1,L2 ;P1.1等于1跳转到L2MOV A,#04H ;将第二行的行值送入ACCAJMP LK ;跳转到键值理程序进行键值处理L2: JB P1.2,L3 ;P1.2等于1跳转到L3MOV A,#08H ;将第三行的行值送入ACCAJMP LK ;跳转到键值处理程L3: JB P1.3,NEXT ;P1.3等于1跳转到NEXT处MOV A,#0cH ;将第四行的行值送入ACCLK: ADD A,R4 ;行值与列值相加后的键值送入APUSH ACC ;将A中的值送入堆栈暂存K4: LCALL DELAY2 ;调用延时去抖动程序LCALL KS ;调用按键检测程序JNZ K4 ;按键没有松开继续返回检测POP ACC ;将堆栈的值送入ACCRETNEXT:INC R4 ;将列值加一MOV A,R2 ;将R2的值送入AJNB ACC.7,KEY ;扫描完至KEY处进行下一扫描RL A ;扫描未完将A中的值右移一位进行下一列的扫描 MOV R2,A ;将ACC的值送入R2暂存AJMP K3 ;跳转到K3继续KS: MOV P1,#0FH ;将P1口高四位置0低四位值1MOV A,P1 ;读P1口XRL A,#0FH ;将A中的值与A中的值相异或RET ;子程序返回DELAY2: ;40ms延时去抖动子程序MOV R5,#08HL7: MOV R6,#0FAHL8: DJNZ R6,L8DJNZ R5,L7RETtab:db28h,34h,28h,34h,0a9h,60h,20h,7ah,20h,21h,61h,74h,30h,62h,0a2h,7eh ;0h0hc9878654a321 轮流显示键盘因为无法表达*# 就用H表示,B用8表示END三、实验要求:1、实习前必须编写好程序2、程序必须编译通过并运行正确3、提交试验报告:报告内容(1)实验目的(2)实验内容(3)实验原理图(4)实验线路连接(5)实验步骤(6)实验结果实验十二液晶显示一、实习目的掌握用单片机液晶显示器的扩展与应用,编写软件实现液晶显示器的正确显示。

二、实验内容1、用1602液晶显示屏显示字符“A”。

RS EQU P2.0RW EQU P2.1E EQU P2.2ORG 0000HMOV P0,#00000001B ;清屏ACALL ENABLEMOV P0,#00000001B ;清屏ACALL ENABLEMOV P0,#00111000B ;显示功能ACALL ENABLEMOV P0,#00001111B ;显示开关控制ACALL ENABLEMOV P0,#00000110B ;输入模式ACALL ENABLEMOV P0,#0C0H ;数据存贮器地址ACALL ENABLEmov p0,#01000001b ;ASCII码SETB RSCLR RWCLR EACALL DELAYSETB EAJMP $ENABLE: CLR RS ;送命令CLR RWCLR EACALL DELAYSETB ERETDELAY: MOV P0,#0FFHCLR RSSETB RWCLR ENOPSETB EJB P0.7,DELAY ;判断忙标志RETEND2、实现汉字显示屏倚天一出宝刀屠龙(1)连接方式:用一根8PIN的数据排线,一端接到汉字屏部分的JP55一端接到CPU部份的P0口JP51,用一根8PIN的数据排线,一端接到汉字屏部分的JP54一端接到CPU部份的P2口JP52,用一根4PIN数据线一端插入CPU部分JP44(P1口)的P1.0,P1.1,P1.2,P1.3另外一端插入汉字屏部分的JP62.(2)参考程序org 00HSTART: MOV A,#0FFHMOV P0,AANL P2,#00MOV R2,#200D1: MOV R3,#248 ;延时DJNZ R3,$DJNZ R2,D1MOV 20H,#00Hl1: MOV R1,#100L2: MOV R6,#16MOV R4,#00HMOV R0,20HL3: MOV A,R4MOV P1,A ;开三极管INC R4MOV A,R0MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,A ;查表送P0口 INC R0MOV A,R0MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P2,A ;查表送P2口 INC R0MOV R3,#02D2: MOV R5,#248DJNZ R5,$DJNZ R3,D2MOV A,#00HMOV P0,AANL P2,#00HDJNZ R6,L3DJNZ R1,L2MOV 20H,R0CJNE R0,#0FFH,L1 ;检测是否送完 JMP STARTTABLE :db 01H,00H,02H,00H,04H,00H,1FH,0FFH;倚db 0E2H,00H,22H,00H,22H,0FCH,26H,88Hdb 2AH,88H,0F2H,88H,2AH,0FAH,26H,01Hdb 63H,0FEH,26H,00H,02H,00H,00H,00Hdb 02H,01H,42H,01H,42H,02H,42H,04H;天db 42H,08H,42H,30H,42H,0C0H,7FH,00Hdb 42H,0C0H,42H,30H,42H,08H,42H,04Hdb 0C2H,02H,46H,03H,02H,02H,00H,00Hdb 01H,00H,01H,00H,01H,00H,01H,00H;一db 01H,00H,01H,00H,01H,00H,01H,00Hdb 01H,00H,01H,00H,01H,00H,01H,00Hdb 01H,00H,03H,00H,01H,00H,00H,00Hdb 00H,00H,00H,7FH,3FH,02H,02H,02H;出db 02H,02H,02H,02H,02H,02H,0FFH,0FEHdb 02H,02H,02H,02H,02H,02H,02H,02Hdb 3FH,02H,00H,7FH,00H,00H,00H,00Hdb 08H,00H,30H,02H,22H,02H,22H,42H;宝db 22H,42H,22H,42H,0A2H,42H,63H,0FEHdb 22H,42H,22H,52H,22H,0DAH,26H,42Hdb 22H,06H,28H,02H,30H,00H,00H,00Hdb 00H,00H,20H,01H,20H,02H,20H,04H;刀db 20H,18H,20H,60H,3FH,80H,20H,00Hdb 20H,00H,20H,02H,20H,01H,20H,02Hdb 7FH,0FCH,20H,00H,00H,00H,00H,00Hdb 00H,02H,00H,0CH,7FH,0F4H,51H,08H;屠db 55H,10H,55H,3FH,55H,6AH,5FH,0AAHdb 55H,2AH,57H,2AH,55H,2AH,59H,2AHdb 0F1H,7FH,43H,20H,01H,00H,00H,00Hdb 08H,00H,08H,01H,08H,02H,08H,0CH;龙db 08H,30H,09H,0C4H,0FEH,04H,08H,08Hdb 0FH,0FCH,48H,22H,28H,42H,08H,82Hdb 0BH,02H,18H,02H,08H,1EH,00H,00Hend三、实验要求:1、实习前必须编写好程序2、程序必须编译通过并运行正确3、提交试验报告:报告内容(1)实验目的(2)实验内容(3)实验原理图(4)实验线路连。

相关主题