键盘和显示
如何解决电脑开机显示屏和键盘无反应

如何解决电脑开机显示屏和键盘无反应电脑主机启动显示器和键盘都没反应是怎么回事?如何解决电脑开机显示屏和键盘无反应这个故障问题呢?这里店铺就教给大家解决电脑开机显示屏和键盘无反应的方法。
解决电脑开机显示屏和键盘无反应方法一1)显示器插头松动或信号线损坏。
插紧插头或换新线连接。
2)键盘插口松动或损坏。
插紧插头或用好的键盘试。
3)内存条金手指脏。
关机用橡皮条擦内存金手指,用刷子清理插槽。
4)有独立显卡金手指。
做显卡金手指清洁,用刷子清理插槽。
5)CPU过热,主板自检超温保护性关机。
检查CPU风扇是否开机转动,不转则:风扇坏,更换风扇。
主板风扇插头掉落,重新插好。
主板辅助电路存在故障,查看有无电解电容鼓顶,更换电解电容或送修主板。
6)机内积尘过多,引起风扇转速低,清除灰尘。
解决电脑开机显示屏和键盘无反应方法二第一种症状是按电脑电源键后电脑没有任何反应,最常见的原因为硬件问题:硬件问题可以具体到各个电脑组成部分与连接线,可以通过以下方法查找。
一是电脑电源老化造成电压不稳,功率不足,常见的症状是电脑电源闪一下就灭了。
这个时候可以尝试将电源线拔掉再插上开机试试。
如果不行继续往下看。
二是连接线问题,既然电源原因不好判别有没有问题,可以尝试重新插在主板上的电脑机箱内的各个硬件连接线,连接线松动也会造成电脑开机没反应。
三是电脑爱护不当,相对老的机子来说,电脑机箱内的灰尘需要定时清理,不然主板上的灰尘、cpu风扇上的灰尘还有电脑电源上的灰尘都有可能让电脑启动不起来。
这个就好解决,使用清洁工具小心吹扫一下电脑上这几个地方的灰尘就可以了。
四是显示器问题,电脑开机没反应有时候也是说电脑机子可以运行,但是电脑显示器没反应,这种只要换一台显示器就能知道是不是显示器的问题。
如果是显示器的问题,那只能拿去维修点修了。
五是电脑显卡的问题,如上第四步换了一台显示器后还是不能显示,那就可能是电脑显卡的问题了。
显卡问题大部分的原因是在电脑内存上,试着打开机箱清理内存上的灰尘和重新插下集成显卡上的电脑内存,或者换一条内存试下。
笔记本外接显示器与键盘

笔记本外接显示器与键盘
给笔记本电脑外接显示器和键盘可以带来以下优点:
1.提升工作效率:外接显示器和键盘可以使得桌面更为整洁,减少线缆的混
乱,同时可以使得桌面空间得到更好的利用,减少了操作的空间,使得工作更为高效。
2.增强娱乐体验:外接显示器可以使得视觉体验更为宽广,高分辨率的显示
器可以带来更为细腻的视觉效果,如果再配以更好的音响或者耳机,娱乐体验会大大提升。
3.保护眼睛健康:使用外接显示器可以避免眼睛长时间注视笔记本电脑的小
屏幕,从而减轻眼睛的疲劳和伤害。
4.增加安全性:如果笔记本电脑放在膝盖上使用,不小心摔下来很容易损坏,
而外接显示器则可以避免这种问题。
5.更大的灵活性:外接键盘和显示器可以根据需要随时插拔,使得使用更为
灵活,可以根据不同的需要选择不同的设备。
6.更好的输入体验:外接键盘通常具有更好的按键反馈和手感,能够提供更
好的输入体验,特别是在进行文字输入或者编程工作时。
7.提高数据安全性:如果需要处理敏感数据或者进行重要操作,使用外接键
盘可以在一定程度上避免误触笔记本电脑内置键盘造成的不必要的失误。
8.更加节能环保:使用外接设备可以减少电子垃圾的产生,同时也可以降低
能源消耗,更加环保和可持续。
总之,给笔记本电脑外接显示器和键盘可以带来很多优点,从提升工作效率、增强娱乐体验、保护眼睛健康、增加安全性、更大的灵活性、更好的输入体验、提高数据安全性、更加节能环保等方面都可以带来积极的影响。
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
单片机原理及接口技术单片机的开关检测键盘输入与显示的接口设计

