单片机实验报告.docx_第1页
单片机实验报告.docx_第2页
单片机实验报告.docx_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一:8255输入、输出实验一.实验要求 编写程序,使用8255可编程并行口芯片,来检测八位拨动开关的状态,并控制八位发光二极管。使得八位发光二极管的亮灭变化与八位拨动开关的状态相一致。实验中用8255PB口作输入,PC口做输出。二.实验目的 了解8255芯片结构及编程方法。三.实验电路及连线8255的PB0PB7(PB口)接至八位拨动开关K0K7。将PC0PC7(PC口)接至八位发光二极管L0 L7。CS8255接F228。四.实验说明 可编程通用接口芯片8255A有三个八位的并行I/O口,请用户仔细阅读有关书籍掌握其特点和各种用法。由于8255的A1、A2脚分别接至地址线的A0、A1。所以相对应8255各口/寄存器的地址分配如下:PA口:F228H; PB口:F229H;PC口:F22AH;控制寄存器地址:F22BH。本示例程序中使用PB口作输入,检测八位拨动开关的状态;使用PC口作输出,控制八个发光二极管的亮灭。五.实验程序及框图 实验示例程序见8255.ASM。 实验示例程序流程框图如下:开始设置8255工作状态PB口读入八位开关量PC口输出至八位二极管程序代码:;FOR EAT598;-D8255 EQU 0F22BH ;8255命令口地址D8255A EQU 0F228H ;8255 PA口地址D8255B EQU 0F229H ;8255 PB口地址D8255C EQU 0F22AH ;8255 PC口地址;- ORG 0000H LJMP START ORG 0100HSTART: LCALL DELAY ;延时 MOV DPTR,#D8255 MOV A,#82H ;置8255状态 ;方式0,PA,PC口输出,PB口输入 MOVX DPTR,AROTATE: MOV DPTR,#D8255B MOVX A,DPTR ;读开关状态 MOV DPTR,#D8255C MOVX DPTR,A ;点亮对应的LED SJMP ROTATEDELAY: MOV R0,#0H ;延时子程序DELAY1: MOV R1,#0H DJNZ R1,$ DJNZ R0,DELAY1 RET END实验二:扫描键盘、显示实验一.实验要求 利用8255可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在由PA口控制的七段数码管上。8255PB口做键盘输入线,PC口作扫描线。二.实验目的 1.掌握8255编程方法。 2.掌握扫描键盘和显示的编程方法。三.实验电路及连线CS8255接F228H,则命令字地址为F22BH,PA口地址为F228H,PB口地址为F229H,PC口地址为F22AH。模块中的十个短路套都套在8155/8255侧。四.实验说明 在PB口与PC口组成的64点阵列上,把按键接在不同的点上,将得到不同的键码,本实验采用82的阵列,共可按16个键。显示部分由PA控制,由7407驱动8位数码管显示。五.实验框图实验示例程序见8255_key.ASM。实验示例程序流程框图如下:8255_KEY.ASM主程序框图 读键显示部分框图程序代码:;FOR EAT598-HD-V3.0;-C8255 EQU 0F22BH ;8255命令口地址P8255A EQU 0F228H ;8255 PA口地址P8255B EQU 0F229H ;8255 PB口地址P8255C EQU 0F22AH ;8255 PC口地址KEYVAL EQU 30H ;读到的键码FLAG EQU 40H;有键标志;- ORG 0000H SJMP START ORG 0060HSTART: MOV SP,#60H MOV FLAG,#00H ;按键标志初始值:00无键,FF有键 MOV R2,#0FEH;位码初始值 LCALL DELAY MOV KEYVAL,#00H ;置显示初始值 MOV DPTR,#C8255 ; MOV A,#82H ;PB口输入,PA,PC口输出 MOV A,#90H ;PC口输出,PA输入,PB口输出 MOVX DPTR,A MOV DPTR,#P8255C MOV A,#00H MOVX DPTR,A KB_DIS: LCALL RD_KB ;读键子程序 LCALL DISP ;显示子程序 SJMP KB_DIS ;循环扫描;- DISP: MOV A,FLAGJZ DISP_END ;无键转DISP_END;有键显示 MOV DPTR,#C8255 MOV A,#89H ;PC口输入,PA,PB口输出 MOVX DPTR,A ;MOV DPTR,#P8255A ;显示键值MOV DPTR,#P8255A ;写位码MOV A,R2MOVX DPTR,A MOV DPTR,#P8255B ;显示键值 MOV A,KEYVAL MOVX DPTR,A LCALL DELAY1 ;显示延时 LCALL DELAY1 MOV A,R2 ;下一位SETB CRLC AMOV R2,ACJNE A,#0FFH,DISP_END;八位轮回MOV R2,#0FEH ;重置位码初值DISP_END: RET;- ;读取键盘子程序RD_KB: MOV DPTR,#C8255 MOV A,#90H ;PC口输出,PA输入,PB口输出 MOVX DPTR,A MOV A,#02H ;键盘扫描第一行 MOV DPTR,#P8255C MOVX DPTR,A ; MOV DPTR,#P8255B MOV DPTR,#P8255A MOVX A,DPTR CJNE A,#0FFH,KEY_L0 ;判键是否按下,有键转KEY_L0SJMP KEY_L1 ;无键转第二行 KEY_L0: LCALL DELAY22 ;延时消抖 ; MOV DPTR,#P8255B ;读键值 MOV DPTR,#P8255A MOVX A,DPTR MOV R1,#00H CJNE A,#0FFH,KEYCAL ;计算键值 KEY_L1: MOV A,#01H ;扫描第二行 MOV DPTR,#P8255C MOVX DPTR,A ; MOV DPTR,#P8255B ;读键值 MOV DPTR,#P8255A MOVX A,DPTR CJNE A,#0FFH,J_KEY_L1;判键是否按下,有键转J_KEY_L1 SJMP NOKEY ;无键转结束J_KEY_L1: LCALL DELAY22 ;延时消抖 ; MOV DPTR,#P8255B ;读键值 MOV DPTR,#P8255A MOVX A,DPTR MOV R1,#08H CJNE A,#0FFH,KEYCAL ;计算键值 SJMP NOKEY ;无键按下 KEYCAL: ;计算键码 MOV R0,#08HSHIFT: RRC A JNC CALC INC R1 DJNZ R0,SHIFTCALC: ;换算显示码 MOV DPTR,#LEDSEG MOV A,R1 MOVC A,A+DPTR MOV KEYVAL,A SJMP KEYWAITNOKEY: MOV FLAG,#00H SJMP KEYEXITKEYWAIT:;MOV DPTR,#P8255B;等待键释放 MOV FLAG,#0FFH MOV DPTR,#P8255A MOVX A,DPTR CJNE A,#0FFH,KEYWAIT KEYEXIT:RET ;- DELAY: MOV R0,#0H ;延时20MS子程序DELAY0: MOV R1,#27H DJNZ R1,$ DJNZ R0,DELAY1 RET;- DELAY1: MOV R0,#0H ;延时DELAY11: MOV R1,#00H DJNZ R1,$ DJNZ R0,DELAY11 RET ;- DELAY2: MOV R0,#0H ;延时DELAY22:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论