收藏 分销(赏)

学习情境三-密码锁设计.doc

上传人:仙人****88 文档编号:6885595 上传时间:2024-12-23 格式:DOC 页数:60 大小:1.88MB 下载积分:10 金币
下载 相关 举报
学习情境三-密码锁设计.doc_第1页
第1页 / 共60页
学习情境三-密码锁设计.doc_第2页
第2页 / 共60页


点击查看更多>>
资源描述
学习情境三 密码锁设计 学习目标: Ø 了解并行通信的基本概念; Ø 掌握键盘的基本组成及工作原理; Ø 掌握七段LED显示器的基本组成及工作原理。 技能目标: Ø 能够正确在AT89S52外连接键盘和显示设备。 Ø 能够灵活应用典型键盘、显示电路构成各种实际电路。 Ø 能够利用AT89S52设计制作一位密码锁实用电路。 Ø 能够利用AT89S52设计制作多位密码锁的实用电路。 在数据通信与计算机领域中,有两种基本的数据传送方式,即串行数据传送方式与并行数据传送方式,也称串行通信与并行通信。串行通信将在以后介绍。 数据在多条并行传输线上各位同时传送的方式,称为并行传送方式,多用于近距离传送,如图3.1(a)所示;而数据在单条一位宽的传输线上按时间先后一位一位地传送,称为串行数据传送方式,常用于远距离传送,如图3.1(b)所示。 在单片机应用系统中,通常都有操作面板。操作人员通过操作面板实现与应用系统的信息交流,包括下达命令、修改程序和参数、干预应用系统的状态、显示运行状态和运行结果。 本学习环境主要介绍人机对话通道中常用的输入设备――键盘,输出设备――LED显示器。 低位 8位数据 图3.1 (a)并行通信方式 (b)串行通信方式 任务一 字符显示 第一部分 项目要求 设计一个八位显示电路,要求8只数码管从左到右顺序显示1、2、3、4、5、6、7、8共8个字符;将内存10H、11H、12H、13H中存放的压缩BCD码显示出来。 第二部分 相关知识 在单片机系统中,常用的显示器有:发光二极管显示器,简称LED (Light Emitting Diode);液晶显示器,简称LCD (Liquid Crystal Display);荧光管显示器。三种显示器中,以荧光管显示器亮度最高,发光二极管次之,而液晶显示器最弱,为被动显示器,必须有外光源。 一、发光二极管及LED显示器 发光二极管是由半导体发光材料做成的PN结,只要在发光二极管两端通过正向电流5-20mA就能达到正常发光。LED的发光颜色通常有红、绿、黄、白,其外形和电气图形符号如图3.2所示。单个LED通常是通过亮、灭来指示系统运行状态和用快速闪烁来报警。 通常所说的LED显示器由7个发光二极管组成,因此也称之为七段LED显示器,其排列形状如图3.3(a)所示。显示器中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。 图3.2发光二极管 LED显示器中的发光二极管共有两种连接方法: 1.共阳极接法 把发光二极管的阳极连在一起构成公共阳极,图3.3(b)所示。使用时公共阳极接+5V。阴极端输入低电平的段发光二极管导通点亮,输入高电平的则不点亮。 2.共阴极接法 把发光二极管的阴极连在一起构成公共阴极,图3.3(c)所示。使用时会共阴极接地,阳极端输入高电平的段发光二极管导通点亮,输入低电平的则不点亮。 图3.3 七段LED显示器 用LED显示器显示十六进制数的字型代码如表3-1所示: 表3-1 十六进制数的字型代码 字型 共阳极代码 共阴极代码 字型 共阳极代码 共阴极代码 0 C0H 3FH 9 90H 6FH 1 F9H 06H A 88H 77H 2 A4H 5BH B 83H 7CH 3 B0H 4FH C C6H 39H 4 99H 66H D A1H 5EH 5 92H 6DH E 86H 79H 6 82H 7DH F 8EH 71H 7 F8H 07H 灭 FFH 00H 8 80H 7FH 二、七段LED显示器的工作原理 七段LED显示器需要由驱动电路驱动。在七段LED显示器中,共阳极显示器,用低电平驱动;共阴极显示器,用高电平驱动。点亮显示器有静态和动态两种方式。 1.静态显示器 所谓静态显示,就是当显示器显示某一字符时,相应段的发光二极管恒定地导通或截止。图3.4 为一个四位静态LED显示器电路。该电路各位可独立显示,只要在该位的段选线上送相应的段码,该位就能保持响应的显示字符。这种显示方法的每一位都需要有一个8位输出口控制。 静态显示器的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU的时间,提高了CPU的工作效率;缺点是位数较多时,硬件开销太大。 图3.4 四位静态LED显示电路 例如在AT89S52的串行口上扩展多片串行输人并行输出的移位寄存器74LS164作为静态显示器接口,图3.5给出了8位共阳极静态显示器的逻辑接口。设要显示的数据放在78H-7FH中。 图3.5 串行扩展静态显示电路 静态显示程序如下: DISPLAY:MOV R7,#8;8位显示计数器 MOV R0,#78H;78H-7FH为显示器缓冲区 MOV DPTR,#TABLE;显示字形码表首地址 LOOP1:MOV A,@R0;取出要显示的数据 INC R0;指向缓冲区下一地址 MOVC A,@A+DPTR;取出显示字形码 MOV SBUF,A;送出该LED上的字形码 LOOP2:JNB TI,LOOP2;输出完否? CLR TI;完,清发送中断标志 DJNZ R7,LOOP1;8位显示未完,继续 RET TABLE:DB 0C0H,0F9H,0A4H,0BH,99H ;0,1,2,3,4 DB 92H,82H,0FBH,80H,90H ;5,6,7,8,9 DB 88H,83H,0C6H,0A1H,86H ;A, b,C, d,E DB 8EH,0FFH ;F,暗 2.动态显示器 图3.6 四位动态LED显示电路 所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。在同一时刻只有一位显示器在工作(点亮),利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。 显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。 图3.6为一个4位动态LED显示器电路。其中段选线占用一个I/O口,控制各位LED显示器所显示的字形(称为段码或字形口);位选线需要一个I/O口,控制显示器公共极电位(称为位码或字位口)。 动态显示器的优点是节省硬件资源,成本较低。但在控制系统运行过程中,要保证显示器正常显示,CPU必需每隔一段时间执行一次显示子程序,占用CPU大量时间,降低了CPU的工作效率,同时显示亮度较静态显示器低。 第三部分 项目实施 一、项目实施分析 (一)硬件电路 图3.7是一个动态扫描方式驱动的8只数码管显示电路,要求8只数码管从左到右顺序显示1、2、3、4、5、6、7、8共8个字符。 图3.7 八位LED显示电路 电路选用共阳极数码管。 AT89S52的P2口为位驱动口,当输出为“0”时对应的位被选中,显示字符。P2口的8个位中,任意时刻只能有一个输出为“0”,其他均为“1”。P2口输出与对应显示位的关系见表3-2。 表3-2 P2口输出与对应显示位的关系 端口 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 位码 01H 02H 04H 08H 10H 20H 40H 80H 数码管 L1 L2 L3 L4 L5 L6 L7 L8 AT89S52的P1口为段驱动口,当输出为“0”,对应的段“灭”;当输出为“1”时,对应的段“亮”。P1口与数码管笔画的对应关系见表3-3。 表3-3 P1口与数码管笔画的对应关系 A B C E D F G DP P1.0 P1.1 P1.2 P1.3 P1 P15 P1.6 P1.7 (二)程序清单 程序清单如下: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,#50H MOV 30H,#01H MOV 31H,#02H MOV 32H,#03H MOV 33H,#04H MOV 34H,#05H MOV 35H,#06H MOV 36H,#07H MOV 37H,#08H LP7: LCALL DIR SJMP LP7 DIR: MOV R0,#30H ;显示数据缓冲区首地址送R0 MOV R1,#7FH ;使显示器最左边位亮 MOV A,R1 LPl: MOV P2,A ;扫描值送P2口 MOV A,@R0 ;取欲显示数据 ADD A,#0EH ;加上查表指令地址偏移量 MOVC A,@A+PC ;取出段码 MOV P1,A ;送出显示 ACALL DELAY ;调用延时子程序 INC R0 ;指向下一个显示缓冲区地址 MOV A,R1 JNB ACC.0,LP2 ;扫描到第八个显示器否? RR A ;未到,扫描码右移1位 MOV R1,A SJMP LP1 LP2:RET DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;0,1,2,3,4,5 DB 82H, 0F8H, 80H, 90H, 0C8H,83H ;6,7,8,9,A,B DB 0C6H,0A1H,86H, 8EH ;C,D,E,F DELAY:MOV R7,#01H ;延时子程序 DL1:MOV R6,#0FFH DL2:DJNZ R6,DL2 DJNZ R7,DLl RET 编程方法二: ;12345678数码管循环点亮 X_H DATA 20H ;定义显示缓存起始地址20H X_D EQU P1 ;定义段口P1 X_W EQU P2 ;定义位口P2 NUM EQU 8 ;定义显示数字个数 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R0, #X_H MOV R1, #NUM MOV A, #01H ACALL FUZHI ;调显示缓存单元赋值 DISP: MOV R7, #NUM ;显示初始化 MOV R6, #7FH ;显示起始位码 MOV DPTR, #BIAO MOV R0, #20H DISP_D:MOV A, @R0 ;显示 MOVC A, @A+DPTR MOV X_D, A MOV X_W, R6 ACALL DE ;调1ms延时 INC R0 MOV A, R6 RR A MOV R6, A DJNZ R7, DISP_D SJMP DISP BIAO: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DE: MOV R1, #01 ;1ms延时 DE1: MOV R2, #0FAH DJNZ R2,$ DJNZ R1,DE1 RET FUZHI: MOV @R0, A ;显示缓存单元赋值子程 INC A INC R0 DJNZ R1, FUZHI RET END 二、项目实施要求 (一)项目设备要求 1.装有Keil C51 μVision2集成开发环境、编程器软件、在线下载软件的计算机。 2.单片机最小系统开发平台。 (二)项目实施步骤 1.断电,连接计算机、实验板 2.连接好下载线,接好电源。 3.进入Keil开发环境,在指定路径下建一个项目名称。 4.在指定的路径下建一个文件名。 5.将该文件添加到项目中,保存该项目。 6.在编辑窗口输入程序。 7.汇编、链接无误后将文件下载到目标电路。 8.设断点或全速运行程序,观察能否将存储器中的数据显示出来,否则检查程序或连线。 9.记录实验程序内容、调试过程。 10.改变延时程序的时间,观察延时时间对显示的亮度的影响,确定最佳延时时间。 11.根据参考程序,画出显示子程序的流程图。 12.修改程序,从右到左显示0—7,请编程,并观察现象。 13.将内存10H、11H、12H、13H中存放的压缩BCD码显示出来,请编程。 三、成绩评定 1.在计算机中输入并调试程序,记录调试中出现的问题。10分 2.使用编程器将程序文件传送到用户板中,运行程序,观察结果。20分 3.根据参考程序,画出显示子程序的流程图。 10分 4.修改程序,从右到左显示0—7。 30分 5.将内存10H、11H、12H、13H中存放的压缩BCD码显示出来。 30分 小题分值 (1) 10分 (2) 20分 (3) 10分 (4) 30分 (5) 30分 总分 小题得分 任务二 矩阵式键盘电路设计 第一部分 项目要求 设计一个4×4矩阵键盘与AT89S52接口电路。要求用查询法读取行列键盘键码,并将键码存入内部RAM 32H单元。 第二部分 相关知识 键盘是由若干个按键组成的开关矩阵,它是最简单的单片机输入设备,操作员可以通过键盘输入数据或命令,实现简单的人机通信。若键盘闭合键的识别是由专用硬件实现的,则称为编码键盘;若用软件实现闭合键识别的,则称为非编码键盘。非编码键盘又分为行列式和独立式两种。本项目主要讨论,非编码键盘的工作原理、接口技术和程序设计。 键盘接口应有以下功能: ü 键扫描功能,即检测是否有键闭合; ü 键识别功能,确定被闭合键所在的行列位置; ü 产生相应的键值功能; ü 消除按键抖动功能。 一、键盘工作原理 图3.8 键闭合和断开时的电压抖动 1.按键去抖动 常用键盘的按键是一个机械开关结构,被按下时,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动,如图3.8所示。抖动时间长短与按键的结构和机械特性有关,一般为5~10 ms。而按健的闭合时间和操作者的按键动作有关,大约为十分之几秒到几秒不等。 去抖动有硬件和软件两种方法。硬件方法就是在键盘中附加去抖动电路,从根本上消除抖动产生的可能性,图3.9为利用双稳电路的去抖动电路;而软件方法则是采用时间延迟以躲过抖动(大约延时20-30ms即可),待行线上状态确定之后,再进行状态输入。一般为简单起见多采用软件方法。 图3.9 去抖动电路 2.按键连接方式 键盘和CPU的连接方式可分为独立式键盘和矩阵式键盘。 ① 独立式键盘 独立式是一组相互独立的按健,这些按键可直接与单片机的I/O口连接,即每个按键独占一条口线,接口简单。独立式键盘因占用单片机的硬件资源较多,只适合按键较少的场合。 图3.10(a)是一个具有4个按键的独立式键盘,每一个按键的一端都接地,另一端接AT89S52的I/O口。从图中可以看出,独立式键盘每一按键都需要一根I/O线,占用AT89S52的硬件资源较多。 图3.10 独立式键盘和矩阵式键盘 ② 矩阵式键盘 也称行列式键盘,因为键的数目较多,所以按键按行列组成矩阵。图3.10(b)是由4根行线和4根列线组成的16个按键的键盘。与独立式键盘相比,16个按键只占用了8个I/O口线,因此适用于按键较多的场合。 矩阵式键盘接口处理的内容: A.键扫描 键盘上的键按行列组成矩阵,在行列的交点上都对应有一个键。为判定有无键被按下(闭合健)以及被按键的位置,可使用扫描法说明查找闭合健的方法。 首先是判定有没有键被按下。如图3.11所示,键盘的行线一端经电阻接+5V 电源,另一端接单片机的输入口线。各列线的一端接单片机的输出口线,另一端悬空。为判定有没有键被按下,可先经输出口向所有列线输出低电平,然后再输入各行线状态。若行线状态皆为高电平,则表明无健按下;若行线状态中有低电平,则表明有健被按下。 图3.11 键扫描示意图 然后再判定被按键的位置。判定键位置的扫描是这样进行的:先使输出口输出0FEH,即Y0为低电平“0”,其它列线为高电平“1”,然后输入行线状态,测试行线状态中是否有低电平的。如果没有低电平,再使输出口输出0FDH,即Y1为“0”,其它列线为“1”,再测试行线状态。以次类推,直检测到行线中有低电平,则闭合健找到,通过此次扫描的列线值和行线值就可以知道闭合健的位置。 B.去抖动 判断有键按下后,延时一段时间,再判断键盘状态,如果仍为有键按下状态,则认为有键按下,否则按抖动处理。 C.确定按键的键值 如图3.12所示,以键的排列顺序安排健号,则键值的计算公式为: 键值=行首号+列号 图3.12 键值表 D.判断闭合键是否释放 计算键值之后,等待键释放是为了保证键的一次闭合仅进行一次处理。 二、键盘接口的控制方式 在单片机的运行过程中,扫描键盘只是CPU的工作任务之一,何时执行键盘扫描和处理,可以有两种方式:程序扫描方式和中断扫描方式。程序扫描是指CPU空闲时执行键盘扫描,或每隔一定时间执行一次键盘扫描,定时可由单片机的定时器完成。中断扫描是指,当有键闭合时才向CPU发出中断请求,中断响应后执行键盘扫描程序。 89S52 三、应用举例 图3.13 硬件连接示意图 【例3.1】硬件连接如图3.13所示,编程完成如下功能:按键按下后,对应的小灯亮,再按下,对应的小灯灭。 参考程序方法一: KEY:MOV P1, #0FFH ;灯全灭 MOV P2 , #0FFH ;P2口为输入状态 MOV A, P2 ;读键值,键按下相应位为0 CPL A ;取反,键按下相应位为1 ANL A, #0FH ;屏蔽高4位,保留低4位 JZ LRET ;全零,无键按下,返回 LCALL DEL20 ;非全零,有键按下,延时,软件去抖 MOV A, P2 ;重读键值 CPL A ANL A, #0FH JZ LRET ;全零,无键按下,返回 JB ACC.0, K0 ;K0按下,转K0程序 JB ACC.1, K1 ;K1按下,转K1程序 JB ACC.2, K2 ;K2按下,转K2程序 JB ACC.3, K3 ;K3按下,转K3程序 SJMP LRET K0: CPL P1.0 ;P1.0状态取反,小灯LED0亮变灭,灭变亮 SJMP LRET K1: CPL P1.1 ;P1.1状态取反,小灯LED1亮变灭,灭变亮 SJMP LRET K2: CPL P1.2 ;P1.2状态取反,小灯LED2亮变灭,灭变亮 SJMP LRET K3: CPL P1.3 ;P1.3状态取反,小灯LED3亮变灭,灭变亮 LRET:RET DEL20:MOV R7, #27H ;延时20ms左右 LOOP1:MOV R6, #0FFH LOOP2:DJNZ R6, LOOP1 DJNZ R7, LOOP2 RET 参考程序方法二: 硬件电路,单片机实验板的P2.4- P2.7接P2口P2-1的5-8,P2.0- P2.3接P2-3的1-4,KEY接P3.3。 SW1 BIT P2.0 SW2 BIT P2.1 SW3 BIT P2.2 SW4 BIT P2.3 KEY BIT P3.3 ORG 0000H LJMP START ORG 0100H START: MOV SP ,#60H MOV P1,#0FFH MOV P2,#0FFH MOV P0,#0FFH MOV P3,#0FFH CLR KEY WAIT: JB KEY, $ JNB SW1,SW11 JNB SW2,SW22 JNB SW3,SW33 JNB SW4,SW44 JMP WAIT SW11: MOV P1, #0F9H MOV P2, #7FH LCALL DELAY JNB SW1, $ JMP WAIT SW22: MOV P1, #0A4H MOV P2, #0BFH LCALL DELAY JNB SW2, $ JMP WAIT SW33: MOV P1, #0B0H MOV P2, #0DFH LCALL DELAY JNB SW3, $ JMP WAIT SW44: MOV P1, #99H MOV P2, #0EFH LCALL DELAY JNB SW4, $ JMP WAIT DELAY: MOV R7,#30 D1: MOV R6,#20 D2: MOV R5,#248 DJNZ R5, $ DJNZ R6, D2 DJNZ R7, D1 RET END 第三部分 项目实施 一、项目实施分析 (一)硬件电路 见图3.14,是一4×4矩阵键盘。图中P1.4~P1.7用于控制行线,P1.0~P1.3用于控制列线。行、列线通过上拉电阻接+5V,没有键按下时,被钳在高电平状态。通过发送扫描字确定键码,具体方法如下: (1) 由列线输出0,然后读入P1口的值存入内部RAM 30H单元。 (2) 由行线输出0,然后读入P1口的值存入内部RAM 31H单元。 (3) 把30H的低4位与31H的高4位的值相加存入累加器A。 (4) 最后判断累加器A的值,如果累加器A的数据全为1,说明无键按下,否则说明有键按下,且累加器A的数据就是被按下键的键值(程序中对累加器A取反,目的是用 JNZ指令判断是否有键按下)。 图3.14 键盘矩阵电路 AT89S52 +5V P1.0 5.1 k W ×4 P1.7 P1.6 P1.5 P1.4 +5V 5.1 k W ×4 P1.3 P1.2 P1.1 图4.14 矩阵键盘与AT89S52接口连接图 (二)参考程序 键盘扫描流程图见图3.15。 图3.15 键盘扫描流程 参考程序方法一: ORG 0000H BOAD:LCALL BOADD JNZ BOAD1 ;无键按下转BOAD LCALL DELAY ;调延时子程序 AJMP BOAD ;继续扫描键盘 BOAD1:LCALL DELAY ;消除键抖动(延时子程序略) LCALL BOADD ;确认是否有键按下 JNZ BOAD2 LCALL DELAY SJMP BOAD ;转键扫描 BOAD2:CPL A MOV 32H,A ;取键值 BOAD3:LCALL DELAY LCALL BOADD JNZ BOAD3 ;等待键松开 B2: RET ;返回 ;获取键值子程序 BOADD:MOV P1,#0FH ;置行线为0 MOV A,P1 MOV 30H,A MOV P1,#0F0H ;置列线为0 MOV A,P1 MOV 31H,A ANL 30H,#0FH ;取列值 MOV A,30H ANL 31H,#0F0H ;取行值 ADD A,31H ;行值加列值 CPL A ;A全0无键按下 RET 键盘扫描程序的运行结果是把闭合键的键码放在32单元中。接下来的程序是根据键码进行程序转移,转去执行该键对应的操作。 参考程序方法二: 硬件电路:P1口接段码,P2口接数码管的位,P3.0---P3.3接4行,P3.4—P3.7接4列 ORG 0000H;矩阵键盘程序 PORT EQU P3; 键盘接口P3 XH DATA 20H X DATA 32H;放键号 ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV SP, #60H SCAN:ACALL DIR;调显示 ACALL PYE;判有无键 JC SCAN;无键转 ACALL KEY;有键,调键盘扫描子程序 JC SCAN;无键返回 ACALL LF;确有键,左移 MOV 20H, A;送新值 SJMP SCAN;返开始 LF:MOV 23H, 22H MOV 22H, 21H MOV 21H, 20H RET KEY: ACALL PYE;判断是否有键按下子程序 JNC WHICH;有键转拼装 KKK1: RET PYE:MOV PORT, #0FH;列线P1.4-P1.7输出0,同时P1.0-P1.3写1 MOV A, PORT;输入行线数据 CJNE A, #0FH, PRESS;行线不全为0说明有键按下转 SJMP PN; PRESS:ACALL DELAY;有键按下延时去抖 MOV PORT, #0FH;再次使列线输出0 MOV A, PORT; CJNE A, #0FH, PY;确有键按下,转 SJMP PN; PY: CLR C;有键标志 RET PN: SETB C;无键标志 RET WHICH:MOV R7, #4;设置列数扫描次数 MOV R6, #0; MOV DPTR, #TABS;指向列扫描码表 GETS:MOV A, R6; MOVC A, @A+DPTR;查表求列扫描码 MOV PORT, A;输出列线扫描码,使某一列输出为0 MOV A, PORT;输入行线状态 JNB ACC.0, L0;0行有键按下,转L0 JNB ACC.1, L1;1行有键按下,转L1 JNB ACC.2, L2;2行有键按下,转L2 JNB ACC.3, L3;3行有键按下,转L3 INC R6;本列无键按下,列号加1 DJNZ R7, GETS;未扫描完所有列,转继续扫描 SETB C RET L0:MOV A,#0;0行键有键按下,行号0送A SJMP GEN;转求键号 L1:MOV A,#1;1行键有键按下,行号1送A SJMP GEN L2:MOV A,#2;2行键有键按下,行号2送A SJMP GEN L3: MOV A, #3;3行键有键按下,行号3送A GEN: RL A; RL A;行号*4 ADD A, R6;计算键号=行号*4+列号 PUSH ACC L4: ACALL DELAY ACALL PYE;判断是否有键按下子程序 JNC L4;c=0有键转 CLR C POP ACC RET TABS: DB 7FH,0BFH,0DFH,0EFH DIR: MOV R0, #XH MOV R1, #08H MOV A, R1 LP: MOV P2, A MOV A, @R0 ACALL LP3 MOV P1, A ACALL DELAY INC R0 MOV A, R1 JB ACC.7, LOOP4 RR A MOV R1, A SJMP LP DELAY:MOV R7, #01H L44: MOV R6, #0FAH L22: DJNZ R6, L22 DJNZ R7, L44 RET LOOP4:RET LP3: ADD A, #01H MOVC A, @A+PC RET DB 0C0H,0F9H,0A4H,0B0H,99H,092H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH END 二、项目实施要求 (一)项目设备要求 1.装有Keil C51 μVision2集成开发环境、编程器软件、在线下载软件的计算机。 2.单片机最小系统开发平台。 (二)项目实施步骤 1.断电,连接计算机、实验板 2.给计算机、实验板通电。 3.打开计算机,进入Keil C51开发环境。 4.正确设置通信口,连接好开发环境和实验板。 5.新建一个项目,并将该项目建立在指定的文件下。 6.新建一个文件,存储器的路径与刚才建的项目相同。 7.将新建的文件添加到项目中,保存项目。 8.在编辑窗口输入程序,对程序进行汇编、生成和下载。 9.全速运行程序,观察内部RAM 32H单元的键值数据。 10.随机按下任一按键,观察RAM 32单元的情况。 三、成绩评定 1.熟悉用户板,电路如图4.8所示。10分 2.在计算机中输入并调试程序,记录调试中出现的问题。 10分 3.使用编程器将程序文件传送到用户
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服