硬件实验三按键与显示实验
按键显示电路实验报告(3篇)

第1篇一、实验目的1. 熟悉按键电路的基本原理和设计方法。
2. 掌握按键电路的搭建和调试方法。
3. 了解按键电路在实际应用中的重要性。
4. 提高动手实践能力和电路分析能力。
二、实验原理按键显示电路是一种将按键输入转换为数字信号,并通过显示设备进行显示的电路。
本实验主要涉及以下原理:1. 按键原理:按键通过机械触点实现电路的通断,当按键被按下时,电路接通,产生一个低电平信号;当按键释放时,电路断开,产生一个高电平信号。
2. 译码电路:将按键输入的信号转换为相应的数字信号,以便后续处理。
3. 显示电路:将数字信号转换为可视化的信息,如LED灯、数码管等。
三、实验器材1. 电路板2. 按键3. 电阻4. LED灯5. 数码管6. 电源7. 基本工具四、实验步骤1. 按键电路搭建(1)根据电路原理图,在电路板上焊接按键、电阻、LED灯等元器件。
(2)连接电源,确保电路板供电正常。
2. 译码电路搭建(1)根据电路原理图,在电路板上焊接译码电路所需的元器件。
(2)连接译码电路与按键电路,确保信号传输正常。
3. 显示电路搭建(1)根据电路原理图,在电路板上焊接显示电路所需的元器件。
(2)连接显示电路与译码电路,确保信号传输正常。
4. 电路调试(1)检查电路连接是否正确,确保无短路、断路等问题。
(2)按下按键,观察LED灯或数码管显示是否正常。
(3)根据需要调整电路参数,如电阻阻值、电源电压等,以达到最佳显示效果。
五、实验结果与分析1. 实验结果通过实验,成功搭建了一个按键显示电路,按下按键后,LED灯或数码管能够正确显示数字信号。
2. 结果分析(1)按键电路能够正常工作,实现电路通断。
(2)译码电路能够将按键输入转换为相应的数字信号。
(3)显示电路能够将数字信号转换为可视化的信息。
六、实验总结1. 通过本次实验,掌握了按键电路的基本原理和设计方法。
2. 提高了动手实践能力和电路分析能力。
3. 了解了按键电路在实际应用中的重要性。
06 12864LCD显示计算器键盘按键实验

目录1 课程设计概述和要求 (1)1.1 课程设计要求与任务 (2)1.2 课程设计思路 (2)1.3 课程设计需要配置的环境 (3)2 系统设计 (3)2.1 设计框图 (3)2.2 元件解析 (3)2.2.1 LCD12864芯片……………………………………………………………42.2.2 AT89C51芯片 (5)2.2.3 其他部件 (6)2.2.4 电路分析 (7)3 软件设计 (12)3.1 程序流程图 (12)3.2 程序代码 (12)4 系统的仿真与调试 (13)4.1 硬件调试 (13)4.2 软件调试 (14)4.3 软硬件调试 (14)5 总结 (14)附录1:程序代码附录2:12864LCD显示计算器键盘按键实验Proteus仿真图1 课程设计概述和要求1.1 课程设计任务与要求设计任务:利用AT89C51单片机结合12864LCD显示器设计计算器键盘按键。
设计要求1:本设计实现一个12864LCD显示12864LCD显示器设计计算器键盘按键2.利用AT89C51控制整个电路来实现. 显示12864LCD显示器设计计算器键盘按键,系统主要包括硬件和软件两部分。
重点就是各部分硬件的连接设计以及程序的编写。
本章讲述的就是系统硬件的设计,其中包括各模块的器件选择和电路设计。
将计算器按键上的信息传送至AT89C51主芯片之中,利用P2端口使之显示于12864LCD液晶显示屏上。
1.2 课程设计目的思路1、先把与题目有关的芯片资料找到,熟悉一下芯片资料2、把此程序的电路图看懂,了解一下它的实现原理,以及实现的功能。
3、分析一下此程序的各部分的功能,各零件的工作原理。
4、对程序进行调试,分析调试结果,观察并得出结论。
1.3 课程设计需要配置的环境1、一台主机,一台显示器2、Keil uVision3/Keil uVision4 应用程序软件3、ISIS 7 Professional 仿真软件4、老师交给的仿真电路图,及案例5、纸张,以及一些参考资料2 系统设计2.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. 单片机最小系统搭建- 熟悉单片机的最小系统组成,包括复位电路、晶振电路、VCC、GND等。
- 掌握电路板焊接和调试方法。
2. LED流水灯实验- 学习使用51单片机进行简单的单片机应用系统硬件设计。
- 掌握单片机GPIO端口的使用方法。
- 通过编程实现LED灯的流水效果。
3. 按键控制LED灯实验- 学习使用按键输入控制LED灯的亮灭。
- 掌握按键去抖动技术。
4. LCD1602显示屏控制实验- 学习使用LCD1602显示屏显示文字和数字。
- 掌握LCD1602的初始化和显示控制方法。
5. 串口通信实验- 学习使用单片机串口进行通信。
- 掌握串口初始化和通信协议。
6. 温湿度传感器实验- 学习使用温湿度传感器获取环境温度和湿度信息。
- 掌握传感器数据读取和温度湿度计算方法。
7. 多功能密码锁实验- 学习使用单片机实现密码锁功能。
- 掌握按键输入、密码存储和匹配方法。
三、实验步骤1. 实验一:单片机最小系统搭建- 根据实验指导书,准备好实验器材,包括51单片机、电路板、焊接工具等。
- 按照电路图焊接电路,确保电路连接正确。
- 上电测试,观察LED灯是否亮起,确认电路工作正常。
2. 实验二:LED流水灯实验- 编写LED流水灯程序,使用51单片机GPIO端口控制LED灯的亮灭。
- 烧录程序到单片机,观察LED灯的流水效果。
3. 实验三:按键控制LED灯实验- 编写按键控制LED灯的程序,使用按键输入控制LED灯的亮灭。
- 烧录程序到单片机,测试按键控制功能。
4. 实验四:LCD1602显示屏控制实验- 编写LCD1602显示屏显示文字和数字的程序。
- 烧录程序到单片机,观察LCD1602显示屏的显示效果。
嵌入式实验三 键盘检测控制实验