单片机原理及接口技术单片机的开关检测键盘输入与显示的接口设计单片机是一种集成了中央处理器、存储器和输入/输出接口的微型电子计算机,其核心是一个集成电路芯片。
它简单、灵活,用于控制电子设备和执行各种任务。
单片机有很多种,其中C51单片机是一种非常常用的型号。
在C51编程中,开关检测、键盘输入和显示是非常常见的接口设计。
接下来,将分别介绍它们的原理和实现方法。
1.开关检测:开关检测是指通过单片机检测开关的状态,以实现对开关的控制。
常见的开关检测方法有两种,一种是使用外部电阻和开关,通过检测电流或电压来判断开关状态;另一种是使用内部电阻和开关,通过检测电阻的值来判断开关状态。
具体实现方法如下:a.外部电阻和开关:检测开关状态的方法是连接一个电阻到开关,并将另一端连接到单片机的输入引脚。
当开关打开时,电阻与单片机输入引脚之间形成一条路径,使得输入引脚接收到高电平信号;当开关关闭时,电阻与单片机输入引脚之间断开,使得输入引脚接收到低电平信号。
b.内部电阻和开关:单片机的引脚通常具有内部上拉或下拉电阻。
当引脚配置为输入模式时,可以选择使能内部上拉或下拉电阻。
通过连接一个开关到引脚,并将另一端连接到电源或地,从而完成开关状态的检测。
当开关打开时,引脚被拉高,输入引脚接收到高电平信号;当开关关闭时,引脚被拉低,输入引脚接收到低电平信号。
2.键盘输入:键盘输入是指通过单片机接收和处理来自键盘的输入信息。
键盘通常是一种矩阵按键结构,可以通过多行多列的方式进行编码。
键盘输入的实现需要通过接口电路将键盘连接到单片机,并在程序中编写相应的扫描算法。
具体实现方法如下:a.键盘连接方式:键盘的行和列线分别连接到单片机的输出和输入引脚上。
行线和列线可以使用独立的引脚,也可以使用矩阵开关编码的方式进行连接。
b.扫描算法:扫描算法是通过逐行扫描和逐列检测的方式来实现键盘输入的。
具体步骤如下:1)将所有行引脚置为高电平,所有列引脚配置为输入模式。
键盘及LED显示实验

