实验一键盘显示系统实验
1.实验目的:
(1)了解8155芯片的工作原理以及应用
(2)了解键盘、LED显示器的接口原理以及硬件电路结构
(3)掌握非编码键盘的编程方法以及程序设计
2.实验内容:
将程序输入实验系统后,在运行状态下,按下数字0~9之一,将在数码管上显示相应数字,按下A、B或C之一,将在数码管上显示“0”、“1”或“2”循环
3.程序框图:
4. 实验程序
下面程序有四部分组成,程序的地址码、机器码、程序所在行号(中间)和源程序。字型码表和关键字表需要同学们自己根据硬件连接填在相应位置。
地址码机器码 1 源程序
0000 2 org 0000h
0000 90FF20 3 mov dptr,#0ff20h
0003 7403 4 mov a,#03h ;方式字
0005 F0 5 movx @dptr,a ;A和B口为输出口,C口为输入口
0006 753012 6 mov 30h,#12h ;LED共阴极,开始显示“H”,地址偏移量
送30h
0009 1155 7 dsp: acall disp1 ;调显示子程序
000B 11FE 8 acall ds30ms
000D 1179 9 acall scan ;调用键盘扫描子程序
000F 60F8 10 jz dsp ;若无键按下,则dsp
0011 11B7 11 acall kcode ;若有键按下,则kcode
0013 B40A00 12 cjne a,#0ah,cont ;是否数字键,若是0-9则是,a-c
则否
0016 400F 13 cont: jc num ;若是,则num
0018 90001F 14 mov dptr,#jtab ;若否,则命令转移表始址送dptr 001B 9409 15 subb a,#09h; 形成jtab表地址偏移量
001D 23 16 rl a ;地址偏移量*2
001E 73 17 jmp @a+dptr ;转入相应功能键分支程序
001F 00 18 jtab: nop
0020 00 19 nop
0021 8008 20 sjmp k1 ;转入k1子程序
0023 800B 21 sjmp k2 ; 转入k2子程序
0025 800E 22 sjmp k3 ; 转入k3子程序
0027 F530 23 num: mov 30h,a
0029 80DE 24 sjmp dsp ; 返回dsp
002B 7531C0 25 k1: mov 31h,#0c0h ; "0" 循环显示
002E 800A 26 sjmp k4
0030 7531F9 27 k2: mov 31h,#0f9h ; "1" 循环显示
0033 8005 28 sjmp k4
0035 7531A4 29 k3: mov 31h,#0a4h ; "2" 循环显示
0038 8000 30 sjmp k4
003A 7B01 31 k4: mov r3,#01h ;显示最末一位,注意共阴极
003C EB 32 k5: mov a,r3
003D 90FF21 33 mov dptr,#0ff21h
0040 F0 34 movx @dptr,a ;字位送8155
0041 E531 35 mov a,31h
0043 90FF22 36 mov dptr,#0ff22h; 字型口
0046 F0 37 movx @dptr,a ;字型送8155的B口
0047 11EC 38 acall delay ;延时1ms***
0049 74FF 39 mov a,#0ffh
004B F0 40 movx @dptr,a ;关显示,在此使LED各位显示块都灭004C EB 41 mov a,r3
004D 23 42 rl a
004E FB 43 mov r3,a
004F BB40EA 44 cjne r3,#40h,k5 ;还没有循环玩一遍,则循环继续0052 80E6 45 sjmp k4 ;若循环完一遍则返回k4;又开始新一轮的循环
0054 22 46 ret
0055 90FF21 47 disp1: mov dptr,#0ff21h; 字位口A,注意led是共阴极接法0058 7401 48 mov a,#01h
005A F0 49 movx @dptr,a
005B 90FF22 50 mov dptr,#0ff22h;字型口
005E E530 51 mov a,30h
0060 2402 52 add a,#02h
0062 83 53 movc a,@a+pc
0063 F0 54 movx @dptr,a ;字型码输入,N1点亮
0064 22 55 ret ;下面是0到c的字型码
0065 ? 56 db ????
0066 ?
0067 ?
0068 ?
0069 ?
006A ? 57 db ????
006B ?
006C ?
006D ?
006E ?
006F ? 58 db ????
0070 ?
0071 ?
0072 ?
0073 ?
0074 ? 59 db ????
0075 ?
0076 ?
0077 ?
0078 ?
0079 74FF 60 scan: mov a,#0ffh; 关显示码a
007B 90FF22 61 mov dptr,#0ff22h; B口地址送dptr
007E F0 62 movx @dptr,a ;关led显示
007F 7400 63 mov a,#00h
0081 90FF21 64 mov dptr,#0ff21h ;A口地址,字位码
0084 F0 65 movx @dptr,a
0085 90FF23 66 mov dptr,#0ff23h ;C口地址
0088 E0 67 movx a,@dptr
0089 540F 68 anl a,#0fh; 取出列值送a
008B B40F02 69 cjne a,#0fh,next1;若有键按下,则next1
008E 8025 70 sjmp next4
0090 11F5 71 next1: acall ds10ms ;延时10ms
0092 7A00 72 mov r2,#00h ;窜键标志位清零
0094 79FE 73 mov r1,#0feh; 行扫描初值送a
0096 90FF21 74 loop: mov dptr,#0ff21h ;dptr指向A口
0099 E9 75 mov a,r1 ;行扫描值送a
009A F0 76 movx @dptr,a
009B 90FF23 77 mov dptr,#0ff23h
009E E0 78 movx a,@dptr ;读c口
009F 540F 79 anl a,#0fh ; 取出列值
00A1 B40F02 80 cjne a,#0fh,next2 ;若被按键在本行,则next2 00A4 8007 81 sjmp next3;若不在本行,则next3
00A6 0A 82 next2: inc r2 ;窜键标志位加1
00A7 BA010B 83 cjne r2,#01h,next4 ;若为窜键,则返回监控
00AA FC 84 mov r4,a ;列值送r4
00AB E9 85 mov a,r1
00AC FB 86 mov r3,a ; 行值送r3
00AD E9 87 next3: mov a,r1 ;行扫描值送a
00AE 23 88 rl a ;左移一位
00AF F9 89 mov r1,a ;送回r1
00B0 B47FE3 90 cjne a,#7fh,loop ;若未扫描完一遍,则loop 00B3 01B6 91 ajmp next5 ;若扫描完一遍,则next5
00B5 E4 92 next4: clr a
00B6 22 93 next5: ret
00B7 7900 94 kcode: mov r1,#00h
00B9 EB 95 mov a,r3
00BA D3 96 setb c
00BB 13 97 loop1: rrc a
00BC B4FF02 98 cjne a,#0ffh, next61
00BF 8003 99 sjmp next6
00C1 09 100 next61: inc r1
00C2 80F7 101 sjmp loop1
00C4 E9 102 next6: mov a,r1
00C5 C4 103 swap a
00C6 F9 104 mov r1,a
00C7 EC 105 mov a,r4
00C8 540F 106 anl a,#0fh
00CA 49 107 orl a,r1
00CB F5F0 108 mov b,a
00CD 9000DF 109 mov dptr,#ktab
00D0 7800 110 mov r0,#00h
00D2 E4 111 clr a
00D3 93 112 pepe: movc a,@a+dptr
00D4 B5F002 113 cjne a,b,next7
00D7 8004 114 sjmp resv
00D9 08 115 next7: inc r0
00DA E8 116 mov a,r0
00DB 80F6 117 sjmp pepe
00DD E8 118 resv: mov a,r0
00DE 22 119 ret;下面表格存放0到C的关键字
00DF ? 120 ktab: db ????
00E0 ?
00E1 ?
00E2 ?
00E3 ?
00E4 ?
00E5 ? 121 db ????
00E6 ?
00E7 ?
00E8 ?
00E9 ?
00EA ?
00EB ? 122 db ?;;表示0到C的关键字
00EC 7F02 123 delay: mov r7,#02h ;延时1ms
00EE 7EFF 124 delay1: mov r6,#0ffh
00F0 DEFE 125 delay2: djnz r6,delay2
00F2 DFFA 126 djnz r7,delay1
00F4 22 127 ret
00F5 7F14 128 ds10ms: mov r7,#14h ;延时10ms
00F7 7EFF 129 dely1: mov r6,#0ffh
00F9 DEF5 130 dely2: djnz r6,delay2
00FB DFF1 131 djnz r7,delay1
00FD 22 132 ret
00FE 7F3C 133 ds30ms: mov r7,#3ch ;延时30ms
0100 7EFF 134 dely3: mov r6,#0ffh
0102 DEEC 135 dely4: djnz r6,delay2
0104 DFE8 136 djnz r7,delay1
0106 22 137 ret
138 end
5. 实验步骤:
(1) 输入程序,本实验系统有两种输入方法. a)可以直接通过系统上的小键盘输入机器码
也可以采用b)把实验系统和PC机的串口直接相连,在PC机上通过专用软件编译程序,然后通过串行口把编译后的程序机器码下载到实验系统中.
(2) 输入程序首地址,按运行键EX,程序运行,观察此时显示结果.
(3) 按下0~9数字键,观察在数码管上显示的结果,按下A,B或C观察显示的结果.
(4) 在循环显示程序段中,调不同的时间延时子程序,观察显示效果
6. 习题
每人应该认真读懂程序,在源程序的基础上根据硬件电路判断其他按键对应的关键字,要求每个人应该至少在原来程序基础上再加一个按键,来显示相应的循环或其他功能.
7. 思考题?
(1) 思考动态显示的原理.
(2) 思考以上程序还有那些不完善的地方,如何改?
实验三键盘及LED显示实验 一、实验内容 利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED显示器显示出来。 二、实验目的及要求 (一)实验目的 通过该综合性实验,使学生掌握8255扩展键盘和显示器的接口方法及C51语言的编程方法,进一步掌握键盘扫描和LED显示器的工作原理;培养学生一定的动手能力。 (二)实验要求 1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。 2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。 三、实验条件及要求 计算机,C51语言编辑、调试仿真软件及实验箱50台套。 四、实验相关知识点 1.C51编程、调试。 2.扩展8255芯片的原理及应用。 3.键盘扫描原理及应用。 4.LED显示器原理及应用。
5.外部中断的应用。 五、实验说明 本实验仪提供了8位8段LED 显示器,学生可选用任一位LED 显示器,只要按地址输出相应的数据,就可以显示所需数码。 显示字形 1 2 3 4 5 6 7 8 9 A b C d E F 段 码 0xfc 0x60 0xda 0xf2 0x66 0xb6 0xbe 0xe0 0xfe 0xf6 0xee 0x3e 0x9c 0x7a 0x9e 0x8e 六、实验原理图 01e 1d 2dp 3 c 4g 56 b 78 9 a b c g d dp f 10a b f c g d e dp a 11GND3a b f c g d e dp 12 GND4 a b f c g d e dp GND1GND2DS29 LG4041AH 234 567 89A B C D E F e 1d 2dp 3 c 4g 56 b 78 9 a b c g d dp f 10a b f c g d e dp a 11GND3a b f c g d e dp 12 GND4 a b f c g d e dp GND1 GND2DS30 LG4041AH 1 2 3 4 5 6 7 8 JP4112345678 JP4712345678JP42 SEGA SEGB SEGC SEGD SEGE SEGG SEGF SEGH SEGA SEGB SEGC SEGD SEGE SEGG SEGF SEGH A C B 12345678 JP92D 5.1K R162 5.1K R163VCC VCC D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7 10 RD 5WR 36A09A18RESET 35CS 6 U36 8255 D0D1D2D3D4D5D6D7WR RD RST A0A1PC5PC6PC7 PC2PC3PC4PC0PC1CS 12345678JP56 12345678JP53 12345678 JP52 PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7 (8255 PB7)(8255 PB6)(8255 PB5)(8255 PB4)(8255 PB3)(8255 PB2)(8255 PB1)(8255 PB0) (8255 PC7)(8255 PC6)(8255 PC5)(8255 PC4)(8255 PC3)(8255 PC2)(8255 PC1)(8255 PC0) (8255 PA0) (8255 PA1) (8255 PA2) (8255 PA3) (8255 PA4) (8255 PA5) (8255 PA6) (PA7) I N T 0(P 3.2) I N T 0(P 3.3) 七、连线说明
CPU键盘扫描实验 电路图如下: 要求按下s1键时,p3口的8位LED正向流水点亮;按下s2键时,p3口的8位LED反向流水点亮;按下s3键时,p3口的8位LED 熄灭;按下s4键时,p3口的8位LED闪烁。 程序代码: #include
} /*软件消抖延时*/ void delay1() { unsigned char i,j; for(i=0;i<100;i++) for(j=0;j<100;j++) ; } /*正转*/ void zheng() { int i; for(i=0;i<8;i++) {P3=tab[i]; delay0();} } /*反转*/ void fan() { int i; for(i=7;i>=0;i--) {P3=tab[i]; delay0();} } /*关闭*/ void close() { P3=0xff; } /*闪烁*/ void shan() { P3=0xff; delay0(); P3=0x00; delay0();
键盘扫描显示实验原理及分析报告 一、实验目的-------------------------------------------------------------1 二、实验要求-------------------------------------------------------------1 三、实验器材-------------------------------------------------------------1 四、实验电路-------------------------------------------------------------2 五、实验说明-------------------------------------------------------------2 六、实验框图-------------------------------------------------------------2 七、实验程序-------------------------------------------------------------3 八、键盘及LED显示电路---------------------------------------------14 九、心得体会------------------------------------------------------------- 15 十、参考文献--------------------------------------------------------------15
信息工程学院实验报告 课程名称:微机原理与接口技术 实验项目名称:键盘扫描及显示实验 实验时间: 班级: 姓名: 学号: 一、实 验 目 的 1. 掌握 8254 的工作方式及应用编程。 2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备 了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理 将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行编号,记作 0~F ,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。 键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所示。 图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图 成 绩: 指导老师(签名):
图 7-2 键盘及数码管显示单元 6 组数码管电路图 图 7-3 8255 键盘扫描及数码管显示实验线路图 四、实验内容与步骤 1. 实验接线图如图 7-3 所示,按图连接实验线路图。
图 7-4 8255 键盘扫描及数码管显示实验实物连接图 2.运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。 图 7-5 8255 键盘扫描及数码管显示实验程序编辑界面 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 五、实验结果及分析: 1. 运行程序,按下按键,观察数码管的显示。
实验五键盘显示控制实验 一、实验目的 1、掌握8255控制键盘及显示电路的基本功能及编程方法 2、2、掌握一般键盘和显示电路的工作原理 二、实验内容 8255单元与键盘及数码管显示单元连接,扫描键盘输入,并将结果送数码管显示。键盘采用4*4键盘,每个数码管显示值可为0~F共16个数。具体实验内容为:将键盘警醒编号,记作0~F,当按下一个键时,将该键对应的编号在下一个数码管上显示出来。再按下一个键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。键盘与显示的字符的对应关系如下: 接线: PC7~PC0/8255 接行3~列0/4x4键盘 PA7~PA0/8255 接dp~a/led数码管 CS/8255 接Y1/IO地址 +5v 接S0/LED数码管 GND 接S3~S1/LED数码管 三、实验过程 1、设置8255C口键盘输入、A口为数码管段码输出 2、实验流程图如下图所示
N Y Y N 未找到 找到 程序代码如下图所示: ;*********************; ;* 键盘显示 8255LED *; ;*********************; ;********************; ;* 8255薄膜按键实验 *; ;********************; a8255 equ 288H ;8255 A 口 c8255 equ 28aH ;8255 C 口 k8255 equ 28bH ;8255控制口 data segment table1 dw 0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0h dw 07D0h,0BD0h,0DD0h,0ED0h,07E0h,0BE0h,0DE0h,0EE0h ;键盘扫描码表 LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH DB 39h,5EH,79h,71h,0ffh ;LED 段码表, 开始 行线输出 是否有按键按下 列线输出 是否有按键按下 查找键码 查询键盘号 显示键盘号
实验矩阵键盘扫描实验 一、实验要求 利用4X4 16位键盘和一个7段LED构成简单的输入显示系统,实现键盘输入和LED 显示实验。 二、实验目的 1、理解矩阵键盘扫描的原理; 2、掌握矩阵键盘与51单片机接口的编程方法。 三、实验电路及连线 Proteus实验电路
1、主要知识点概述: 本实验阐述了键盘扫描原理,过程如下:首先扫描键盘,判断是否有键按下,再确定是哪一个键,计算键值,输出显示。 2、效果说明: 以数码管显示键盘的作用。点击相应按键显示相应的键值。 五、实验流程图
1、Proteus仿真 a、在Proteus中搭建和认识电路; b、建立实验程序并编译,加载hex文件,仿真; c、如不能正常工作,打开调试窗口进行调试 参考程序: ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#TABLE ;将表头放入DPTR LCALL KEY ;调用键盘扫描程序 MOVC A,@A+DPTR ;查表后将键值送入ACC MOV P2,A ;将ACC值送入P0口 LJMP MAIN ;返回反复循环显示 KEY: LCALL KS ;调用检测按键子程序 JNZ K1 ;有键按下继续 LCALL DELAY2 ;无键按调用延时去抖 AJMP KEY ;返回继续检测按键 K1: LCALL DELAY2 LCALL 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跳转到L1 MOV A,#00H ;将第一行值送入ACC AJMP LK ;跳转到键值处理程序 L1: JB P1.1,L2 ;P1.1等于1跳转到L2 MOV A,#04H ;将第二行的行值送入ACC AJMP LK ;跳转到键值理程序进行键值处理 L2: JB P1.2,L3 ;P1.2等于1跳转到L3
汇编语言与接口技术实验报告 开课实验室:实验中心微机原理与接口技术实验室2014年12月1 日 学院计算机科 学教育软 件学院 年级、专 业、班姓名成绩 课程名称汇编语言 与接口技 术 实验项目 名称显示与键盘实验 指导老师 签名古鹏 一、实验要求 1.硬件实验十六八段数码管显示 利用实验仪提供的显示电路,动态显示一行数据. 2.硬件实验十七键盘扫描显示实验 在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。 实验程序可分成三个模块。 ①键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。 ②显示模块:将显示单元的内容在显示器上动态显示。 ③主程序:调用键输入模块和显示模块。 二、实验目的 1. 硬件实验十六八段数码管显示 1.了解数码管动态显示的原理。 2.了解用总线方式控制数码管显示 2. 硬件实验十七键盘扫描显示实验 1、掌握键盘和显示器的接口方法和编程 方法。 2、掌握键盘扫描和LED八段码显示器的 工作原理。 三、实验电路及连线 1. 硬件实验十六八段数码管显示连线连接孔1 连接孔2 1 KEY/LED_CS CS0 位选通 信号 段码输 出 (0x004 数据总线
2. 硬件实验十七键盘扫描显示实验 连线连接孔1 连接孔2 1 KEY/LED_CS CS0 四、使用仪器、材料 计算机一台 Wave6000试验仪 五、实验程序、过程 1.硬件实验十六八段数码管显示 代码: OUTBIT equ 08002h ; 位控制口 OUTSEG equ 08004h ; 段控制口 data segment LEDBuf db 6 dup(?) ; 显示缓冲 Num db 1 dup(?) ; 显示的数据 DelayT db 1 dup(?) LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h data ends code segment assume cs:code, ds:data Delay proc near push ax ; 延时子程序 push cx
一、实验原理及电路 1、LCD显示器是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使用光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过)。, 2、由于LCD已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行接口。驱动模块具有八位数据总线,外加一些电源接口和控制信号。而且还自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。 实验电路图 二、功能说明 设计并实现一4×4键盘的接口,键盘与1602显示单元连接,编写实验程序扫描键盘输入,并将扫描结果送1602显示,键盘采用4×4键盘。将键盘进行编号记作0—F当按下其中一个按键时将该按键对应的编号在一个1602显示出来,当按下下一个按键时便将这个按键的编号1602上显示出来 实验框图
四、实验代码 #include
实验三4*4键盘扫描显示控制 一、实验目的 实现一4×4键盘的接口,并在两个数码管上显示键盘所在的行与列。即将8255单元与键盘及数码管显示单元连接,编写实验程序扫描键盘输入,并将扫描结果送数码显示,键盘采用4×4键盘,每个数码管值可以为0到F,16个数。将键盘进行编号记作0—F当按下其中一个按键时将该按键对应的编号在一个数码管上显示出来,当按下下一个按键时便将这个按键的编号在下一个数码管上显示出来,且数码管上可以显示最近6次按下按键的编号。 二、实验要求 1、接口电路设计:根据所选题目和所用的接口电路芯片设计出完整的接口电路,并进行电路连接和调试。 2、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明。 三、实验电路
四、实验原理说明 图2 数码管引脚图 图1为AT89C51引脚图,说明如下: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址
本科实验报告课程名称:微机原理与接口技术 姓 名:张开桓 学 院:信息学院 系 : 控制系 专 业:自动化 学 号 : 3080104703 指导教师:齐杭丽 2010 年12 月15 H
专业:自动化(控制系) 姓名: 张开桓 学号: 3080104703 日期:2010/12/15 地点: 东4-606 课程名称: 微机原理与接口技术 指导老师: 齐杭丽 成 绩:____ 实脸名称:按键与显示实验实验类型:设汁型同组学生姓名: ____________________________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 1. 实验目的 ① 熟练运用keil 环境对硬件接口进行调试。 ② 掌握IO 扩展键盘的软硬件设计方法; ③ 掌握数字转换成显示段码的软件译码方法: ④ 掌握静态显示的原理和相关程序的编写。 ⑤ 掌握动态显示的原理和相关程序的编写; 2. 预习要求 ① 理解51单片机IO 实现独立式键盘扩展的工作原理。 ② 理解8段数码管静态显示的电路工作原理,采用静态显示有何优缺点: ③ 理解8段数码管动态显示的电路工作原理,采用动态显示有何优缺点: ④ 理解8段数码管静态显示的10控制方式及同步串行口控制方式如何实现软件设 计; 3. 实验设备 计算机 1台: ZDGDTH-1型8OC51实验开发系统 1套: 2号导线、8P 数据线 若干条。 4. 基础型实验内容 ①査询式键盘和静态显示实验 8个独立式键盘的电路如图2-1所示,串口扩展的6个静态数码管电路如图2-2所示。 设将P0 口连接到键盘接口,则如果有键按下,相应的口线输岀为低,否则输出为髙。单片 机通过读取接口的状态,判断按下什么键。有键按下后,要有一泄的延时,防止由于键盘抖 动而引起误操作。 溯沪乂唆实验报告 件实验三 按键与显示实验
单片机原理及应用 随堂实验报告 实验五按键与显示实验 学院计算机与电子信息学院 专业电子信息工程班级电信12 -1 班 姓名许锐佳学号 指导教师左敬龙 实验报告评分:_______
一、实验原理及电路 实验原理:单片机80c51的P2口接一矩阵键盘,P0和P3口接两个数码管,P1口通过接两个3-8译码器控制16个灯。刚开始时,电路处于扫描按键是否按下的状态,当有某个键按下时,在扫描函数作用下,会有一小段消抖时间,确定没抖动的情况下再次判断是否真的有按键按下,如果真的有按下,通过先检查行,再检查列的方法判断是哪个键按下,判断完后执行对应case后面的语句,即实现相应的功能。下图为实验原理电路图 (此时按下的是第10个按键): 二、功能说明 16个开关形成矩阵键盘,当按下第一个键时,数码管显示1,第一个led灯亮;当按下第二个键时,数码管显示2,第二个led灯亮;当按下第三个键时,数码管显
示3,第三个led灯亮···依次类推,按下第几号键,数码管显示对应号数,对应led灯亮。 三、实验框图: 四、实验代码 #include
#define uint unsigned int uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07 ,0x7f,0x6f,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d}; uchar num; void delay(uchar time) { uchar i,j; for(i=0;i