8051单片机初学实验教程3

上传人:第*** 文档编号:34242191 上传时间:2018-02-22 格式:DOC 页数:26 大小:363KB
返回 下载 相关 举报
8051单片机初学实验教程3_第1页
第1页 / 共26页
8051单片机初学实验教程3_第2页
第2页 / 共26页
8051单片机初学实验教程3_第3页
第3页 / 共26页
8051单片机初学实验教程3_第4页
第4页 / 共26页
8051单片机初学实验教程3_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《8051单片机初学实验教程3》由会员分享,可在线阅读,更多相关《8051单片机初学实验教程3(26页珍藏版)》请在金锄头文库上搜索。

1、实验九 8255 扫描键盘、显示实验一.实验要求利用 8255 可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在由 8279 控制的七段数码管上。8255PA 口做键盘输入线,PB 口作扫描线。二.实验目的1.掌握 8255 编程方法。2.掌握扫描键盘和显示的编程方法。三.实验电路及连线CS8255 接 8500H,则命令字地址为 8506H,PA 口地址为 8500H,PB 口地址为8502H,PC 口地址为 8504H。CS8279 接 8700H,则 8279 的状态口地址为 8701H; 8279 的数据口地址为 8700H;模块中的十个短路套都套在 8255 侧。四.实验说明

2、在 PA 口与 PB 口组成的 64 点阵列上,把按键接在不同的点上,将得到不同的键码,本实验采用 82 的阵列,共可按 16 个键。显示部分由 8279 控制,由 7407 驱动 8 位数码管显示。五.实验程序框图 主程序框图 读键显示部分框图六.实验程序:D8255 EQU 8506H ;8255 状态/数据口地址D8255A EQU 8500H ;8255 PA 口地址D8255B EQU 8502H ;8255 PB 口地址Z8279 EQU 8701H ;8279 状态口地址D8279 EQU 8700H ;8279 数据口地址DISPTR EQU 08H ;当前显示位置KEYVAL

3、 EQU 09H ;读到的键码ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL DELAY ;延时MOV DISPTR,#30H ;显示缓冲区头指针MOV DPTR,#D8255MOV A,#90H ;置 8255 状态;方式 0,PB,PC 口输出,PA 口输入MOVX DPTR,AMOV DPTR,#Z8279 ;置 8279 命令字MOV A,#0D3HMOVX DPTR,A ;清 LED 显示MOV A,#00HMOVX DPTR,AMOV A,#38HMOVX DPTR,AMOV A,#0D1HKB_DIS:LCALL RD_KB

4、;读键盘MOV A,#0FFHCJNE A,KEYVAL,DISBUF ;判读到键SJMP KB_DIS ;没有则继续读键DISBUF:LCALL DISP ;把键移入显存LCALL DELAY ;延时消抖LCALL DELAYSJMP KB_DISDISP: ;显存依次前移MOV R1,#31H ;在最后加入新键值MOVE:MOV A,R1DEC R1MOV R1,AINC R1INC R1CJNE R1,#38H,MOVEMOV 37H,KEYVALMOV KEYVAL,#0FFHMOV DPTR,#Z8279MOV A,#90HMOVX DPTR,AMOV R0,#08HMOV R1,#

5、30HMOV DPTR,#D8279LP: MOV A,R1MOVX DPTR,AINC R1DJNZ R0,LPRETRD_KB: ;键盘扫描MOV A,#02H ;扫描第一行MOV DPTR,#D8255BMOVX DPTR,AMOV DPTR,#D8255AMOVX A,DPTRMOV R1,#00HCJNE A,#0FFH,KEYCAL ;判键是否按下MOV A,#01H ;扫描第二行MOV DPTR,#D8255BMOVX DPTR,AMOV DPTR,#D8255AMOVX A,DPTRMOV R1,#08HCJNE A,#0FFH,KEYCALSJMP NOKEY ;无键按下KE

6、YCAL: ;计算键码MOV R0,#08HSHIFT:RRC AJNC CALCINC R1DJNZ R0,SHIFTCALC: ;换算显示码MOV DPTR,#DL_DATMOV A,R1MOVC A,A+DPTRMOV KEYVAL,ARETNOKEY: MOV KEYVAL,#0FFH ;返回无键标志RETDELAY: MOV R0,#0H ;延时子程序DELAY1: MOV R1,#0HDJNZ R1,$DJNZ R0,DELAY1RETDL_DAT: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7DB 7FH,6FH,77H,

7、7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,FEND实验十 8279 显示实验一.实验要求编制程序,利用 8279 及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。二.实验目的1掌握在 8031 系统中扩展 8279 键盘显示接口的方法。2掌握 8279 工作原理和编程方法。三.实验电路及连线CS8279 接 8700H。 模块中的十个短路套都套在 8279 侧。四.实验说明利用 8279 可实现对键盘/显示器的自动扫描,以减轻 CPU 负担,并具有显示稳定、程序简单、不会出现误动作等特点。本实验系统中 8279 的状态/命令口地址位 8701H;数

8、据口地址位 8700H。示例程序运行将显示8279 -,并等待按键输入,将键值显示在数码管上(只响应 0-F按键) 。五.实验程序框图 六.实验程序: Z8279 EQU 08701H ;8279 状态/命令口地址D8279 EQU 08700H ;8279 数据口地址LEDMOD EQU 10H ;右端输入 八位字符显示;外部译码键扫描方式,双键互锁LEDFEQ EQU 38H ;扫描速率LEDCLS EQU 0D1H ;清除LEDWR0 EQU 80H ;设定的将要写入的显示 RAM 地址ORG 0000HAJMP STARTORG 0040HSTART:MOV SP,#60HLCALL