实验三键盘及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显示器,只要按地址输出相应的数据,就可以显示所需数码。
六、实验原理图P1口桥接。
八、实验参考流程图1.主程序流程图2.外中断服务程序流程图外部中断0 外部中断1定时器0中断程序,用于消抖动:3.LED显示程序流程图九、C51语言参考源程序#include "reg52.h"unsigned char KeyResult; //存放键值unsigned char buffer[8]; //显示缓冲区bit bKey; //是否有键按下xdata unsigned char P_8255 _at_ 0xf003; //8255的控制口xdata unsigned char PA_8255 _at_ 0xf000; //8255的PA口xdata unsigned char PB_8255 _at_ 0xf001; //8255的PB口xdata unsigned char PC_8255 _at_ 0xf002; //8255的PC口code unsigned char SEG_TAB[] = { //段码0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x0};sbit bLine0 = P3^2;sbit bLine1 = P3^3;//延时1msvoid Delay1ms(){unsigned char i;i = 0;while (--i);}//显示void Display(){unsigned char i = 0x7f;unsigned char j;for (j = 0; j < 8; j++){PA_8255 = i; //扫描PB_8255 = SEG_TAB[buffer[j]]; //段数据i = i / 2 + 0x80;Delay1ms();}}//更新显示缓冲区数据void RefurbishData(){char i;for (i = 7; i >0; i--)buffer[i] = buffer[i-1];buffer[0] = KeyResult;}void Int0Int() interrupt 0{unsigned char i = 0x80;unsigned char KeyResult0 = 0x0;EX0 = 0; //关外部中断0P_8255 = 0x89; //PC口输入bLine0 = 0; //P3.2作行输出while (i){if ((PC_8255 & i) == 0)break;KeyResult0++;i >>= 1;}P_8255 = 0x80; //8255的PA、PB、PC口全作输出口PC_8255 = 0;bLine0 = 1;if (i){TH0 = 60; //定时中断计数器初值TL0 = 176; //定时50msTR0 = 1;KeyResult = KeyResult0;}IE0 = 0; //清除中断EX0 = 1; //开外部中断0}void Int1Int() interrupt 2{unsigned char i = 0x80;unsigned char KeyResult0 = 8;EX1 = 0; //关外部中断0P_8255 = 0x89; //PC口输入bLine1 = 0; //P3.2作行输出while (i){if ((PC_8255 & i) == 0)break;KeyResult0++;i >>= 1;}P_8255 = 0x80; //8255的PA、PB、PC口全作输出口PC_8255 = 0;bLine1 = 1;if (i){TH0 = 60; //定时中断计数器初值TL0 = 176; //定时50msTR0 = 1;KeyResult = KeyResult0;}IE1 = 0; //清除中断EX1 = 1; //开外部中断0}//50ms中断服务程序void INT_Timer0(void) interrupt 1{if (((KeyResult < 8) && !bLine0) ||((KeyResult >= 8) && !bLine1)){bKey = 1; //有键按下,键值在KeyResult中}TR0 = 0;}void main(){char i;bKey = 0; //没有键按下TMOD = 1; //定时器0:方式一P_8255 = 0x80; //8255的PA、PB、PC口全作输出口PC_8255 = 0x0;ET0 = 1; //开定时器0中断EX0 = 1; //开外部中断0EX1 = 1; //开外部中断1IT0 = 1; //边沿触发IT1 = 1; //边沿触发EA = 1; //允许中断for (i = 0; i < 8; i++)buffer[i] = 0x10;// TR0 = 1; //开定时器T0// bRefurbish = 1;while (1){if (bKey){bKey = 0;RefurbishData();}Display(); //调用显示}}十、实验实施步骤1.仔细阅读实验内容及要求,编写C51源程序。
电脑启动了但是屏幕没显示键盘灯不亮

