键盘显示电路图与程序
3×4的矩阵键盘电路图及汇编语言源程序
3×4的矩阵键盘电路图及汇编语言源程序
[导读] 3×4的矩阵键盘通过并行接口芯片8255A与微机相连。
8255A的A口定义为输出口,与键盘行线相连;B口定义为输入口,与键盘列线相连。
设8255A A口地址为40H,B口地址为41H,控制寄存
3×4的矩阵键盘通过并行接口芯片8255A与微机相连。
8255A的A口定义为输出口,与键盘行线相连;B口定义为输入口,与键盘列线相连。
设8255A A口地址为40H,B口地址为41H,控制寄存器地址为43H。
MOV AL,82H
OUT 43H,AL
BEGIN:MOV AL,0
OUT 40H,AL
WAIT : IN AL,41H
AND AL,0FH
CMP AL,0FH
JZ WAIT
MOV CX,7FFH
L0: LOOP L0
ST: MOV BL,3
MOV BH,4
MOV AL,0FEH
MOV CL,0FH
MOV CH,0FFH
L1: OUT 40H,AL
ROL AL
MOV AH,AL
IN AL,41H
AND AL,CL
CMP AL,CL
JNZ L2
ADD CH,BH
MOV AL,AH
DEC BL
JNZ L1
JMP BEGIN
L2: INC CH
RCR AL
JC L2
MOV AL,CH JMP KEYTABLE。
键盘电路
键盘电路在单片机应用系统中,除了复位按键外,可能还需要其他按键,如键盘按键,以便控制系统的运行状态或向系统输入运行参数。
键盘电路一般由键盘接口电路、按键(由控制系统运行状态的功能键和向系统输入数据的数字键组合)以及键盘扫描程序等部分组成。
1、按键结构及其电压波形在单片机控制系统中广泛使用的机械键盘的工作原理是:按下键帽时,按键内的复位弹簧被压缩,动片触点与静片触点相连,按键两个引脚连通,接触电阻大小与按键触点面积及材料有关,一般在数十欧姆以下;松手后,复位弹簧将动片弹开,使动片触点与静片触点脱离接触,两引脚返回断开状态。
可见,机械键盘或按扭的基本工作原理就是利用动片触点和静片触点的接触和断开来实现键盘或按钮两引脚的通、断。
在如图所示的键盘电路中,按键没有被按下时,P1口内部上拉电阻将P1.3-P1.0引脚置为高电平,而当S3-S0之一被按下时,相应按键两引脚连通,P1口对应引脚接地。
在理想状态下,按键引脚电压变化如图6-29(a)所示。
但实际上,在按键被按下或释放的瞬间,由于机械触点弹跳现象,实际按键电压波形如图6-29(b)所示,即机械按键在按下和释放瞬间存在抖动现象。
抖动时间的长短与按键的机械特性有关,一般在5~10ms之间,而按键稳定闭合期的长短与按键时间有关,从数百毫秒到数秒不等。
为了保证按键由按下到松开之间仅视为一次或数次输入(对于具有重复输入功能的按键),必须在按键或软件上采取去抖动措施,避免一次按键输入一串数码。
硬件上,可利用单稳态电路或RS触发器消除按键抖动现象,但在单片机应用系统中最常采用的方法是利用软件延迟方式消除按键抖动问题,这样可以不增加硬件成本。
因此,在单片机系统中按键识别过程是:通过随机扫描、定时中断扫描或中断监控方式发现按键被按下后,延时10~20ms(因为机械按键由按下到稳定闭合的时间为5~10ms)再去判断按键是否处于按下状态,并确定是哪个按键被按下。
对于每按一次仅视为一次输入的按键设定来说,在按键稳定闭合后对按键进行扫描,读出按键的编码(或称为键号),执行相应操作;对于具有重复输入功能的按键设定来说,在按键稳定闭合期内,每个特定时间,如250ms或500ms 对按键进行检测,当发现按键仍处于按下状态时,就输入该键,直到按键被释放。
实验六键盘显示控制实验
实验六键盘显示控制实验一、实验目的1.掌握8279键盘显示电路的基本功能及编程方法。
2 •掌握一般键盘和显示电路的工作原理。
3.进一步掌握定时器的使用和中断处理程序的编程方法。
二、实验内容1. 8237键盘显示电路的基本原理本实验系统中把键盘显示电路设计在一块扩展电路板上,用一根20芯的扁平电缆与实验台上扩展插头J7相连。
小键盘上每按一个键,6位数码管上显示出相应字符,其对应关系如下表6-1。
2.设计电子时钟利用实验台上提供的定时器8253和扩展板上提供的8279以及键盘和数码管显示电路,设计一个电子钟。
由8253中断定时,小键盘控制电子钟的启停及初始值的预置。
电子钟显示格式如下:7407 74073fe2feITfe3B i BKb_6B B/B HEJRR QcCRRnorJ R --CDV44K ccvfLT OBTkK TUQEO -LIUO_HEEZM —ZuB4U2U2U lu B CCVCCVCDD CDDXX . XX . XX 由左向右分别为时、分、秒 并具有如下功能:① C 键:清除,显示00. 00. 00。
② G 键:启动,电子钟计时。
③ D 键:停止,电子钟停止计时④ P 键:设置时、分、秒值。
输入时依次为时、分、秒,同时应有判断输入 错误的能力,若有错,则显示:E ----------- 。
此时按P 键重新输入预置值。
⑤ E 键:程序退出,返回DOS 。
3.硬件电路图硬件电路图如图6-1。
图6-1键盘显示控制电路图4. 硬件连线100x87545275452754526 722864H11做电子钟实验时,实验台上8253的CLK0接1MHz,GATE0和GATE1接入口清显示+5V , OUTO 接 CLK1 , OUT1 接 IRQ 。
CS 接 280H~287H 。
5 •编程提示(1)显示按键程序框图显示铵键程序框图如图 6-2 (a )主程序 框图,(b )键盘显示子程序框图,(c )显示子 程序框图。
4×4矩阵式键盘按键
一、实验目的1.掌握4×4矩阵式键盘程序识别原理2.掌握4×4矩阵式键盘按键的设计方法二、设计原理(1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号(2)键盘中对应按键的序号排列如图14.1所示三、参考电路740)this.width=740" border=undefined>图14.2 4×4矩阵式键盘识别电路原理图740)this.width=740" border=undefined>图14.1 4×4键盘0-F显示740)this.width=740" border=undefined>图14.3 4×4矩阵式键盘识别程序流程图四、电路硬件说明(1)在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键盘”区域中的M1-M4,N1-N4端口上(2)在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-h端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h五、程序设计内容(1)4×4矩阵键盘识别处理(2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码矩阵的行线和列线分别通过两并行接口和CPU通信键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能六、程序流程图(如图14.3所示)七、汇编源程序;;;;;;;;;;定义单元;;;;;;;;;;COUNT EQU 30H;;;;;;;;;;入口地址;;;;;;;;;;ORG 0000HLJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETI;;;;;;;;;;主程序入口;;;;;;;;;;ORG 0100HSTART: LCALL CHUSHIHUA LCALL PANDUANLCALL XIANSHILJMP START ;;;;;;;;;;初始化程序;;;;;;;;;; CHUSHIHUA: MOV COUNT#00H RET;;;;;;;;;;判断哪个按键按下程序;;;;;;;;;; PANDUAN: MOV P3#0FFHCLR P3.4MOV A P3ANL A#0FHXRL A#0FHJZ SW1LCALL DELAY10MSJZ SW1MOV A P3ANL A#0FHCJNE A#0EH K1MOV COUNT#0LJMP DKK1: CJNE A#0DH K2MOV COUNT#4LJMP DKK2: CJNE A#0BH K3 MOV COUNT#8 LJMP DKK3: CJNE A#07H K4 MOV COUNT#12K4: NOPLJMP DKSW1: MOV P3#0FFH CLR P3.5MOV A P3ANL A#0FHXRL A#0FHJZ SW2LCALL DELAY10MS JZ SW2MOV A P3ANL A#0FHCJNE A#0EH K5 MOV COUNT#1 LJMP DKK5: CJNE A#0DH K6 MOV COUNT#5 LJMP DKK6: CJNE A#0BH K7 MOV COUNT#9 LJMP DKK7: CJNE A#07H K8 MOV COUNT#13K8: NOPLJMP DKSW2: MOV P3#0FFH CLR P3.6MOV A P3ANL A#0FHXRL A#0FHJZ SW3LCALL DELAY10MS JZ SW3MOV A P3ANL A#0FHCJNE A#0EH K9 MOV COUNT#2 LJMP DKK9: CJNE A#0DH KA MOV COUNT#6 LJMP DKKA: CJNE A#0BH KB MOV COUNT#10 LJMP DKKB: CJNE A#07H KC MOV COUNT#14 KC: NOPLJMP DKSW3: MOV P3#0FFH CLR P3.7MOV A P3ANL A#0FHXRL A#0FHJZ SW4LCALL DELAY10MSJZ SW4MOV A P3ANL A#0FHCJNE A#0EH KDMOV COUNT#3LJMP DKKD: CJNE A#0DH KE MOV COUNT#7LJMP DKKE: CJNE A#0BH KF MOV COUNT#11LJMP DKKF: CJNE A#07H KG MOV COUNT#15KG: NOPLJMP DKSW4: LJMP PANDUAN DK: RET ;;;;;;;;;;显示程序;;;;;;;;;; XIANSHI: MOV A COUNT MOV DPTR#TABLE MOVC A@A+DPTRMOV P0 ALCALL DELAYSK: MOV A P3ANL A#0FHXRL A#0FHJNZ SKRET ;;;;;;;;;;10ms延时程序;;;;;;;;;;DELAY10MS: MOV R6#20D1: MOV R7#248DJNZ R7$DJNZ R6D1RET;;;;;;;;;;200ms延时程序;;;;;;;;;;DELAY: MOV R5#20LOOP: LCALL DELAY10MSDJNZ R5LOOPRET;;;;;;;;;;共阴码表;;;;;;;;;;TABLE: DB 3FH06H5BH4FH66H6DH7DH07H DB 7FH6FH77H7CH39H5EH79H71H ;;;;;;;;;;结束标志;;;;;;;;;;END八、C语言源程序#include<AT89X51.H>unsigned char code table[]={0x3f0x660x7f0x390x060x6d0x6f0x5e0x5b0x7d0x770x790x4f0x070x7c0x71};void main(void){ unsigned char i j k key;while(1){ P3=0xff; //给P3口置1//P3_4=0; //给P3.4这条线送入0//i=P3;i=i&0x0f; //屏蔽低四位//if(i!=0x0f) //看是否有按键按下//{ for(j=50;j>0;j--) //延时//for(k=200;k>0;k--);if(i!=0x0f) //再次判断按键是否按下//{ switch(i) //看是和P3.4相连的四个按键中的哪个// { case 0x0e:key=0;break;case 0x0d:key=1;break;case 0x0b:key=2;break;case 0x07:key=3;break;}P0=table[key]; //送数到P0口显示//}}P3=0xff;P3_5=0; //读P3.5这条线//i=P3;i=i&0x0f; //屏蔽P3口的低四位//if(i!=0x0f) //读P3.5这条线上看是否有按键按下// { for(j=50;j>0;j--) //延时//for(k=200;k>0;k--);i=P3; //再看是否有按键真的按下//i=i&0x0f;if(i!=0x0f){ switch(i) //如果有显示相应的按键//{ case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=7;break;}P0=table[key]; //送入P0口显示//}}P3=0xff;P3_6=0; //读P3.6这条线上是否有按键按下// i=P3;i=i&0x0f;if(i!=0x0f){ for(j=50;j>0;j--)for(k=200;k>0;k--);i=P3;i=i&0x0f;if(i!=0x0f){ switch(i){ case 0x0e:key=8;break;key=9;break;case 0x0b:key=10;break;case 0x07:key=11;break;}P0=table[key];}}P3=0xff;P3_7=0; //读P3.7这条线上是否有按键按下// i=P3;i=i&0x0f;if(i!=0x0f){ for(j=50;j>0;j--)for(k=200;k>0;k--);i=P3;i=i&0x0f;if(i!=0x0f){ switch(i){ case 0x0e:key=12;break;case 0x0d:key=13;break;key=14;break;case 0x07:key=15;break;}P0=table[key];}}}}九、注意事项在硬件电路中,要把8联拨动拨码开关JP2拨下,把8联拨动拨码开关JP3拨上去。
1-单片机键盘与显示电路设计
独立式按键 单片机控制系统中,往往只需要几个 功能键,此时,可采用独立式按键结构。 1.独立式按键结构 独立式按键是直接用I/O口线构成的单 个按键电路,其特点是每个按键单独占 用一根I/O口线,每个按键的工作不会影 响其它I/O口线的状态。独立式按键的典 型应用如图9-3所示。
V CC
P 1.0 P 1.1 P 1.2 P 1.3 P 1.4 P 1.5 P 1.6 P 1.7
P1口某位结构
P1口电路中包含有一个数据输出锁存器、一个三态数据输入缓冲器 、一个数据输出的驱动电路。 P1口的功能和驱动能力
P1口只可以作为通用的I/O口使用;
P1可以驱动4个标准的TTL负载电路; 注意在P1口作为通用的I/O口使用时,在从I/O端口读入数据时,应 该首先向相应的I/O口内部锁存器写“1”。 举例:从P1口的低四位输入数据 MOV MOV P1,#00001111b ;;先给P1口底四位写1 A,P1 ;;再读P1口的底四位
依此规律循环,即可使各位数码管显 示将要显示的字符。虽然这些字符是在不 同的时刻分别显示,但由于人眼存在视觉 暂留效应,只要每位显示间隔足够短就可 以给人以同时显示的感觉。 采用动态显示方式比较节省I/O口,硬 件电路也较静态显示方式简单,但其亮度 不如静态显示方式,而且在显示位数较多 时,CPU要依次扫描,占用CPU较多的时 间。
矩阵式按键 单片机系统中,若使用按键较多时,通 常采用矩阵式(也称行列式)键盘 1.矩阵式键盘的结构及原理 矩阵式键盘由行线和列线组成,按键位 于行、列线的交叉点上,其结构如下图9-4 所示。
+5 V 0 4 8 12 0 1 5 9 13 1 2 6 10 14 2 3 7 11 15 3 0 1 2 3
实验一--键盘显示实验
实验一键盘显示系统实验1.实验目的:(1)了解8155芯片的工作原理以及应用(2)了解键盘、LED显示器的接口原理以及硬件电路结构(3)掌握非编码键盘的编程方法以及程序设计2.实验内容:将程序输入实验系统后,在运行状态下,按下数字0~9之一,将在数码管上显示相应数字,按下A、B或C之一,将在数码管上显示“0”、“1”或“2”循环3.程序框图:4. 实验程序下面程序有四部分组成,程序的地址码、机器码、程序所在行号(中间)和源程序。
字型码表和关键字表需要同学们自己根据硬件连接填在相应位置。
地址码机器码 1 源程序0000 2 org 0000h0000 90FF20 3 mov dptr,#0ff20h0003 7403 4 mov a,#03h ;方式字0005 F0 5 movx @dptr,a ;A和B口为输出口,C口为输入口0006 753012 6 mov 30h,#12h ;LED共阴极,开始显示“H”,地址偏移量送30h0009 1155 7 dsp: acall disp1 ;调显示子程序000B 11FE 8 acall ds30ms000D 1179 9 acall scan ;调用键盘扫描子程序000F 60F8 10 jz dsp ;若无键按下,则dsp0011 11B7 11 acall kcode ;若有键按下,则kcode0013 B40A00 12 cjne a,#0ah,cont ;是否数字键,若是0-9则是,a-c则否0016 400F 13 cont: jc num ;若是,则num0018 90001F 14 mov dptr,#jtab ;若否,则命令转移表始址送dptr 001B 9409 15 subb a,#09h; 形成jtab表地址偏移量001D 23 16 rl a ;地址偏移量*2001E 73 17 jmp @a+dptr ;转入相应功能键分支程序001F 00 18 jtab: nop0020 00 19 nop0021 8008 20 sjmp k1 ;转入k1子程序0023 800B 21 sjmp k2 ; 转入k2子程序0025 800E 22 sjmp k3 ; 转入k3子程序0027 F530 23 num: mov 30h,a0029 80DE 24 sjmp dsp ; 返回dsp002B 7531C0 25 k1: mov 31h,#0c0h ; "0" 循环显示002E 800A 26 sjmp k40030 7531F9 27 k2: mov 31h,#0f9h ; "1" 循环显示0033 8005 28 sjmp k40035 7531A4 29 k3: mov 31h,#0a4h ; "2" 循环显示0038 8000 30 sjmp k4003A 7B01 31 k4: mov r3,#01h ;显示最末一位,注意共阴极003C EB 32 k5: mov a,r3003D 90FF21 33 mov dptr,#0ff21h0040 F0 34 movx @dptr,a ;字位送81550041 E531 35 mov a,31h0043 90FF22 36 mov dptr,#0ff22h; 字型口0046 F0 37 movx @dptr,a ;字型送8155的B口0047 11EC 38 acall delay ;延时1ms***0049 74FF 39 mov a,#0ffh004B F0 40 movx @dptr,a ;关显示,在此使LED各位显示块都灭004C EB 41 mov a,r3004D 23 42 rl a004E FB 43 mov r3,a004F BB40EA 44 cjne r3,#40h,k5 ;还没有循环玩一遍,则循环继续0052 80E6 45 sjmp k4 ;若循环完一遍则返回k4;又开始新一轮的循环0054 22 46 ret0055 90FF21 47 disp1: mov dptr,#0ff21h; 字位口A,注意led是共阴极接法0058 7401 48 mov a,#01h005A F0 49 movx @dptr,a005B 90FF22 50 mov dptr,#0ff22h;字型口005E E530 51 mov a,30h0060 2402 52 add a,#02h0062 83 53 movc a,@a+pc0063 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; 关显示码a007B 90FF22 61 mov dptr,#0ff22h; B口地址送dptr007E F0 62 movx @dptr,a ;关led显示007F 7400 63 mov a,#00h0081 90FF21 64 mov dptr,#0ff21h ;A口地址,字位码0084 F0 65 movx @dptr,a0085 90FF23 66 mov dptr,#0ff23h ;C口地址0088 E0 67 movx a,@dptr0089 540F 68 anl a,#0fh; 取出列值送a008B B40F02 69 cjne a,#0fh,next1;若有键按下,则next1008E 8025 70 sjmp next40090 11F5 71 next1: acall ds10ms ;延时10ms0092 7A00 72 mov r2,#00h ;窜键标志位清零0094 79FE 73 mov r1,#0feh; 行扫描初值送a0096 90FF21 74 loop: mov dptr,#0ff21h ;dptr指向A口0099 E9 75 mov a,r1 ;行扫描值送a009A F0 76 movx @dptr,a009B 90FF23 77 mov dptr,#0ff23h009E 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;若不在本行,则next300A6 0A 82 next2: inc r2 ;窜键标志位加100A7 BA010B 83 cjne r2,#01h,next4 ;若为窜键,则返回监控00AA FC 84 mov r4,a ;列值送r400AB E9 85 mov a,r100AC FB 86 mov r3,a ; 行值送r300AD E9 87 next3: mov a,r1 ;行扫描值送a00AE 23 88 rl a ;左移一位00AF F9 89 mov r1,a ;送回r100B0 B47FE3 90 cjne a,#7fh,loop ;若未扫描完一遍,则loop 00B3 01B6 91 ajmp next5 ;若扫描完一遍,则next500B5 E4 92 next4: clr a00B6 22 93 next5: ret00B7 7900 94 kcode: mov r1,#00h00B9 EB 95 mov a,r300BA D3 96 setb c00BB 13 97 loop1: rrc a00BC B4FF02 98 cjne a,#0ffh, next6100BF 8003 99 sjmp next600C1 09 100 next61: inc r100C2 80F7 101 sjmp loop100C4 E9 102 next6: mov a,r100C5 C4 103 swap a00C6 F9 104 mov r1,a00C7 EC 105 mov a,r400C8 540F 106 anl a,#0fh00CA 49 107 orl a,r100CB F5F0 108 mov b,a00CD 9000DF 109 mov dptr,#ktab00D0 7800 110 mov r0,#00h00D2 E4 111 clr a00D3 93 112 pepe: movc a,@a+dptr00D4 B5F002 113 cjne a,b,next700D7 8004 114 sjmp resv00D9 08 115 next7: inc r000DA E8 116 mov a,r000DB 80F6 117 sjmp pepe00DD E8 118 resv: mov a,r000DE 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 ;延时1ms00EE 7EFF 124 delay1: mov r6,#0ffh00F0 DEFE 125 delay2: djnz r6,delay200F2 DFFA 126 djnz r7,delay100F4 22 127 ret00F5 7F14 128 ds10ms: mov r7,#14h ;延时10ms00F7 7EFF 129 dely1: mov r6,#0ffh00F9 DEF5 130 dely2: djnz r6,delay200FB DFF1 131 djnz r7,delay100FD 22 132 ret00FE 7F3C 133 ds30ms: mov r7,#3ch ;延时30ms0100 7EFF 134 dely3: mov r6,#0ffh0102 DEEC 135 dely4: djnz r6,delay20104 DFE8 136 djnz r7,delay10106 22 137 ret138 end5. 实验步骤:(1) 输入程序,本实验系统有两种输入方法. a)可以直接通过系统上的小键盘输入机器码也可以采用b)把实验系统和PC机的串口直接相连,在PC机上通过专用软件编译程序,然后通过串行口把编译后的程序机器码下载到实验系统中.(2) 输入程序首地址,按运行键EX,程序运行,观察此时显示结果.(3) 按下0~9数字键,观察在数码管上显示的结果,按下A,B或C观察显示的结果.(4) 在循环显示程序段中,调不同的时间延时子程序,观察显示效果6. 习题每人应该认真读懂程序,在源程序的基础上根据硬件电路判断其他按键对应的关键字,要求每个人应该至少在原来程序基础上再加一个按键,来显示相应的循环或其他功能.7. 思考题?(1) 思考动态显示的原理.(2) 思考以上程序还有那些不完善的地方,如何改?。
51单片机键盘数码管显示(带程序)
期中大作业学院:物理与电子信息工程学院课题:【利用8255和51单片机实现数码管显示按键数值的程序】要求:【4*4矩阵键盘,按0到15,数码管上分别显示0~9,A~F】芯片资料:8255:8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
8255特性:1.一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
2.具有24个可编程设置的I/O口,即3组8位的I/O口,分别为PA口、PB口和PC 口。
它们又可分为两组12位的I/O口:A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。
A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O三种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.引脚说明RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即CS=0时,表示芯片被选中,允许8255与CPU进行通讯;CS=1时,8255无法与CPU做数据传输。
RD:读信号线,当这个输入引脚为低电平时,即CS=0且RD=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,即CS=0且WR=0时,允许CPU将数据或控制字写入8255。
单片机键盘显示实验报告
单片机的键盘和显示实验报告㈠实验目的1.掌握单片机I/O的工作方式;2.掌握单片机以串行口方式0工作的LED显示;3.掌握键盘和LED显示的编程方法。
㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台㈢实验内容及要求实验硬件线路图见附图从线路图可见,8051单片机的P1口作为8个按键的输入端,构成独立式键盘。
四个LED显示器通过四个串/并移位寄存器74LS164接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。
编写一个计算器程序,当某一键按下时可执行相应的加、减、乘、除运算方式,在四个显示器上显示数学算式和最终计算结果。
注:①通过按键来选择加、减、乘、除四种运算方式。
②输入两个数字均为一位十进制数,可预先放在内存中。
㈣实验框图(见下页)㈤思考题1.当键盘采用中断方式时,硬件电路应怎样连接?P1.4~P1.7是键输出线,P1.0~P1.3是扫描输入线。
输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051的外部中断输入端。
2.74LS164移位寄存器的移位速率是多少?实验中要求计算的式子和结果之间相差一秒,移位寄存器的移位速率应该是每秒一位吧。
其实这个问题确实不知道怎么回答。
LED 显示用的段码与教科书所提供的不同,本实验采用如下段码:显示数符段码显示数符段码0BBH A DBH109H B F1H2EAH C B2H36BH D E9H459H E F2H573H F D2H否有否P1口置输入读P1口开 始显示“0000”是否有键按下?延迟消抖是否有键按下?是读键码加法运算减法运算除运算6F3H—40H70BH.04H8FBH┗┛A1H97BH┗┛1AH灭00H P DAH实验代码:ORG 0000HAJMP MAINORG 0030HMAIN:MOV 41H,#0BBH ;对几个存放地址进行初始化MOV 42H,#0BBHMOV 43H,#0BBHMOV 44H,#0BBHMOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALL DISPLAY ;初始化显示KEY:MOV R3,#08H;用来存放两个数据MOV R4,#02HMOV P1,#0FFH ;初始化P1口MOV A,P1 ;读取按键状态CPL A ;取正逻辑,高电平表示有键按下JZ KEY ;A=0时无键按下,重新扫描键盘LCALL DELAY1;消抖MOV A,P1 ;再次读取按键状态CPL AJZ KEY ;再次判别是否有键按下PUSH AKEY1:MOV A,P1CPL AANL A,#0FH ;判别按键释放JNZ KEY1 ;按键未释放,等待LCALL DELAY1;释放,延时去抖动POP AJB ACC.0,ADD1 ;K1按下转去ADD1JB ACC.1,SUB1 ;K1按下转去SUB1JB ACC.2,MUL1 ;K1按下转去MUL1JB ACC.3,DIV1 ;K1按下转去DIV1LJMP KEYADD1:LCALL BUFFER ;显示加数和被加数MOV 43H,#049HLCALL DISPLAY ;显示加号MOV A,R3ADD A,R4DA AMOV R3,A ;相加结果放入R6ANL A,#0FHMOV R4,A ;结果个位放入R7MOV A,R3SWAP A ;半字节交换,高四位放入低四位ANL A,#0FHMOV R3,A ;结果的高位放入R6LCALL L;显示缓存区设置LCALL DELAY2;延时一秒后显示LCALL DISPLAYLJMP KEYSUB1:LCALL BUFFER ;显示减数和被减数MOV 43H,#40HLCALL DISPLAY ;显示减号MOV A,R3CLR CY ;CY清零SUBB A,R4 ;做减法PUSH ARLC A ;带进位循环左移,最高位放入CYJC F ;判断最高位,若为1则跳转到负数ZHENG: POP AMOV R4,AMOV R3,#00H ;高位清零SJMP OUTFU:POP ACPL A ;取绝对值INC AMOV R4,AMOV R3,#11H ;显示负号OUT: LCALL L ;显示缓存区设置LCALL DELAY2 ;延时1s后显示LCALL DISPLAYLJMP KEYMUL1:LCALL BUFFER ;显示两位乘数MOV 43H,#99HLCALL DISPLAY ;显示乘号MOV A,R3MOV B,R4MUL AB ;结果放入AB,A中是低8位,B中是高8位MOV B,#0AHDIV AB ;十进制转换MOV R4,B ;结果个位放入R7MOV R3,A ;结果的十位放入R6LCALL LLCALL DELAY2LCALL DISPLAY ;延时1s后显示LJMP KEYDIV1:LCALL BUFFER ;显示除数和被除数MOV 43H,#62HLCALL DISPLAY ;显示除号MOV A,R3MOV B,R4DIV AB ;A除以BMOV R4,B ;余数放在R4中MOV R3,A ;商放在R3中MOV A,R4MOVC A,@A+DPTR ;调用段选号MOV 41H,A ;显示余数MOV A,R3MOVC A,@A+DPTRMOV 43H,A ;显示商MOV 42H,#00HMOV 44H,#00HLCALL DELAY2 ;延时1S后显示LCALL DISPLAYLJMP KEYBUFFER: MOV 41H,#22H ;显示初始化,在做计算之前显示两个操作数,显示等号MOV DPTR,#TABLMOV A,R4MOVC A,@A+DPTRMOV 42H,AMOV A,R3MOVC A,@A+DPTRMOV 44H,ARETDISPLAY:MOV R5,#04H;共四位需要显示MOV R0,#41HDISPLAY1:MOV A,@R0MOV SBUF,ADISPLAY2:JNB TI,DISPLAY2;是否传完了CLR TIINC R0DJNZ R5,DISPLAY1RETL:MOV A,R4MOVC A,@A+DPTRMOV 41H,A ;R4对应的段码MOV A,R3MOVC A,@A+DPTRMOV 42H,A ;R3对应的段码MOV 43H,#00HMOV 44H,#00HRETDELAY1: ;普通延时MOV R1,#20HDS1:MOV R2,#0FFHDS2:DJNZ R2,DS2DJNZ R1,DS1RETDELAY2:MOV R6,#14H ;定时1SMOV TMOD,#01HDS3:MOV TH0,#3CHMOV TL0,#0B0H ;50msSETB TR0LOOP:JNB TF0,LOOPCLR TF0CLR TR0DJNZ R6,DS3 ;1s到,中断返回RETTABL:DB 0BBH 09H 0EAH 6BH ;段码表DB 59H 73H 0F3H 0BHDB 0FBH 7BH 00H 0DBHDB 0F1H 0B2H 0E9H 0F2HDB 0D2H 40H实验结果及分析按键1:8+2= 结果:10按键2:8-2= 结果: 6按键3:8*2= 结果:16按键4:8/2= 结果:4从上面的结果可以看出,本次实验基本完成了实验要求。
第5章 MCS–51单片机的接口与应用 99页 5.8M
(1) 用键盘连接的I/O线的二进制组合表示键码。例如用4行、
4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4 位口线的二进制数的组合表示16个键的编码,如图5.4(a)所示。 各键相应的键值为88H、84H、82H、81H、48H、44H、42H、 41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键 值编码软件较为简单直观,但离散性大,不便安排散转程序的 入口地址。
第5章 MCS–51单片机的接口与应用 JNB ACC.2,K2 JNB ACC.3,K3 JNB ACC.4,K4 JNB ACC.5,K5 JNB ACC.6,K6 ;检测2号键是否按下,按下转 ;检测3号键是否按下,按下转 ;检测4号键是否按下,按下转 ;检测5号键是否按下,按下转 ;检测6号键是否按下,按下转
;0号键功能程序
;0号键功能程序执行完返回 ;0号键功能程序
JMP START
……………………… PROM7: ……………………… JMP START …
;1号键功能程序执行完返回
;7号键功能程序 ;7号键功能程序执行完返回
第5章 MCS–51单片机的接口与应用
5.1.4 行列式键盘
行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构, 按键设置在行列的交点上。例如4×4的行列结构可组成16个键 的键盘。因此,在按键数量较多时,可以节省I/O口线。 1.行列式键盘的接口 行列式键盘的接口方法有许多,例如直接接口于单片机的 I/O口上;利用扩展的并行I/O接口;用串行口扩展并行I/O口接 口;利用一种可编程的键盘、显示接口芯片8279进行接口等。 其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系
MOVX @DPTR,A
8x8点阵LED显示键盘输入字母A~F.
课程设计报告课程设计名称:微机原理与接口技术系别:三系学生姓名:缪广东班级:10计本(1)学号:20100303130成绩:指导教师:巫宗宾开课时间:2012—2013 学年 1 学期一.设计题目LED显示系统设计二.主要内容课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。
它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。
通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。
让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。
通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。
在课程设计时,1人一组,设计报告由学生独立完成,不得互相抄袭。
教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。
学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。
学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。
学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。
51单片机按键电路
51单片机键盘接口电路(含源程序)键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。
一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。
按钮开关的抖动问题组成键盘的按钮有触点式和非触点式两种,单片机中应用的一般是由机械触点组成的。
在下图中,当开<键盘结构图>图1图2关S未被按下时,P1。
0输入为高电平,S闭合后,P1。
0输入为低电平。
由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,P1。
0输入端的波形如图2所示。
这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。
前面我们讲到中断时曾有个问题,就是说按钮有时灵,有时不灵,其实就是这个原因,你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。
为使CPU能正确地读出P1口的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。
单片机中常用软件法,因此,对于硬件办法我们不介绍。
软件法其实很简单,就是在单片机获得P1。
0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1。
0口,如果仍为低,说明S1的确按下了,这实际上是避开了按钮按下时的抖动时间。
而在检测到按钮释放后(P1。
0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。
不过一般情况下,我们常常不对按钮释放的后沿进行处理,实践证明,也能满足一定的要求。
当然,实际应用中,对按钮的要求也是千差万别,要根据不一样的需要来编制处理程序,但以上是消除键抖动的原则。
按键与显示电路的设计与实现
按下抖动
释放抖动
按键抖动波形
4.3.5键盘抖动及其消除方法: 硬件削抖电路
4.3.6独立式键盘:
4.3.6矩阵式键盘: 矩阵式键盘工作原理
4.3.6矩阵式键盘: 扫描法
4.3.6矩阵式键盘: 线反转法
4.3.7键盘工作方式:
扫描方式: 中断方式:
4.4 任务实施:
1.仿真 2.焊接、调试 3.编写程序模块 4.整理制作报告
4.3.4 LED的驱动电路:
静态显示驱动电路
4.3.4 LED的驱动电路:
动态显示驱动电路
问题: 在LED显示电路设计中,段码驱动和位 码驱动应选用何种驱动方式?有什么差别 ?
工作任务: 如何用74HC373芯片设计一种廉价的基于 总线的LED显示电路?
4.3.5键盘抖动及其消除方法:
键被按下 闭合稳态
输出锁存
ICM7212 BCD-七段译码/输出驱动器 段驱动8mA 可静态驱动四位共阳极LED
ICM7218
8位动态BCD-七段译码器
段驱动20mA 可动态驱动8位共阳极LED
位驱动
动态扫描频率250HZ
170mA
常用的硬件译码集成电路
问题: •LED显示器与单片机接口,应选用哪 种译码方式?为什么?
6
7DH
82H
P
73H
8CH
7
07H
F8H
—
40H
BFH
8
7FH
80H
全灭
00H
ห้องสมุดไป่ตู้
FFH
9
6FH
90H
问题: 单片机控制电路中,应如何选择LED 显示器的结构?
4.3.2 LED显示器的显示方式:
电脑键盘接线图
电脑键盘接线图判断键盘控制电路板上的四根线各起什么作用至关重要。
将电路板翻过来后可以看到其背面已有明确的提示(图四):黄线Vcc为+5V高电平;红线为地线GND低电平;绿线为Keyboard DATA高电平;白线为Keyboard Clock低电平。
不同的键盘连线颜色的定义可能也不同,因此如果不能根据提示正确识别的话可以用万用表测量一下或者参考图五中对于连线的定义(图五)。
USB延长线中也是一组四根线,分别为红、白、绿、黑四根。
它们分别对应的是+5V电源、数据负线(DATA-)、数据正线(DATA+)及地线(GND)电脑键盘的四根线如何接罗技键盘,y-ss60线的颜色:红,绿,白,黑盼请解答,谢谢!四根线分别是:电源,地,数据,时钟你要把键盘拆出来,线的另一端焊在里面的电路板,上面标有v(电源),g(地),c(时钟),d(数据).再到网上找个键盘接口定义的图,对着另一端接上去就可以了这是普通的ps/2的键盘接线图,图中是接口(ps/2插头)截面图。
上面标的字母一般在键盘里的电路板上有印的,对照着焊就行了。
如果没有标注字母,这个我就没办法了哈哈~多数键盘应该是按照dcgv的顺序排线的,没有写明的可优先考虑这个。
针脚定义如下:pinnamedirdescription1n/cnotconnected2data-keydata3vccpower,+5vdc4gndgnd5n/cnotconnected6clk-clock键盘接线黄、红、白、绿对应的针脚如下对应ps/2线对应ps/2针脚黄3红4白6绿2对应的电线和针脚连接为:对应ps/2线对应ps/2针脚蓝3白6绿2橙4PS/2鼠标自己动手改USB接口USB作为电脑外设的一种高速连接标准,目前已广泛应用到了各种外部设备上。
电脑主机则在机箱上提供了前置USB接口,有的厂商甚至是在显示器与键盘都添加了USB接口,其目的就是为了能够让用户方便的进行连接鼠标、数码相机等耗电量小的USB外设而无须费力弯腰去机箱背后接插USB设备。
独立键盘电路
2
键盘是单片机不可缺少的输入设备,在单片机应用系统中,常使用按键或者键盘 控制系统的工作状态或向系统内部输入数据。
全编码键盘 键盘
非编码键盘
独立式键盘 矩阵式键盘
1.综述
3
➢ 编码键盘:键盘闭合键的识别由专用硬件实现。
➢ 非编码键盘:键盘闭合键的识别由软件实现。
当松开按键后,线路断开,无电流流过,此时KeyIn1和+5V是等电位,为高 电平。
这样我们就可以通过KeyIn1这个接口的电平高低来判断是否有按键按下。
2.独立键盘电路
6
独立式按键程序查询方式和中断方式的接口电路
2.独立键盘电路
4
独立式键盘就是各个按键相互独立,每一个按键各接一根I/O接口线,彼此独立, 单片机通过向此I/O口发出读指令来得到当前按键的状态。原理图如图1所示。
图1 独立键盘电路原理图
2.独立键盘电路
5
工作原理:
4条输入线接到单片机的I/O口上,当按键K1按下时,+5V电源通过R1和K1进 入GND形成一条通路,此时全部电压都加到了电阻R1上,从而导致KeyIn1引脚为 低电平;
非编码键盘结构简单,成本低廉,在单片机中得到广泛应用。
➢ 独立式键盘特点:电路配置灵活,软件结构简单,但每个按键必须占用一根 I/O线,占用硬件资源较多,因此适用于按键比较少的场合。
➢ 矩阵式键盘特点:矩阵式键盘的按键设置在行、列的交叉点上。键盘中按键数 量较多时,为了减少I/O口的占用,通常采用矩阵式键盘。
4X4矩阵键盘及显示电路设计
4X4矩阵键盘与显示电路设计FPGA在数字系统设计中的广泛应用,影响到了生产生活的各个方面。
在FPGA 的设计开发中,VHDL语言作为一种主流的硬件描述语言,具有设计效率高,可靠性好,易读易懂等诸多优点。
作为一种功能强大的FPGA数字系统开发环境,Altera公司推出的Quar-tUSⅡ,为设计者提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程,为使用VHDL语言进行FPGA设计提供了极大的便利。
矩阵键盘作为一种常用的数据输入设备,在各种电子设备上有着广泛的应用,通过7段数码管将按键数值进行显示也是一种常用的数据显示方式。
在设计机械式矩阵键盘控制电路时,按键防抖和按键数据的译码显示是两个重要方面。
本文在QuartusⅡ开发环境下,采用VHDL语言设计了一种按键防抖并能连续记录并显示8次按键数值的矩阵键盘与显示电路。
一、矩阵键盘与显示电路设计思路矩阵键盘与显示电路能够将机械式4×4矩阵键盘的按键值依次显示到8个7段数码管上,每次新的按键值显示在最右端的第O号数码管上,原有第0~6号数码管显示的数值整体左移到第1~7号数码管上显示,见图1。
总体而言,矩阵键盘与显示电路的设计可分为4个局部:(1)矩阵键盘的行与列的扫描控制和译码。
该设计所使用的键盘是通过将列扫描信号作为输入信号,控制行扫描信号输出,然后根据行与列的扫描结果进行译码。
(2)机械式按键的防抖设计。
由于机械式按键在按下和弹起的过程中均有5~10 ms的信号抖动时间,在信号抖动时间内无法有效判断按键值,因此按键的防抖设计是非常关键的,也是该设计的一个重点。
(3)按键数值的移位存放。
由于该设计需要在8个数码管上依次显示前后共8次按键的数值,因此对已有数据的存储和调用也是该设计的重点所在。
(4)数码管的扫描和译码显示。
由于该设计使用了8个数码管,因此需要对每个数码管进行扫描控制,并根据按键值对每个数码管进行7段数码管的译码显示。
键盘输入与LCD显示原理
200Ω×8
g
d
dp
b
e
c
8155
0
1
2
3
4
a 5
f
6
PA0~PA7
电路的接法决定了必须采用逐位扫描显示方式。 即从段选口送出某位LED的字型码,然后选通该位LED, 即从段选口送出某位LED的字型码,然后选通该位LED, 并 保持一段延时时间。然后选通下一位,直到所有位扫描完。
要注意的两个问题:
1.字型码通常通过查表指令MOVC来求得. 1.字型码通常通过查表指令MOVC来求得. 2.换位显示时通常要加一段程序使所有的LED全灭. 2.换位显示时通常要加一段程序使所有的LED全灭.
com
com
例:模拟产品计数显示电路
段 显
编 程
ORG 1000H STAR:MOV TMOD,#60H ;定时器T1工作在方式2计数 MOV TH1,#00H ;T1置初值 MOV TL1,#00H MAIN:MOV P1,#0C0H ;数码管显示0 DISP:JB P3.3,DISP ;监测按键信号 ACALLDELAY ;消抖延时 JB P3.3,DISP ;确认低电平信号 DISP1:JNB P3.3,DISP1 ;监测按键信号 ACALLDELAY ;消抖延时 JNB P3.3,DISP1 ;确认高电平信号 SETB TR1 ;启动计数器 DISP2:MOV A,TL1 MOVC A,@A+DPTR ;查表获取数码管显示值 MOV P1,A ;数码管显示计数值 CJNE A,#8E,DISP2 LJMP STAR TAB:0C0H,0F9H,0A4H … … DELAY:MOV R2,#14H DELAY1:MOV R3,#0FAH DJNZ R3,$ DJNZ R2,DELAY1 RET END
单片机课程设计4X4矩阵键盘显示
长沙学院?《单片机原理及应用》课程设计说明书题目】液晶显示4*4矩阵键盘按键号程序设计系(部)电子与通信工程系专业(班级)电气1班姓名龙程学号【09指导教师刘辉、谢明华、王新辉、马凌云起止日期—长沙学院课程设计鉴定表《单片机技术及应用》课程设计任务书系(部):电子与电气工程系专业:11级电子一班指导教师:谢明华、刘辉—目录'前言 (5)一、课程设计目的 (6)二、设计内容及原理 (6)单片机控制系统原理 (6)阵键盘识别显示系统概述 (6)键盘电路 (7)12864显示器 (8)整体电路图 (9)!仿真结果 (9)三、实验心得与体会 (10)四、实验程序 (10)参考文献 (18)…。
,】前言单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。
与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。
它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。
由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。
汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量不仅远超过PC机和其他计算机的总和,甚至比人类的数量还要多。
液晶显示器(英语:Liquid Crystal Display,缩写:LCD)为平面薄型的显示设备。
它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键盘显示电路图与程序
一、引言
键盘显示电路图与程序是一种常见的电子电路设计,它可以将按键输入转换为相应的显示输出。
本文将详细介绍键盘显示电路图的构成和相应的程序设计。
二、键盘显示电路图
键盘显示电路图主要由以下几个部分组成:
1. 键盘模块:键盘模块通常由多个按钮组成,每个按钮代表一个按键。
当按下某个按键时,键盘模块会输出一个对应的电信号。
2. 键盘扫描电路:键盘扫描电路负责扫描键盘模块中的按键状态。
它通过逐行或逐列扫描的方式,检测到按键的按下与释放。
3. 键盘编码电路:键盘编码电路将键盘扫描电路检测到的按键状态转换为相应的编码信号。
常见的编码方式有矩阵编码和直接编码。
4. 显示模块:显示模块通常由数码管或液晶显示屏组成,用于显示按键输入的结果。
它接收来自键盘编码电路的输出信号,并将其转换为相应的显示内容。
5. 控制电路:控制电路负责控制整个键盘显示电路的工作流程。
它可以包括时序控制、功能选择和数据传输等功能。
三、键盘显示程序设计
键盘显示程序设计主要包括以下几个步骤:
1. 初始化:在程序开始时,需要对键盘模块、显示模块和控制电路进行初始化设置。
这包括设置引脚方向、中断触发条件等。
2. 扫描按键:通过键盘扫描电路,逐行或逐列扫描键盘模块中的按键状态。
当检测到按键按下时,记录下对应的按键编码。
3. 编码处理:将扫描到的按键编码通过键盘编码电路进行处理,转换为相应的编码信号。
这可以根据具体的编码方式进行处理。
4. 显示输出:将编码信号传输给显示模块,显示模块将其转换为相应的显示内容,并在数码管或液晶显示屏上显示出来。
5. 循环检测:程序需要进行循环检测,以实时响应按键输入。
通过不断地扫描按键并更新显示内容,实现键盘显示的连续工作。
四、总结
键盘显示电路图与程序是一种常见的电子电路设计,它可以将按键输入转换为相应的显示输出。
键盘显示电路图由键盘模块、键盘扫描电路、键盘编码电路、显示模块和控制电路组成。
键盘显示程序设计包括初始化、扫描按键、编码处理、显示输出和循环检测等步骤。
通过合理设计和编程,可以实现键盘输入的实时显示。