当前位置:文档之家› 单片机实验报告2_lbs_v2.0

单片机实验报告2_lbs_v2.0

东南大学仪器科学与工程学院学院实验报告课程名:单片机应用系统设计实验名称:单片机课程设计实验报告(二)院(系):仪器科学与工程学院专业:测控技术与仪器目录一、硬件实验四显示器/键盘实验 (3)二、硬件实验五串行口实验 (16)三、硬件实验六计数器/定时器实验 (32)四、硬件实验八 8255扩展 (39)硬件实验四显示器/键盘实验I、八段数码管显示实验一、目的1、了解数码管动态显示的原理;2、了解用总线方式控制数码管显示。

二、内容利用实验箱提供的显示电路,动态显示一行数据。

三、实验步骤1、硬件连接2、实验说明注意:当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O方式驱动八段显示管时,请将开关拨到“外驱”位置。

本实验箱提供了6位8段LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制,显示方式为动态显示。

8位段码,6位位码分别由两片74HC374输出,其中位码再经MC1413或ULN2003反相驱动。

本实验箱中,8位段码输出地址为0X004H,位码输出地址为0X002H。

此处X是KEY/LED CS决定,参见地址译码。

做键盘和LED实验时,需将KEY/LED CS接到相应的地址译码上,以便用相应的地址来访问。

例如KEY/LED CS接到CS0上,则段码地址为08004H,位码地址为08002H。

七段数码管的字形代码表如下表:3. 分析并执行程序,观察并记录结果四、提高要求修改程序,显示1,2,3,4,5,6或A,B,C,D,E,F。

OUTBIT EQU 08002HOUTSEG EQU 08004HIN EQU 08001HLEDBUF EQU 60HNUM EQU 70HDELAYT EQU 75HLJMP STARTLEDMAP:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DELAY:MOV R7,#0DELAYLOOP:DJNZ R7,DELAYLOOPDJNZ R6,DELAYLOOPRETDISPLAYLED:MOV R0,#LEDBUFMOV R1,#6MOV R2,#00100000BLOOP:MOV DPTR,#OUTBITMOV A,#0MOVX @DPTR,AMOV A,@R0MOV DPTR,#OUTSEGMOV @DPTR,AMOV DPTR,#OUTBITMOV A.R2MOVX @DPYR,AMOV R6,#05HCALL DELAYMOV A,R2RR AMOV R2,AINC R0DJNZ R1,LOOPMOV DPTR #OUTBITMOV A,#0MOVX @DPTR,ARETSTART:MOV SP,#40HMOV NUM,#0MLOOP:INC NUMMOV A,NUMMOV B,AMOV R0,#LEDBUFFILLBUF:MOV A,BANL A,#OFHMOV DPTR,#LEDMAPMOVC A,@A+DPTRMOV @R0,AINC R0INC BCJNE R0,#LEDBUF+6,FILLBUFMOV DELAYT,#30HDISPAGAIN:CALL DISPLAYLEDDJNZ DELAYT,DISPAGAINLJMP MLOOPEND七、实验现象硬件连接完成后,运行程序。

八段数码管起始显示1,2,3,4,5,6和7,,然后每个数码管显示的值增加1,为2,3,4,5,6,7和8。

并以这种规律循环下去,直到再一次显示1,2,3,4,5,6和7,完成一次循环。

循环一直运行下去,数码管显示的数据不断变化。

八、实验提高1. 要求:修改程序,显示1,2,3,4,5,6或A,B,C,D,E,F。

2. 解答:修改程序,使数码管显示1,2,3,4,5,6。

将源程序中的START:MOV SP,#40HMOV NUM,#0MLOOP:INC NUMMOV A,NUMMOV B,AMOV R0,#LEDBUF修改为START:MOV SP,#40HMOV NUM,#1MLOOP:INC NUM // 删去该指令MOV A,NUMMOV B,AMOV R0,#LEDBUFII 、键盘扫描显示实验一、 目的a) 掌握键盘和显示器的接口扩展和编程方法;b) 掌握键盘扫描和LED 八段码显示器的工作原理。

二、 内容在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,完成扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。

实验程序可分成三个模块。

1. 键输入子程序:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。

2. 显示子程序:将显示单元的内容在显示器上动态显示。

3. 主程序:调用键输入子程序和显示子程序。

三、实验步骤1、硬件连接列码 (0X002H)数据总线读回行码 (0X001H)2、实验说明本实验箱提供了一个6×4的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。

如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。

在判断有键按下后,要有一定的延时,防止键盘抖动。

再通过输出的列码和读取的行码来判断按下的是什么键。

地址中的X是由KEY/LED CS 决定,参见地址译码。

做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。

以便用相应的地址来访问。