9、INIT8279 ;初始化 8279WAIT: MOV DPTR,#Z8279MOVX A,DPTRANL A,#0FHJZ WAITMOV A,#40HMOVX DPTR,AMOV DPTR,#D8279MOVX A,DPTRANL A,#3FHMOV R4,#00HMOV R5,ALCALL DISLEDSJMP WAITINIT8279: ;8279 初始化子程序PUSH DPH ;保存现场PUSH DPLPUSH ACCLCALL DELAY ;延时MOV DPTR ,#Z8279MOV A,#LEDMOD ;置 8279 工作方式MOVX DPTR,AMOV A,#LEDFEQ ;置

10、键盘扫描速率MOVX DPTR,AMOV A,#LEDCLS ;清除 LED 显示MOVX DPTR,ALCALL DELAY ;延时MOV DPTR,#Z8279MOV A,#90HMOV DPTR,#D8279MOV A,#40HMOVX DPTR,AMOV A,#40HMOVX DPTR,AMOV A,#0HMOVX DPTR,AMOV A,#0HMOVX DPTR,AMOV A,#0EFHMOVX DPTR,AMOV A,#27HMOVX DPTR,AMOV A,#5BHMOVX DPTR,AMOV A,#7FHMOVX DPTR,APOP ACC ;恢复现场POP DPLPOP DP

11、HRET;显示字符子程序;输入: R4,位置 R5,值DISLED: PUSH DPH ;保存现场PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置显示起始地址ADD A,R4 ;加位置偏移量MOV DPTR,#Z8279MOVX DPTR,A ;设定显示位置MOV DPTR,#LEDSEG ;置显示常数表起始位置MOV A,R5MOVC A,A+DPTR ;查表MOV DPTR,#D8279MOVX DPTR,A ;显示数据POP ACC ;恢复现场POP DPLPOP DPHRETDELAY: ;延时子程序PUSH 0 ;保存现场PUSH 1MOV 0,#0HDELAY1:

12、MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 ;恢复现场POP 0RETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,FDB 6DH,02H,08H,00H,59H,0FH,76H ;U,-,_, ,I,O,P, END实验十一 8279 显示电子钟实验一.实验要求利用 8279 键盘显示接口电路,做成一个电子钟。该钟使用 T1 作 50ms 的定时中断。利用 8279 可实现对键盘/显示器的自动扫

13、描,以减轻 CPU 负担,其有显示稳定、程序简单、不会出现误动作等特点。本实验利用 8279 实现显示扫描自动化。8279 操作命令字较多,根据需要来灵活使用,通过本实验可初步熟悉使用方法。电子钟做成如下格式:XX XX XX 由左向右分别为: 时、分、秒。二.实验目的1.掌握在 8031 系统中扩展 8279 键盘显示接口的方法。2.掌握 8279 工作原理和编程方法。3.进一步掌握中断处理程序的编程方法。三.实验电路及连线CS8279 接 8700H。 模块中的十个短路套都套在 8279 侧。四.实验说明8279 通用接口芯片,根据应用需要可以在多种模式下工作,详见有关手册。五.实验程序框

14、图 ISLED 子程序框图 DISPLAY 子程序框图六.实验程序见:Z8279 EQU 08701H ;8279 状态/命令口地址D8279 EQU 08700H ;8279 数据口地址LEDMOD EQU 00H ;左边输入 八位字符显示;外部译码键扫描方式,双键互锁LEDFEQ EQU 2FH ;扫描速率LEDCLS EQU 0C1H ;清除显示 RAMLEDWR0 EQU 80H ;设定的将要写入的显示 RAM 地址ORG 0000HAJMP STARTORG 001BH ;INT T1 入口地址AJMP INT_T1ORG 0040HSTART:MOV SP,#60HLCALL IN

15、IT8279 ;初始化 8279MOV R3,#0H ;时MOV R2,#0H ;分MOV R1,#0H ;秒MOV R6,#0H ;标志MOV TMOD,#10HMOV TL1,#00H ;50 mS 的时间常数MOV TH1,#04CHMOV R0,#20SETB TR1SETB ET1SETB EA ;允许中断WAIT: CJNE R6,#0FFH,WAITLCALL DISPLAYMOV R6,#0SJMP WAITINIT8279: ;8279 初始化子程序PUSH DPH ;保存现场PUSH DPLPUSH ACCLCALL DELAY ;延时MOV DPTR ,#Z8279MOV

16、 A,#LEDMOD ;置 8279 工作方式MOVX DPTR,AMOV A,#LEDFEQ ;置键盘扫描速率MOVX DPTR,AMOV A,#LEDCLS ;清除 LED 显示MOVX DPTR,ALCALL DELAY ;延时POP ACC ;恢复现场POP DPLPOP DPHRET;显示字符子程序;输入: R4,位置 R5,值DISLED: PUSH DPH ;保存现场PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置显示起始地址ADD A,R4 ;加位置偏移量MOV DPTR,#Z8279MOVX DPTR,A ;设定显示位置MOV DPTR,#LEDSEG ;置显示常数表起始位置MOV A,R5MOVC A,A+DPTR ;查表MOV

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号