2
ቤተ መጻሕፍቲ ባይዱ
嵌入式技术及应用 实验三
实验三 键盘实验
一、 实验目的 掌握单片机系统中矩阵键盘的编程控制方法,学会实时程序的调试技巧。
二、 实验原理 键盘是单片机应用中常用的输入设备,在应用系统中,操作人员可通过键盘
向系统输入指令、地址和数据,实现简单的人机通信。 键盘实际上是一组按键开关的集合,平时总是处于断开状态,当按下键时它
才闭合。按键在闭合和断开时,触点会存在抖动现象,抖动时间一般为 5-10ms, 如下图示:
键盘的处理主要涉及以下 3 个方面的内容: 按键的识别
所接 I/O 口线是高还是低电平(根据连接情况) 抖动的消除
硬件消抖 软件消抖(延时) 判断键值 独立式键盘 矩阵式键盘 实验板电路原理图如下:
1
嵌入式技术及应用 实验三
三、 实验内容 按下 16 个矩阵键盘依次在数码管上显示 1-16 的平方。如按下第一个显示 1,
第二个显示 4...
四、
实验步骤 1、 按实验内容要求在 µ Vision 中创建项目,编辑、调试、编译程序。 2、 将编译生成的目标码文件(后缀为.Hex)下载到实验板上。 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从上面的结果可以看出,本次实验基本完成了实验要求。
按键控制液晶显示实验

}
if(jianshao==0)
{
delay(10);
if(jianshao==0)
{
if(k==1)
{
if(a==0)a=10;a--;
write_com(0xc0);delay(5);write_data(0x30+a);
}
if(k==0;b--;
write_com(0xc2);delay(5);write_data(0x30+b);
#define uint unsigned int
uchar code table1[]="0.00";
sbit lcdrs=P2^0;
sbit lcdrw=P2^1;
sbit lcde=P2^2;
sbit shezhi=P3^4;
sbit zengjia=P3^5;
sbit jianshao=P3^6;
write_com(0x01);
write_com(0x38);
write_com(0x0f);
write_com(0x06);
}
void keyscan1()
{
if(zengjia==0)
{
delay(10);
if(zengjia==0)
{
if(k==1)
{
a++;if(a==10)a=0;
write_com(0xc0);delay(5);write_data(0x30+a);
}
}
}
void keyscan()
{
if(shezhi==0)
{
delay(10);
if(shezhi==0)
单片机实验报告范文

单片机实验报告范文一、实验目的本实验的目的是通过学习单片机的基本原理和使用方法,掌握单片机在各个实际应用中的基本技能。
二、实验器材及原理1.实验器材:STC89C52单片机、电源、晶振、按键、LED灯、蜂鸣器等。
2.实验原理:单片机是一种微处理器,能够完成各种复杂的功能。
通过学习单片机的工作原理和编程方法,可以控制各种外围设备,实现不同的功能。
三、实验内容及步骤1.实验一:点亮LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)编写程序,点亮LED灯。
2.实验二:按键控制LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)将按键和LED灯与单片机相连。
(3)编写程序,实现按下按键控制LED灯亮灭。
3.实验三:数码管显示步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)将数码管与单片机相连。
(3)编写程序,将数字输出到数码管上显示。
4.实验四:定时器应用步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)编写程序,实现定时器功能。
四、实验结果及分析1.实验一:点亮LED灯LED灯成功点亮,证明单片机与外部设备的连接正常。
2.实验二:按键控制LED灯按下按键后,LED灯亮起,松开按键后,LED灯熄灭。
按键控制LED 灯的效果良好,说明单片机的输入输出功能正常。
3.实验三:数码管显示数码管成功显示数字,说明单片机能够实现数字输出功能。
通过程序设计,可以实现数码管显示不同的数字。
4.实验四:定时器应用定时器正常运行,能够实现精确的定时功能。
通过调节定时器的参数,可以实现不同的定时功能。
五、实验总结通过本次实验,我们学习了单片机的基本原理和使用方法。
通过掌握单片机的编程技巧,我们能够实现各种复杂的功能,如控制LED灯、按键控制、数码管显示等。
这些技能对于日常生活和工程设计都具有很大的实用性。
在实验过程中,我们遇到了各种问题,如电路连接错误、程序编写错误等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科实验报告课程名称:微机原理与接口技术姓名:张开桓学院:信息学院系:控制系专业:自动化学号: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 口连接到键盘接口,则如果有键按下,相应的口线输岀为低,否则输出为髙。
单片 机通过读取接口的状态,判断按下什么键。
有键按下后,要有一泄的延时,防止由于键盘抖 动而引起误操作。
溯沪乂唆实验报告 件实验三 按键与显示实验8个按键的键值从右至左分别为0〜7。
实验例程是查询按键操作,并将按下的键值在6 个静态数码管上显示出来。
6个静态数码管与6片74LS164 (串转井移位寄存器)连接,通 过10 口与单片机连接,实现串行静态显示的控制。
用8P 数拯线将80C51/C8051F020MCU 模块的JD1 (P1 口)与查询式键盘模块JD1C7相 连。
在实验箱右上角的扩展区中插入静态串行显示模块,用二号导线将80C51/C8051F020MCU 模块的P3.0 (RXD)、P3. 1 (TXD)分别与静态数码显示模块的DIN 、CLK 相连:将A7区的电 源短路帽JD5A7打到右端。
在Keil 环境连续运行该程序,观察实验结果。
图2-1 8个独立式按键电路电路图:XCCa6O 二5 仝JD2B£ddddddd vccRRI6B7RI5B } AR 口 ------RI3B J ------- l AH12B !RUB : •>RIOB J 1R9B 【 'i KO-7CQ 工 H r iHcc s101^84UJ益NNN2NN■ c I <I < I < I c■ cKO KI K2 K3 K4 K5 K6 K7(a源程序:DBUF EQU30HDAT EQU P3. 0CLK EQU P3. 1ORG OOOOHLO: MOV Pl, #OFFHLI: MOV A, PlCJNE A, #OFFH, KEYPUTSJMP LIKEYPUT: CJNE A, #OFEH, NEXT1SJMP KONEXT1: CJNE A, #OFDH, NEXT2SJMP KINEXT2: CJNE A, #OFBH, NEXT3SJMP K2NEXT3: CJNE A, #0F7H, NEXT4SJMP K3NEXT4: CJNE A, #OEFH, NEXT5SJMP K4NEXT5: CJNE A, #ODFH, NEXT6SJMP K5NEXT6: CJNE A, #OBFH, NEXT?SJMP K6NEXT?: SJMP K7KO: MOV B, #OOHLCALL DISPLJMP LOKI: MOV B, #O1HLCALL DISPLJMP LOK2: MOV B, #02HLCALL DISPLJMP LOK3: MOV B, #03HLCALL DISPLJMP LOK4: MOV B, #O4HLCALL DISPLJMP LOK5: MOV B, #05HLCALL DISPLJMP LOK6: MOV B, #06HLCALL DISPLJMP LOK7: MOV B, #07HLCALL DISPLJMPDISP: MOVMOVMOVMOVMOVMOVMOVMOVMOVDPO: MOVMOVCMOVDPI: RLCMOVCLRSETBDJNZINCDJNZRETB: DB 3FH, 06H,5BH, 4FH, 66H, 6DH ; 0,1,2, 3,4,5DB 7DH, 07H,7FH, 6FH, 77H, 7CH ; 6, 7, 8, 9, A, BDB 58H, 5EH,79H, 71H, OOH, 40H ; C, D, E, F,结果:按前述要求连接硬件电路,并在K“1上并运行该程序。
然后.按动独立键盘上的按键,按下KEY0-KEY7中的每个键时,即在六位静态数码管上显示该键键值,直到按下下一个键。
②动态显示实验6位动态数码管显示的接口电路设计如图2-3所示,假设P0 口输出显示的段码,P2 口输岀位码,用8P 数据线将80C51/C8051F020MCU 模块的JDO (P0 口)、JD2 (P2口)分别与A7区的JD1A7.LO DBUF, B DBUF+1, B DBUF+2, B DBUF+3, B DBUF+4, B DBUF+5,B RO, #DBUF DPTR, #TAB R2, #06H A, ©ROA, ©A+DPTR R3, #08HADAT, C CLKCLKR3, DPI ROJD2A7相连;A7区的电源短路帽JD5A7打到右端。
在Keil环境连续运行该程序, 观察实验结果。
8劝询细JMBLM IMJD1A4JD2A4图2・3 6位动态数码管显示接口电路流程图如下:源程序:DBUFTEMPORGLJMPORGDISP:MOVMOVMOVMOVMOVMOVMOVMOVMOVMOVDPOO: MOVMOVCMOVINCINCDJNZEQU 30HEQU 40H0000HDISP0100H30H, #831H, #632H, #133H, #834H, #635H, #1RO, #DBUFR1,#TEMPR2,#6DPTR, #SEGTABA, ©ROA, ©A+DPTR@R1,AR1ROR2, DPOODISPO: MOV RO, #TEMPMOV Rl,#6MOV R2,#lDP01: MOV A, ©ROMOV PO, AMOV A, R2MOV P2,AACALL DELAYMOV A, R2RL AMOV R2, AINC RODJNZ Rl, DPO1SJMP DISPOSEGTAB:DB 3FH, 06H, 5BH ;0,1,2DB 4FH, 66H, 6DH ;3,4,5DB 7DH, 07H, 7FH ;6, 7, &DB 6FH, 77H, 7CH ;9, A,BDB 58H, 5EH, 7BH ;C, D,EDB 71H, OOH, 40H ;F,, -DELAY: MOV R4, #03HAA1: MOV R5, #OFFHAA: NOPNOPDJNZ R5, AADJNZ R4,AA1RETEND结果:按要求连接硬件电路并在Keil±运行上述源程序,此时,动态数码管上显示数字“168168”。
5. 设计型实验内容①在最后一个数码管上依次显示a、b、•…f各段,每段显示时间为100ms,用TO泄时器实现;源程序:DBUF EQU 30HORG 0000HLJMP DISPORG 0100HDISP:MOV DBUF, #01HMOV R1,#O1HMOV R2, #6DP: MOV A, DBUFMOV PO,AMOV A, R1MOV P2,AACALL DELAYMOV A, DBUFRL AMOV DBUF, ADJNZ R2,DPSJMP DISPDELAY: MOV TMOD, #01HMOV R3,#2LOOP: MOV THO, #3CHMOV TLO,#OBOHSETB TROJNB TFO, $CLR TFODJNZ R3, LOOPRETEND硬件电路连接:用8P数拯线将80C51/C8051F020MCU模块的JDO (P0 口)、JD2 (P2 口)分别与A7区的JD1A7、JD2A7相连:A7区的电源短路帽JD5A7打到右端。
结果:连接好电路并在Ke订上运行程序,则最后一个动态数码管的边缘各段(即对应 a. b、c、d. e、f各段)依顺时针方向依次点亮,在该数码管上形成了一个运动着的小边框。
与预期通过动态数码管显示所要实现的功能相符,实验成功。
②分别指左IO控制动态扫描显示模块或静态显示模块电路,画岀流程并设计程序实现数码管显示自己的学号后六位号码;动态显示学号流程图:动态数码管显示学号后六位流程图HJJO# 创AOK : IWH£O 存诃AOK : Avnaa 一'目:HOP 4H00 'HH aaya。
:H9Z “H匹'H89 aa46 - H32 卫収4HJ9 aaaz/9 - HJZ “HZO W aa*'£ - Hd9 'H99 “Hdb aa乙ro : H99 'H90 'H范9Q:9vioasodsia dKfsioda“Q zxfaDNIAOKTHAA: NOPAvinaV^d辺XV“Od 0肠純l#勿9#刘dKSI# 也ooaa 盘OY刃ja+v矽純o肠X 9V103S#为丄da9#盘drai# ‘门jaaa# 也I# 4H9£o#血X蚩£££#诫0#如££# 4H0£AOK11VJVAOKAOKAOKAOK :iodaAOKAOKAOK :OdSiazxfaDNIDNIAOKDAOKAOK :00daAOKAOKAOKAOKAOKAOKAOKAOKAOKAOK:dsia HOOIO OHOdsia MiHOOOO OHOHOP DOH dKHlHOC noa jaga :岀討粼NOPDJNZ R5, AADJNZ R4, AA1RETEND硬件电路连接:用8P数据线将80C51/C8051F020MCU模块的JDO (P0 口)、JD2 (P2 口)分别与A7区的JD1A7、JD2A7相连;A7区的电源短路帽JD5A7打到右端。