例如将KEY/LED CS信号接CS0上,则列扫描地址为08002H,行码地址为08001H。

列扫描码还可以分时用作LED的位选通信号。

(参见键盘显示电路)3、分析并执行程序,观察并记录结果。

四、提高要求1. 修改程序,使键值在数码管上从右向左移动显示。

2. 设计程序每按一次键,数码管显示加1。

实现0~99的自加。

3. 查询资料,举出其他形式的键盘,显示器软硬件的设计方法。

分析优缺点。

OUTBIT EQU 08002HOUTSEG EQU 08004HIN EQU 08001HLEDBUF EQU 60HLJMP STARTLEDMAP:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DELAY:MOV R7,#0DELAYLOOP:DJNZ R7,DELAYLOOPDJNZ R6,DELAYLOOPRETDISPLAYLED:MOV R0,#LEDBUFMOV R1,#6MOV R2,#00100000BLOOP:MOV DPTR,#OUTBITMOV A,#0MOVX @DPTR,AMOV A,@R0MOV DPTR,#OUTSEGMOV @DPTR,AMOV DPTR,#OUTBITMOV A.R2MOVX @DPYR,AMOV R6,#1CALL DELAYMOV A,R2RR AMOV R2,AINC R0DJNZ R1,LOOPRETTESTKEY:MOV DPTR,#OUTBITMOV A,#0MOVX @DPTR,AMOV DPTR,#INMOVX A,@DPTRCPL AANL A,#0FHRET KEYTABLE:DB 16H,15H,14H,0FFHDB 13H,12H,11H,10HDB 0DH,0CH,0BH,0AHDB 0EH,03H,06H,09HDB 0FH,02H,05H,08HDB 00H,01H,04H,07H GETKEY:MOV DPTR,#OUTBITMOV P2,DPHMOV R0,#LOW(IN)MOV R1,#00100000BMOV R2,#6 KLOOP:MOV A,R1CPL AMOVX @DPTR,ACPL ARR AMOV R1,AMOVX A,@R0CPL AANL A,#0FHJNZ GOON1DJNZ R2,KLOOPMOV R2,#0FFHSJMP EXITGOON1:MOV R1,AMOV A,R2DEC ARL ARL AMOV R2,AMOV A,R1MOV R1,#4 LOOPC:RRC AJC EXITINC R2DJNZ R1,LOOPC EXIT:MOV A,R2MOV DPTR,#KEYTABLEMOVC A,@A+DPTRMOV R2,A WAITRELEASE:MOV DPTR,#OUTBITCLR AMOVX @DPTR,AMOV R6,#10HCALL DELAYCALL TESTKEYJNZ WAITRELEASEMOV A,R2RETSTART:MOV SP,#40HMOV LEDBUF+0,#0MOV LEDBUF+1,#0MOV LEDBUF+2,#0MOV LEDBUF+3,#0MOV LEDBUF+4,#0MOV LEDBUF+5,#0 MLOOP:CALL DISPLAYLEDCALL TESTKEYJZ MLOOPCALL GETKEYANL A,#0FHMOV DPTR,#LEDMAPMOVC A,@A+DPTRMOV LEDBUF+5,ALJMP MLOOPEND七、实验现象硬件连接完成后,运行程序。

每按下一次键盘,记按下键盘值为i(i=0,1,2,3,4,5,6,7,8),数码管就会显示对应的键盘值i。

硬件实验五串行口实验I、串行数据转换并行数据实验一、目的1、了解MCS51串行口,掌握MCS51串行口方式0工作方式及编程方法。

2、掌握利用串行口扩展I/O通道的方法。

二、内容利用单片机的串行口和I/O端口串行输出,利用板上的74HC164串转并电路,移位转换成并行数据,接在LED灯上显示。

三、实验步骤1、硬件连接连线连接孔1 连接孔21 L0 164-Q02 L1 164-Q13 L2 164-Q24 L3 164-Q35 L4 164-Q46 L5 164-Q57 L6 164-Q68 L7 164-Q79 RXD 164-AB2、实验说明串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。

在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为Fosc/12。

3、分析并执行程序,观察并记录结果四、提高要求将串行数据转换成并行数据,驱动八段LED显示器,即利用串行口扩展LED显示器,画出线路图,并说明工作过程。

串口方式0输出MOV SCON,#0MOV A,#0AAHMOV SBUF,A;输出55HJNB T1,$CLR T1LJMP $ENDDAT EQU P1.0CLK EQU P1.1MOV A,#55HSETB CLKMOV R7,#8NEXT:RRC AMOV DAT,CCLR CLKSETB CLKDJNZ R7,NEXTLJMP $END七、实验现象硬件连接完成后,运行程序。

相关主题