电脑启动了但是屏幕没显示键盘灯不亮电脑是我们日常生活中不可或缺的工具之一,但有时候我们可能会遇到一些问题,比如电脑启动了但是屏幕没有显示,键盘灯也不亮。
这种情况可能会让我们感到困惑,但其实这种问题通常并不难以解决。
原因分析1.连接问题:有时候电脑的显示器或键盘可能会由于连接不良而导致这种情况。
检查一下显示器和键盘是否正常连接到电脑上。
2.电源问题:电脑启动了但屏幕不显示,键盘灯不亮可能是电源供电问题导致的。
检查一下电源线是否插好,电源是否通电。
3.硬件故障:有可能是硬件出现了故障,比如显卡、内存条等硬件问题。
这种情况需要我们请专业的维修人员进行检查和修理。
4.系统问题:有时候系统出现问题也会导致电脑启动但屏幕不显示,键盘灯不亮。
可以尝试重启电脑或者进入安全模式进行修复。
解决方法1.检查连接:首先检查一下所有连接是否正常,包括显示器、键盘等外设的连接是否牢固。
2.电源供电:确认电源线插好并且通电,可以尝试更换电源插座或者电源线。
3.硬件故障排查:如果怀疑是硬件故障,建议找专业的电脑维修人员进行检测和修理。
4.系统问题修复:如果是系统问题导致的显示屏幕不亮,可以尝试进入安全模式或使用系统还原功能修复问题。
结论电脑启动了但屏幕不显示,键盘灯不亮是一种比较常见的问题,通常是由于连接问题或者电源问题导致的。
通过仔细检查和排查,我们可以找到问题的原因并采取相应的措施进行修复。
如果遇到无法解决的情况,建议及时寻求专业的电脑维修帮助,避免问题进一步恶化。
希望这篇文档对您有所帮助。
电脑外设键盘鼠标和显示器的选择
电脑外设键盘鼠标和显示器的选择作为一名资深IT从业者和电子产品爱好者,我深知选择一套优质的电脑外设对于提升工作和娱乐体验的重要性。
在这篇文章中,我将为大家介绍一些关于电脑外设键盘鼠标和显示器的选择,希望能给大家带来一些有益的参考。
1. 键盘:键盘作为我们电脑输入的重要工具之一,其质量对于使用体验有着直接的影响。
对于习惯长时间打字的人来说,一个舒适、耐用并且具有良好触感的键盘尤为重要。
目前市面上有许多种类的键盘可供选择,我个人推荐机械键盘。
机械键盘不仅拥有出色的键入触感,而且更具耐久性,其使用寿命和反应速度都优于传统的薄膜键盘。
当然,针对不同的需求,还有一些特殊功能的键盘可供选择,如游戏键盘、背光键盘等。
选择适合自己需求的键盘将提升您的打字速度和舒适度。
2. 鼠标:鼠标作为我们进行电脑操作的主要工具之一,同样对于使用体验起到至关重要的作用。
对于长时间使用电脑的人来说,一款符合人体工学设计的鼠标可以有效减轻手部疲劳。
同时,一个高精度的光电或激光传感器也能提供更流畅的操作和更准确的定位。
此外,如果您是一位游戏爱好者,还可以选择一款支持多媒体控制和自定义宏功能的游戏鼠标,带来更好的游戏体验。
关于鼠标的选择,我建议您可以先进行尝试,找到适合自己手感和习惯的款式。
3. 显示器:显示器是我们与电脑界面进行互动的主要输出工具,一块高质量的显示器可以提升我们的工作和娱乐体验。
在选择显示器时,最重要的因素是分辨率、刷新率和色彩准确性。
较高的分辨率可以让我们看到更多的细节,提高图像的清晰度;较高的刷新率则可以使得电影和游戏画面更加流畅;色彩准确性则是在设计和摄影工作中必不可少的。
此外,显示器的尺寸、亮度和对比度也需要考虑。
根据自己的需求和预算,选择合适的显示器将为您呈现更真实、更精彩的视觉体验。
总结:在选购电脑外设键盘鼠标和显示器时,我们需要考虑自身的需求和预算,寻找适合自己的产品。
选择一款质量过硬、使用舒适的键盘,一款符合人体工学设计的鼠标,以及一块高分辨率、高刷新率并具备准确色彩表现的显示器,将极大提升您的使用体验和工作效率。
单片机键盘显示实验报告
单片机的键盘和显示实验报告㈠实验目的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从上面的结果可以看出,本次实验基本完成了实验要求。
8255扫描键盘、显示实验
实验九8255扫描键盘、显示实验一.实验要求利用8255可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在由8279控制的七段数码管上。
8255PA口做键盘输入线,PB口作扫描线。
二.实验目的1.掌握8255编程方法。
2.掌握扫描键盘和显示的编程方法。
三.实验电路及连线CS8255接8500H,则命令字地址为8506H,PA口地址为8500H,PB口地址为8502H,PC口地址为8504H。
CS8279接8700H,则8279的状态口地址为8701H; 8279的数据口地址为8700H;模块中的十个短路套都套在8255侧。
四.实验说明在PA口与PB口组成的64点阵列上,把按键接在不同的点上,将得到不同的键码,本实验采用8×2的阵列,共可按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 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 ;读键盘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,#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 ;无键按下KEYCAL: ;计算键码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,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,FEND实验十8279显示实验一.实验要求编制程序,利用8279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。
键盘显示实验报告
键盘显示实验报告键盘显示实验报告一、引言键盘是我们日常生活中常用的输入设备之一,它通过按下不同的按键来输入字符和命令。
在计算机科学领域,键盘显示是一项重要的实验,它涉及到了计算机硬件和软件的相互配合。
本文将介绍一个键盘显示实验的设计和结果分析。
二、实验设计1. 实验目的本实验的目的是通过键盘输入字符,并在计算机屏幕上进行显示。
通过这个实验,我们可以深入了解键盘的工作原理和计算机输入输出的基本知识。
2. 实验材料本实验所需的材料包括:计算机、键盘、显示器和相应的连接线。
3. 实验步骤(1) 将键盘与计算机通过连接线连接好。
(2) 打开计算机,并启动相应的键盘显示程序。
(3) 在键盘上按下不同的按键,观察计算机屏幕上的显示效果。
(4) 分析和记录实验结果。
三、实验结果在本次实验中,我们按下了键盘上的不同按键,并观察了计算机屏幕上的显示效果。
实验结果表明,键盘输入的字符能够准确地显示在屏幕上,并且显示的速度非常快。
四、结果分析1. 键盘工作原理键盘是一种输入设备,它通过按下不同的按键来输入字符和命令。
当我们按下键盘上的某个按键时,键盘会发送一个信号给计算机,计算机通过解读这个信号来确定我们按下的是哪个按键,并将相应的字符显示在屏幕上。
2. 计算机输入输出键盘显示实验涉及到了计算机的输入输出过程。
输入是指将外部信息传递给计算机的过程,而输出是指将计算机处理后的信息传递给外部的过程。
在本实验中,键盘是输入设备,它将我们按下的按键信息传递给计算机;而显示器是输出设备,它将计算机处理后的字符信息显示在屏幕上。
3. 键盘显示的应用键盘显示技术在计算机领域有着广泛的应用。
无论是在日常办公还是在专业领域,键盘输入都是必不可少的。
通过键盘,我们可以输入文字、命令、密码等信息,实现与计算机的交互。
键盘显示技术的发展也为计算机的普及和应用提供了方便。
五、实验总结通过本次键盘显示实验,我们深入了解了键盘的工作原理和计算机输入输出的基本知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
process (clk) begin if clk'event and clk = '1' then q1 <= temp_pressed; q2<=q1; end if; key_pressed<= q1 and not(q2); end process; end moore;
(CDC-IUGREE)5-24-99
译码电路
• 功能:根据输入的key_drv和key_in信号译码输出相应的键值, 并且给出按键标志信号key_pressed
library ieee; use ieee.std_logic_1164.all; entity keydecoder is port (clk: in std_logic; Key_drv: in std_logic_vector(3 downto 0); Key_in: in std_logic_vector(3 downto 0); Key_value: out std_logic_vector(3 downto 0); Key_pressed: out std_logic ); end keydecoder; architecture moore of keydecoder is signal temp: std_logic_vector(7 downto 0); signal temp_pressed: std_logic; signal q1,q2: std_logic;
(CDC-IUGREE)5-24-99
begin temp<=key_drv&key_in; process (temp) begin case temp is when "11101110" =>key_value <= "0001";temp_pressed<='1'; when "11101101" =>key_value <= "0010";temp_pressed<='1'; when "11101011" =>key_value <= "0011";temp_pressed<='1'; when "11100111" =>key_value <= "0100";temp_pressed<='1'; when "11011110" =>key_value <= "0101";temp_pressed<='1'; when "11011101" =>key_value <= "0110";temp_pressed<='1'; when "11011011" =>key_value <= "0111";temp_pressed<='1'; when "11010111" =>key_value <= "1000";temp_pressed<='1'; when "10111110" =>key_value <= "1001";temp_pressed<='1'; when "10111101" =>key_value <= "0000";temp_pressed<='1'; when "10111011" =>key_value <= "1010";temp_pressed<='1'; when "10110111" =>key_value <= "1011";temp_pressed<='1'; when "01111110" =>key_value <= "1100";temp_pressed<='1'; when "01111101" =>key_value <= "1101";temp_pressed<='1'; when "01111011" =>key_value <= "1110";temp_pressed<='1'; when "01110111" =>key_value <= "1111";temp_pressed<='1'; when others =>key_value <= "0000";temp_pressed<='0'; end case; end process;
Hale Waihona Puke constant s0:std_logic_vector(3 downto 0):=”1110”; constant s1:std_logic_vector(3 downto 0):=”1101”; constant s2:std_logic_vector(3 downto 0):=”1011”; constant s2:std_logic_vector(3 downto 0):=”0111”; signal current_state: std_logic_vector(3 downto 0); signal next_state: std_logic_vector(3 downto 0); begin
键盘和显示
(CDC-IUGREE)5-24-99
LED显示管理电路
• LED显示器有两种方式: (1)LED静态显示方式,如图所示: 占用I/O口资源多,功耗大
I/O(1)
I/O(2)
I/O(3)
I/O(4)
GND/+5V
GND/+5V
GND/+5V
GND/+5V GND/+5V
四位静态LED显示器电路
(CDC-IUGREE)5-24-99
存在问题
当键盘存在抖动时,会触发多次的按键标志key_pressed 按键时间较长时,也会触发多次的按键标志key_pressed
(CDC-IUGREE)5-24-99
改进的译码电路
library ieee; use ieee.std_logic_1164.all; entity keydecoder_1 is port (clk: in std_logic; clk_scan: in std_logic; Key_drv: in std_logic_vector(3 downto 0); Key_in: in std_logic_vector(3 downto 0); Key_value: out std_logic_vector(3 downto 0); Key_pressed: out std_logic ); end keydecoder_1; architecture moore of keydecoder_1 is signal temp: std_logic_vector(7 downto 0); signal temp_pressed: std_logic; signal q1,q2,q3,q4,q5,q6: std_logic; signal keypressed_asy: std_logic; begin temp<=key_drv&key_in;
(CDC-IUGREE)5-24-99
二.行列式键盘
1.键盘工作原理
•行列式键盘电路原理所示。按 键设置在行列式交点上,行列 线分别连接到按键开关的两端 。行线通过上拉电阻接VCC, 被钳位在高电平状态。 •键盘中有无按键按下是由列线 送入全扫描字、行线读入行线 状态来判断的。键盘中哪一个 键按下可由列线逐列置低电平 后,检查行输入状态来判断。
I/O(1)
字形码
D
7
D6
D5
D4
D3 I/O(2)
D2
D1
D0
字位码
(CDC-IUGREE)5-24-99
动态扫描的特点
• I/O占用少,功耗低 • 扫描频率的选择: 扫描频率太小,会产生闪烁 扫描频率太大,频繁的开启和关闭LED,会增大功耗 一般在50HZ左右
(CDC-IUGREE)5-24-99
LED显示管理电路的接口功能
Data[31..0]
Dout[7..0]
LED显示 管理电路
Ledsel[7..0]
clk
(CDC-IUGREE)5-24-99
模块划分
Data[31..0] MUX 译码器
Dout[7..0]
clk
分频器
扫描信号 发生器
Ledsel[7..0]
(CDC-IUGREE)5-24-99
process (datain,counter) --32 to 4 数据选择器 begin case counter is when "000" => dataout<= datain(3 downto 0); when "001" => dataout<= datain(7 downto 4); when "010" => dataout<= datain(11 downto 8); when "011" => dataout<= datain(15 downto 12); when "100" => dataout<= datain(19 downto 16); when "101" => dataout<= datain(23 downto 20); when "110" => dataout<= datain(27 downto 24); when "111" => dataout<= datain(31 downto 28); when others => dataout<= datain(3 downto 0); end case; end process;