实验十二键盘显示实验

合集下载

主教材:谭浩强,《 C程序设计》(第三版),清华大学出...1479最全版

主教材:谭浩强,《 C程序设计》(第三版),清华大学出...1479最全版

# include <stdio.h> /* 编译预处理命令 */ int main(void) /* 定义主函数main */ { printf("Hello World!\n"); return 0; /* 返回1个整数0 */ }
2018/12/10
实验1: 熟悉上机环境 ——键盘输入与屏幕输出练习

要使下面程序的输出语句在屏幕上显示a,b,c,则如 何从键盘输入正确的数据格式?
#include <stdio.h> main() { char a,b; int c; scanf("%c%c%d",&a,&b,&c); printf("%c,%c,%c\n",a,b,c); }2018/12/10
实验十四、指针编程练习
实验十五、指针编程练习 实验十六、结构体编程练习
2018/12/10
1. 2.
1. 2. 1.
查找英文月名 求最大值
按序输出3个整数 求字符串长度 在屏幕上模拟显示一个数字式时钟
实验1: 熟悉上机环境 ——在屏幕上显示一个短句

在屏幕上显示一个短句“Hello World!”。
实验2: 顺序结构编程练习 ——计算定期存款本利之和
设银行定期存款的年利率rate为2.25%,并已 知存款期为n年,存款本金为capital元,试编 程计算n年后的本利之和deposit。 要求定期存款的年利率rate、存款期n和存款 本金capital均由键盘输入。

2018/12/10
实验2: 顺序结构编程练习 ——计算定期存款本利之和
2018/12/10
实验内容
实验内容 实验九、函数编程练习 实验十、函数编程练习 实验十一、函数编程练习 实验十二、一维数组和函数综合编程练习 实验十三、预处理命令 1. 2. 1. 2. 1. 2. 1. 1. 2. 实验题目 求素数 将二维数组转置 连接字符串 进制转换 将字符串反序存放并输出 加法考试题 学生成绩统计 求两整数相除的余数 闰年的判断

06 12864LCD显示计算器键盘按键实验

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.设计框图框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。

MCS51单片机原理及应用实验指导书

MCS51单片机原理及应用实验指导书

《MCS51单片机原理及应用》实验指导书唐山学院电工电子实验教学中心年月前言一.单片机原理实验的任务单片机原理实验是单片机原理及应用课程的一部分,它的任务是:1.通过实验进一步了解和掌握单片机原理的基本概念、单片机应用系统的硬件设计及调试方法。

2.学习和掌握单片机应用系统程序设计技术。

3.提高应用计算机的能力及水平,提高逻辑思维及动手能力。

二.实验设备单片机实验所使用的设备由计算机、单片机实验开发系统(见下图0-1),其中计算机是软件开发平台,主要完成程序编辑、编译、下载程序等任务;单片机实验开发系统是硬件开发平台,是基于51/196单片机的扩展实验系统。

计算机和单片机实验开发系统之间是通过RS232串行接口进行通信的。

图0-1 单片机原理实验设备单片机实验开发系统配有开关电源、单片机、晶振、存储器、可编程并行接口芯片、键盘显示控制芯片、24键键盘、六位LED数码管显示、A/D及D/A转换芯片、简单输出口2个、简单输入口1个、逻辑电平输入开关、发光二极管显示电路,并配有小直流电机、步进电机、继电器、音响等驱动电路。

在计算机软件的控制下可完成单片机基本实验及综合设计性实验项目。

所有的MCS51单片机原理及应用课程实验都是在这套实验系统上完成的。

三.对参加实验学生的要求1.阅读实验指导书,复习与实验有关的理论知识,明确实验目的,了解内容和方法。

2.按实验指导书要求进行接线和操作,经检查和指导老师同意后再通电。

3.在实验中注意观察思考,记录有关数据和程序,并由指导教师复查后才能结束实验。

4.实验后应断电并返回WINDOWS下关闭计算机,整理实验台,恢复到实验前的情况。

5.认真写实验报告,按规定格式写出程序流程图、程序、并分析实验结果、完成思考题等。

字迹要清楚,结论要明确。

爱护实验设备,遵守实验室纪律。

*注:本实验指导书适用于MCS51单片机原理及应用A、单片机原理及应用B等课程。

目录第一章MC51单片机原理及应用实验 (3)实验一P1口实验(验证性) (3)实验二外部中断实验(验证性) (5)实验三定时器实验 (7)实验四串行口实验--串并转换实验 (9)实验五数码显示实验 (11)实验六A/D转换实验 (13)实验七数字电子钟实验(综合性) (15)实验八D/A转换实验 (16)实验九简单I/O口扩展实验 (18)实验十步进电机实验 (20)实验十一直流电机实验 (22)实验十二PC机与单片机串行通信实验 (24)实验十三继电器与电子音响实验 (26)实验十四8255可编程并行接口实验 (28)实验十五键盘显示接口实验 (30)第二章单片机开发实验系统及TMSD调试程序 (32)第一节单片机开发实验系统 (32)第二节TMSD源语言调试程序简介 (35)第一章MCS51单片机原理及应用实验实验一P1口实验一.实验目的1.学习P1口的使用方法。

从键盘输入数据并显示实验报告

从键盘输入数据并显示实验报告

从键盘输入数据并显示实验报告一、实验目的与内容1、实验目的掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理,并在程序中设置错误出口。

2、实验内容编写程序,将键盘接收到的四位十六进制数按“Enter”回车键转化为二进制数,再显示在屏幕上, 按“空格键”结束!。

若输入的不是0-F间的数字,则显示出错信息,并要求重新输入。

二、实验设备(环境)1、实验设备(含芯片名称、功能简介)微型计算机一台2、实验环境TPC-ZK-II集成环境3、使用语言汇编语言三、实验原理(实验所用到的知识点及相关内容)1.在TPC-ZK-II集成环境下输入汇编程序,编译、连接,生成.exe文件。

2.按提示输入数据,在屏幕显示的运行结果中查看结果是否正确。

3.输入不同的数据,可得到不同的结果。

4、参考流程图四、实验步骤(包括步骤、代码、实验截图及其必要说明)编写程序,将键盘接收到的 4 位 16 进制数转换为等值的二进制数,再显示在荧光屏上。

分析:整个程序分为 3 个部分:键盘输入、转换、显示,可以分别用子程序来完成。

1. 输入。

输入可以利用字符串输入。

这时需要在主程序中先开辟一段输入缓冲区。

字符串输入 ( 0AH 功能 ),入口参数 DS : DX = 缓冲区的首地址,( DS :DX ) = 限制最多输入的字符数,功能号 AH = 0AH,类型号 21H。

出口参数 ( DS : DX+1 ) =实际键入的字符 ( 不含回车符 ),从( DS : DX+2 ) 开始顺序存放键入的字符串,回车符 0DH为串尾最后一字符。

实现功能:等待从键盘输入字符串,并存入设定的缓冲区内,同时回显字符串,光标随着移动,回车符使光标回到行首。

注意事项:应按要求先定义缓冲区,再调用。

数据缓冲区的设置如下:DATA SEGMENT ; 定义缓冲区MARK DB ?MESS DB 'input:$' ;输入字符串提示ERROR DB 0DH,0AH,'input error!',0DH,0AH,'$' ;输入错误提示DATA ENDS从键盘输入‘ ABCD ’, 回车,内存的存放结果 :子程序如下:INPUT PROCLEA DX, striMOV AH, 09H ; 调显示功能INT 21HLEA DX , maxMOV AH , 0AHINT 21H ; 调 0A输入功能RETINPUT ENDP2. 转换。

键盘与数码管显示实验

键盘与数码管显示实验

R72 10K
S14 SW-PB S18 SW-PB S22 SW-PB S26 SW-PB
R73 10K
S15 SW-PB S19 SW-PB S23 SW-PB S27 SW-PB
D2 Diode
D3 Diode
D4 Diode
D5 Diode
J33 1 2 3 4 5 6 7 8
Header 8
R94
R95
Res1
Res1
Res1
Res1
Res1
Res1
Res1
Res1
330R
330R
330R
330R
330R
330R
330R
330R
DS1
11 7 4 2 1 10 5 3
a b DIG1 c d e f g DP
HDSP-B09G
DIG2 DIG3
DP3
DP2
K1 DIG4 K2
K3 K4
9 GND COM D 10
ULN2803A GND
VCC
Pad_DS_K1 Pad_DS_K2 Pad_DS_K3 Pad_DS_K4
Pad_DS_K5
Pad_DS_K6
Pad_DS_K7
Pad_DS_K8 J37
S8550
R80 Res1 10K Q20
S8550
R81 Res1 10K Q21
键盘与数码管显示
一、4X4键盘 二、LED显示器的基本结构 三、实验箱原理图 四、STC15 I/O口 工作模式配置 五、实验要求
一、4X4键盘
5V
行线(输出)
•键特征值的判断
列线(输入)
•键盘控制方式:扫描、中断

单片机键盘显示实验报告

单片机键盘显示实验报告

单片机的键盘和显示实验报告㈠实验目的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从上面的结果可以看出,本次实验基本完成了实验要求。

微机原理实验指导书

微机原理实验指导书

8086微机接口实验指导书微机原理与接口实验指导书成都工业学院机电工程系软件实验实验序号软件实验名称入口地址页码实验一清零程序3000H 4 实验二拆字程序3020H 5 实验三拼字程序3040H 6 实验四数据区移动3060H 7 实验五数据排序实验3090H 9 实验六找“零”个数30B0H 10 实验七32位二进制乘法30D0H 11 实验八多分支程序3130H 12 实验九显示子程序31E0H 13 实验十键盘扫描显示实验联机操作14 实验十一二进制转换到BCD 联机操作15 实验十二二进制转换到ASCII 联机操作168086微机接口实验指导书硬件实验实验序号硬件实验名称入口地址页码实验一8255并行口实验㈠:A.B.C口输出方波32C0H 17 实验二8255并行口实验㈡:PA口控制PB口32E0H 18 实验三8255并行口实验㈢:控制交通灯32F0H 19 实验四简单I/O口扩展3380H 20 实验五A/D转换实验3390H 23 实验六D/A转换实验㈠:输出方波33E0H 25 实验七D/A转换实验㈡:输出锯齿波33F0H 27 实验八8259中断控制器实验3400H 28 实验九定时/计数器:8253方波3490H 30 实验十继电器控制34B0H 32 实验十一8251串行通信实验㈠:自发自收35C0H 33实验十二8251串行通信实验㈡:与PC通信8251r.asm8251t.asm35实验十三步进电机控制3620H 38 实验十四小直流电机调速实验3670H 39 实验十五温度闭环控制联机操作40 实验十六音频控制联机操作41软件实验本节共编了12个软件实验,通过这些程序的调试使学生熟悉8088/86的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。

实验一清零程序一、实验目的掌握8088汇编语言程序设计和调试方法,熟悉键盘操作。

matlab实验内容答案解析

matlab实验内容答案解析

实验报告说明:matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。

第一次实验内容:实验一 MATLAB 运算基础一、实验目的1.熟悉启动和退出MATLAB 的方法。

2.熟悉MATLAB 命令窗口的组成。

3.掌握建立矩阵的方法。

4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。

二、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1)22sin 8511z e ︒=+(2)12ln(2z x =,其中2120.455i +⎡⎤=⎢⎥-⎣⎦(3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02a ae e z a a --=+=---提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。

(4)2220141122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪--≤<⎩,其中t =0:0.5:2.5 提示:用逻辑表达式求分段函数值。

2.已知12344347873657A -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,131203327B -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求下列表达式的值:(1) A+6=B 和A-B+I(其中I 为单位矩阵)。

(2) A*B 和A.*B 。

(3) A^3和A^.3 。

(4) A/B 和B\A 。

(5)[A ,B]和[A([1,3],;);B^2] 。

3.设有矩阵A 和B12345678910111213141516171819202122232425A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦, 30161769023497041311B ⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎣⎦(1) 求它们的乘积C 。

(2) 将矩阵C 的右下角3×2子矩阵赋给D (3) 查看MATLAB 工作空间使用情况。

4.完成下列操作:(1)求[100,999]之间能被21整除的数的个数。

实验箱使用手册

实验箱使用手册

目 录第一章 系统概述--------------------------------------------------11.1 系统主要特点----------------------------------------------11.2 系统资源分配----------------------------------------------21.3 系统配置--------------------------------------------------3 第二章 系统组成和结构--------------------------------------------42.1 系统接口定义----------------------------------------------42.2 系统硬件组成----------------------------------------------6 第三章 系统安装与使用-------------------------------------------11 第四章键盘监控使用简介---------------------------------------124.1 引言-----------------------------------------------------124.2 键盘显示-------------------------------------------------124.3 功能键操作说明一缆表-------------------------------------124.4 总操作过程-----------------------------------------------134.5 监控程序命令及操作---------------------------------------13 第五章 8086K实验系统与PC机联机操作------------------------------165.18086K软件概述----------------------------------------165.28086K软件安装----------------------------------------165.38086K软件启动和联机----------------------------------165.48086K软件主窗口--------------------------------------175.5 菜单栏和工具栏命令简介-----------------------------------175.5.1文件菜单栏--------------------------------------------175.5.2编辑菜单栏--------------------------------------------185.5.3调试菜单栏--------------------------------------------185.5.4设置--------------------------------------------------195.5.5窗口--------------------------------------------------19 第六章实验指导--------------------------------------------------20 实验说明------------------------------------------------------20 软件实验------------------------------------------------------21 实验一 二进制多位加法运算----------------------------------21 实验二 二进制码转换为BCD码---------------------------------22 实验三 BCD码转换为二进制码 ---------------------------------25 实验四 十进制数的BCD码相减运算-----------------------------27 实验五 内存清零--------------------------------------------29 实验六 数码显示--------------------------------------------30 实验七 求最大值和最小值-------------------------------------33 实验八 数据块移动------------------------------------------37 实验九 多分支程序-------------------------------------------411硬件实验------------------------------------------------------43 实验一 A/D转换实验-----------------------------------------43 实验二 D/A转换实验(一)-------------------------------------48 实验三 D/A转换实验(二)--------------------------------------51 实验四 8255A并行口实验(一)---------------------------------55 实验五 8255A并行口实验(二)----------------------------------57 实验六 定时器 / 计数器---------------------------------------62 实验七 8259单级中断控制器实验-------------------------------65 实验八 串行接口和应用(一)串行发送---------------------------72 实验九 串行接口和应用(二)串行接收---------------------------82 实验十 小直流电机调速实验------------------------------------86 实验十一 步进电机控制----------------------------------------90 实验十二 继电器控制------------------------------------------99 实验十三 存贮器读写实验-------------------------------------101 实验十四 电子琴实验-----------------------------------------105 实验十五 简单I/O口扩展实验---------------------------------112 实验十六 8251可编程通讯接口与PC机通讯--------------------114 实验十七 LED16*16点阵显示实验-----------------------------122 实验十八 128×64 LCD液晶显示实验-------------------------126 实验十九 8237 DMA传送实验---------------------------------134 实验二十 8250串口实验------------------------------------144 实验二十一 8279键盘显示实验-------------------------------152 实验二十二 温度控制实验-----------------------------------157 实验二十三 压力测量实验-----------------------------------161 附录一 实验程序目录---------------------------------------163 附录二88部分实验接线汇总表-------------------------------------165 附录三 8086K字形字位表--------------------------------166 附录四 8086K键值表------------------------------------1672第一章系统概述引言 本《实验指导书》适用于8086/88微机实验开发系统,本书就598K实验开发系统的8086部分作详细介绍,其它机型均可参考。

计算机组装上机实验5篇

计算机组装上机实验5篇

计算机组装上机实验5篇第一篇:计算机组装上机实验计算机组装实验/实训内容实验一:认识计算机系统各个硬件及外设实验目的:了解计算机系统各个硬件的外形、特征实验重点:掌握各个部件在机箱内的位置实验难点:各个部件的防接错特征实验步骤:1.用螺丝刀拆卸计算机各个硬件,注意轻拿轻放,保护好螺丝不要丢失2.根据学过的每个硬件的知识观察各个硬件的外形、特征3.观察每个硬件在机箱里的位置4、写出实验心得体会实验二:AMD,Intel CPU编号识别实验目的:了解AMD,Intel CPU外形、接口特征实验重点:AMD,Intel CPU编号的辨别实验难点:AMD,Intel CPU的防接错特征实验步骤:1、根据每个人的电脑内的CPU来分别辨别不同厂商的CPU、型号、接口类型2、观察AMD及Intel CPU 外形、接口特征3、在实验报告上写出自己的CPU 厂商、型号、接口类型实验三:AMD,Intel CPU和风扇的安装实验目的:掌握AMD,Intel CPU的安装方法实验重点:AMD,Intel CPU安装方法实验难点:AMD,Intel CPU的防接错特征实验步骤:1、根据每个人的电脑内的CPU来分别辨别不同厂商的CPU、型号、接口类型2、观察AMD及Intel CPU 外形、接口特征3、安装AMD或Intel CPU到主板的CPU插槽上,同时安装散热风扇实验四:认识主板的结构实验目的:了解AMD,Intel CPU外形、接口特征实验重点:AMD,Intel CPU编号的辨别实验难点:AMD,Intel CPU的防接错特征实验步骤:2、根据每个人的电脑内的CPU来分别辨别不同厂商的CPU、型号、接口类型2、观察AMD及Intel CPU 外形、接口特征3、在实验报告上写出自己的CPU 厂商、型号、接口类型实验四:认识主板的结构实验目的:了解主板的结构和组成原理实验重点:主板上各个元器件的识别实验难点:主板上每个电子元器件的位置及特征实验步骤:1、观察自己的主机内的主板的厂商、型号2、观察主板上的各个电子元器件,能指出其名字3、观察南北桥芯片组及各种外设接口实验六:主板驱动程序的安装实验目的:掌握主板驱动程序的安装过程实验重点:不同主板的驱动安装实验难点:找到对应的主板驱动程序实验步骤:1、通过优化大师查看自己的主板的型号及厂商2、下载驱动程序或把主板光盘自带的驱动程序放入光驱3、安装驱动程序,重启实验七:内存的识别及参数测试实验目的:了解内存的外形、接口特征实验重点:内存的安装实验难点:参数的测试实验步骤:1、根据每个人的电脑内存来分别辨别不同厂商的内存型号、接口方式2、观察不同类型的内存的外形、接口特征3、在实验报告上写出自己的内存厂商、型号、接口类型及容量4.用内存测试工具软件Hwinfo32测试内存,观察内存的参数指标实验八:主流硬盘的编号参数识别实验目的:了解主流硬盘的编号参数和接口类型实验重点:主流硬盘的编号识别实验难点:硬盘的接口连接实验步骤:1、根据每个人的电脑硬盘来分别辨别不同厂商的硬盘型号、容量、接口方式2、观察不同类型的硬盘的外形、接口特征3、在实验报告上写出自己的硬盘的厂商、型号、接口类型及容量实验九:电源各种引线接口的连接实验目的:了解电源中各种引线的接口及连接设备实验重点:电源的引线连接到设备中实验难点:电源的安装实验步骤:1、根据每个人的电脑电源来分别辨别不同厂商的电源型号、引线的接口2、观察不同类型的电源的外形、接口特征3、在实验报告上写出自己的电源的厂商及接口的阵脚数实验十:键盘和鼠标的安装实验目的:掌握键盘和鼠标的安装方式实验重点:键盘鼠标的安装实验难点:接口的识别实验步骤:1、根据每个人的电脑键盘和鼠标来分别辨别不同厂商的键盘和鼠标的类型和厂商2、观察键盘和鼠标的外形、接口特征3、在实验报告上写出自己的键盘和鼠标的生产厂商及接口方式实验十一:显示器的相关设置实验目的:掌握显示器的菜单设置实验重点:对于分辨率、语言、对比度、亮度的设置实验难点:显示器的水纹、消磁功能的设置实验步骤:1、根据每个人的显示器的类型来辨别不同厂商的显示器的类型2、观察显示期的种类、接口特征、及厂商3、在实验报告上写出自己的显示器的生产厂商及类型4、运用显示器上的主菜单设置语言、对比度、亮度、尺寸、消磁、水纹等功能实验十二:计算机组装实训实验目的:掌握计算机中各种硬件的组装和连线实验重点:计算机中各种硬件的组装实验难点:各种硬件的数据及电源线连接实验步骤:1、把各种硬件按照组装的步骤把每个硬件按照到主板上固定好主板到机箱上2、注意螺丝不要拧死,硬件安装到位3、连接各种数据线和电源线4、连接外设5、通电检测6、排除故障实验十三:OFFICE 2003的安装与删除实验目的:掌握office2003的安装与删除的方法实验重点:office2003安装的步骤及目录实验难点:安装时有选择的安装软件实验步骤:1、把准备好的OFFICE 2003安装程序通过开始菜单----控制面板—添加删除程序2、如果是.EXE程序直接安装到制定的目录3、打开各个程序看看程序安装是否正确4、删除OFFICE 2003软件实验十四:OFFICE 2003的安装与删除实验目的:掌握office2003的安装与删除的方法实验重点:office2003安装的步骤及目录实验难点:安装时有选择的安装软件实验步骤:4、把准备好的OFFICE 2003安装程序通过开始菜单----控制面板—添加删除程序5、如果是.EXE程序直接安装到制定的目录6、打开各个程序看看程序安装是否正确4、删除OFFICE 2003软件第二篇:计算机组装上机实验报告西安邮电大学计算机装配调试上机实习报告书系部名称:学生姓名:专业班级:学号:指导教师:计算机学院网络实习时间: 2014年12月22日至2014年12月26 日上机实习报告一、实习任务目标帮助我们了解计算机的组成以及性能,还有能对计算机进行基本的操作。

矩阵键盘按键的数码管显示矩阵,键盘按键的数码管显示

矩阵键盘按键的数码管显示矩阵,键盘按键的数码管显示

一、矩阵键盘按键的数码管显示1.实验目的(1)掌握VHDL语言的语法规范,掌握时序电路描述方法(2)掌握多个数码管动态扫描显示的原理及设计方法2.实验所用仪器及元器件计算机一台实验板一块电源线一根扁平线一根下载线一根3.实验任务要求设计出4*4矩阵键盘对某一按键按下就在数码管显示一个数字。

按键从左上角到右下角依次为1,2, (16)4.实验原理按键模块原理键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

键盘键值的获取:键盘上的每一个按键其实就是一个开关电路,当某键被按下时,该按键的接点会呈现0的状态,反之,未被按下时则呈现逻辑1的状态。

扫描信号由row进入键盘,变化的顺序依次为1110-1101-1011-0111-1110。

每一次扫描一排,依次地周而复始。

例如现在的扫描信号为1011,代表目前正在扫描9,10,11,12这一排的按键,如果这排当中没有按键被按下的话,则由column 读出的值为1111;反之当9这个按键被按下的话,则由column读出的值为1110。

根据上面所述原理,我们可得到各按键的位置与数码关系如表所示:1110 1110 1110 1110 1101 1101 1101 1101row1110 1101 1011 0111 1110 1101 1011 0111 column1 2 3 4 5 6 7 8键值row 1011 1011 1011 1011 0111 0111 0111 0111 column 1110 1101 1011 0111 1110 1101 1011 0111键值9 10 11 12 13 14 15 16动态显示原理为使得输入控制电路简单且易于实现,采用动态扫描的方式实现设计要求。

键盘及LED显示试验

键盘及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显示器,只要按地址输出相应的数据,就可以显示所需数码六、实验原理图1 / 98255七、连线说明F4区: CS 、A0 、A1A3 区:CS1、A0 、A1 B6 区: JP56(PA 口)F4 区: JP41(C) B6 区: JP53(PB 口) F4 区: JP42(B) B6 区: JP52(PC 口) F4 区: JP47(A) A3 区: JP51F4 区: JP92(D)A3 区: P1.6、 P1.7A3 区: INT0 、INT1注: F4 的 D 无法与 INT0(P3.2) 、INT1(P3.3) 直接连接,所以使用 P1 口桥接。

DS30 LG4041AHBSEGB (8255 PB6) 7 SEGC (8255 PB5) 4 SEGD (8255 PB4) 2 SEGE (8255 PB3) 1SEGA (8255 PB7) 11SEGH (8255 PB0) JP42 a ba c d g bf ed cg dp dpGND42afgb e d c dp GND39a fgb ed d cpGND28afgb e d c dp GND16DS29LG4041AHSEGH 3SEGA 11 SE SEGC 4 SEGD 2SEGE 1a b c d e fgdpa gbdd c paGND3a GND2adpGND1GND498 6 JP41(PA7)(8255 PA6) (8255 PA5) (8255 PA4) (8255 PA3) (8255 PA2)(8255PA1)(8255 PA0)12 3 45C6VCCR162 5.1KVCCR1635.1KU36D0 34 D1 33 D2 32D3 31 D4 30 D5 29D6 28 D7 27RD 5 WR 36D0PA0 D1PA1 D2PA2 D3 PA3 D4 PA4 D5 PA5 D6 PA6 D7PA7 RD PB0 WR PB1 A0 PB2 A1 PB3 RESET PB4 CSPB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC74 PA0 3 PA1 2 PA2 1 PA3 40 PA4 39 PA5 38 PA6 37 PA7 18 PB019 PB1 20 PB2 21 PB3 22 PB4 23 PB5 24 PB6 25 PB714 PC0 15 PC1 16 PC2 17 PC3 13 PC4 12 PC5 11 PC6 10PC71 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8JP56JP53JP526 7)2.3P (0T NABCDE)3.3P (0T N(8255 PC7) (8255 PC6) (8255 PC5) (8255 PC4) (8255 PC3) (8255 PC2) (8255 PC1) (8255 PC0)JP92 1 23 54D 67 8 JP47 1 2 3 54A 6 7 8八、实验参考流程图1.主程序流程图2.外中断服务程序流程外部中断1图外部中断3. LED 显示程序流程图九、 C51语言参考源程序#include "reg52.h" unsigned char KeyResult; unsigned char buffer[8]; bit bKey;xdata unsigned char P_8255 _at_ 0xf003; xdata unsigned char PA_8255 _at_ 0xf000; xdata unsigned char PB_8255 _at_ 0xf001; xdata unsigned char PC_8255 _at_ 0xf002; 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; // 延时 1ms void Delay1ms() {unsigned char i;Y// 存放键值// 显示缓冲区 // 是否有键按//8255 的控制//8255的 PA 口 //8255的 PB 口 //8255的 PC 口 // 段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; P_8255 = 0x89; bLine0 = 0; // 关外部中断//PC 口输入 //P3.2 作行输出while (i){if ((PC_8255 & i) ==0) break;KeyResult0++; i >>= 1;}P_8255 = 0x80; PC_8255 = 0;//8255 的 PA 、PC 口全作输出口IE1 = 0; EX1 = 1;}bLine0 = 1; if (i){TH0 = 60; TL0 = 176; TR0 = 1; KeyResult = KeyResult0;}// 定时中断计数器初值// 定时 50msIE0 = 0; EX0 = 1; }// 清除中断 // 开外部中断void Int1Int() interrupt 2 { unsigned char i = 0x80; unsigned char KeyResult0 = 8; EX1 = 0; P_8255 = 0x89; bLine1 = 0; // 关外部中断//PC 口输入 //P3.2 作行输出while (i) {if ((PC_8255 & i) == 0) break; KeyResult0++; i >>= 1;}P_8255 = 0x80; PC_8255 = 0; bLine1 = 1;//8255 的 PA 、 PB 、PC 口全作输出口if (i){TH0 60;TL0 = 176;TR0 1; }KeyResult = KeyResult0;// 定时中断计数器初值// 定时 50ms// 清除中断 // 开外部中断//50ms 中断服务程序void INT_Timer0(void) interrupt 1{if (((KeyResult < 8) && !bLine0) || ((KeyResult >= 8) && !bLine1)){bKey = 1;}TR0 = 0;}void main(){char i;for (i = 0; i < 8; i++) buffer[i] = 0x10; // TR0 = 1;// bRefurbish = 1;while (1){if (bKey){bKey = 0; RefurbishData(); }Display();}}十、实验实施步骤1 .仔细阅读实验内容及要求,编写 C51 源程序。

毕业论文 在智能仪器实验板上开发键盘与LED显示

毕业论文 在智能仪器实验板上开发键盘与LED显示

第一章绪论1.1 选题的背景与意义“工欲善其事,必先利其器。

”,这是中国的一句古话,人们早就知道了工具的重要性。

随着以知识经济为特征的信息时代的到来,人们对仪器仪表作用的认识愈加深入。

作为工业自动化技术工具的自动化仪表与控制装置,在高新技术的推动下,正跨入真正的数字化、智能化、网络化的时代。

其技术发展的主流趋势表现在:测量信息数字化,检测控制仪表智能化,控制管理集成化。

自动化的基础必须是依靠仪器仪表获取应有的、可靠的信息,人们已经认识到仪器仪表已不仅仅是工业时代必不可少的“工具”,而且是当今高科技信息时代的“尖兵”,是信息的源头。

科技要发展,生产要发展,仪器仪表必须先行发展,己成为当今有识之士的共识。

仪器仪表的水平是科学技术现代化的重要标志,没有现代化的仪器仪表,国民经济是无法发展的。

近20年来,世界上工业发达国家都十分重视仪器仪表的发展,其发展速度己远远超过国民经济的其它部门。

我国己将信息产业作为优先发展的产业,因此,作为信息产业重要组成部分的仪器仪表急需并且必将得到加速发展近年来,各种高新技术迅猛发展,特别是微电子、微机械、新材料和新工艺的发展以及计算机、通信技术的广泛应用,正在彻底改变着自动化仪表的结构及其工作原理,进而实现传统仪表不可能完成的全新的功能,制造出新一代传感检测仪表和控制装置。

随着微电子技术的不断发展,微处理器芯片的集成度越来越高,已经可以在一块芯片上同时集成CPU、内存、定时器/计数器、并行和串行接口、A/D转换等。

人们把这种超大规模集成电路芯片称作“单片微控制器”,简称为单片机或微控制器。

单片机的出现,引起了仪器仪表结构的变革。

以单片机为主体取代传统仪器仪表的常规电子线路,可以容易地将计算机技术与测量控制技术结合在一起,组成新一代的“智能化测量控制仪表”。

这种新型的智能仪表在测量过程自动化、测量结果的数据处理以及功能的多样化方面,都取得了巨大的发展。

目前在研制高精度、高性能、多功能的测量控制仪表时,几乎没有不考虑采用微处理器使之成为智能仪表的,而在仪器仪表中使用的最多的微处理器之一就是单片机。

微机原理键盘扫描及显示设计实验

微机原理键盘扫描及显示设计实验

微机原理键盘扫描及显⽰设计实验⼀、实验名称:键盘扫描及显⽰设计实验⼆、实验⽬的1.学习按键扫描的原理及电路接法;2.掌握利⽤8255完成按键扫描及显⽰。

三、实验内容及步骤1. 实验内容编写程序完成按键扫描功能,并将读到的按键值依次显⽰在数码管上。

实验机的按键及显⽰模块电路如图1所⽰。

按图2连线。

图1 键盘及显⽰电路图2 实验连线2. 实验步骤(1)按图1接线;(2)键⼊:check命令,记录分配的I/O空间;(3)利⽤查出的地址编写程序,然后编译链接;(4)运⾏程序,观察数码管显⽰是否正确。

四、流程图五、源程序;Keyscan.asm;键盘扫描及数码管显⽰实验;***************根据CHECK配置信息修改下列符号值*******************IOY0 EQU 9800H ;⽚选IOY0对应的端⼝始地址;*****************************************************************MY8255_A EQU IOY0+00H*4 ;8255的A⼝地址MY8255_B EQU IOY0+01H*4 ;8255的B⼝地址MY8255_C EQU IOY0+02H*4 ;8255的C⼝地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)DATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS ;键值表,0~F对应的7段数码管的段位值CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,3000H ;建⽴缓冲区,存放要显⽰的键值MOV AL,00H ;先初始化键值为0MOV [SI],ALMOV [SI+1],ALMOV [SI+2],ALMOV [SI+3],ALMOV DI,3003HMOV DX,MY8255_MODE ;初始化8255⼯作⽅式MOV AL,81H ;⽅式0,A⼝、B⼝输出,C⼝低4位输⼊OUT DX,ALBEGIN:CALL DIS ;显⽰刷新CALL CLEAR ;清屏CALL CCSCAN ;扫描按键JNZ GETKEY1 ;有键按下则跳置GETKEY1MOV AH,1 ;判断PC键盘是否有按键按下INT 16HJZ BEGIN ;⽆按键则跳回继续循环,有则退出QUIT:MOV AX,4C00H ;返回到DOSINT 21HGETKEY1:CALL DIS ;显⽰刷新CALL DALLYCALL DALLYCALL CCSCAN ;再次扫描按键JNZ GETKEY2 ;有键按下则跳置GETKEY2GETKEY2:MOV CH,0FEHMOV CL,00H ;设置当前检测的是第⼏列COLUM:MOV AL,CH ;选取⼀列,将X1~X4中⼀个置0 MOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_C ;读Y1~Y4,⽤于判断是哪⼀⾏按键闭合IN AL,DXL1:TEST AL,01H ;是否为第1⾏JNZ L2 ;不是则继续判断MOV AL,00H ;设置第1⾏第1列的对应的键值JMP KCODEL2:TEST AL,02H ;是否为第2⾏JNZ L3 ;不是则继续判断MOV AL,04H ;设置第2⾏第1列的对应的键值JMP KCODEL3:TEST AL,04H ;是否为第3⾏JNZ L4 ;不是则继续判断MOV AL,08H ;设置第3⾏第1列的对应的键值JMP KCODEL4:TEST AL,08H ;是否为第4⾏JNZ NEXT ;不是则继续判断MOV AL,0CH ;设置第4⾏第1列的对应的键值KCODE:ADD AL,CL ;将第1列的值加上当前列数,确定按键值CALL PUTBUF ;保存按键值PUSH AXKON:CALL DIS ;显⽰刷新CALL CLEAR ;清屏CALL CCSCAN ;扫描按键,判断按键是否弹起JNZ KON ;未弹起则继续循环等待弹起POP AXNEXT:INC CL ;当前检测的列数递增MOV AL,CHTEST AL,08H ;检测是否扫描到第4列JZ KERR ;是则跳回到开始处ROL AL,1 ;没检测到第4列则准备检测下⼀列MOV CH,ALKERR:JMP BEGINCCSCAN PROC NEAR ;扫描是否有按键闭合⼦程序MOV AL,00HMOV DX,MY8255_A ;将4列全选通,X1~X4置0 OUT DX,ALMOV DX,MY8255_CIN AL,DX ;读Y1~Y4NOT ALAND AL,0FH ;取出Y1~Y4的反值RETCCSCAN ENDPCLEAR PROC NEAR ;清除数码管显⽰⼦程序MOV DX,MY8255_B ;段位置0即可清除数码管显⽰MOV AL,00HOUT DX,ALRETCLEAR ENDPDIS PROC NEAR ;显⽰键值⼦程序PUSH AX ;以缓冲区存放的键值为键值表偏移找到键值并显⽰MOV SI,3000HMOV DL,0F7HMOV AL,DLAGAIN:PUSH DXMOV DX,MY8255_AOUT DX,AL ;设置X1~X4,选通⼀个数码管MOV AL,[SI] ;取出缓冲区中存放键值MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AXMOV AL,[BX] ;将键值作为偏移和键值基地址相加得到相应的键值 MOV DX,MY8255_B OUT DX,AL ;写⼊数码管A~DpCALL DALLYINC SI ;取下⼀个键值POP DXTEST AL,01H ;判断是否显⽰完?JZ OUT1 ;显⽰完,返回ROR AL,1MOV DL,ALJMP AGAIN ;未显⽰完,跳回继续OUT1:POP AXRETDIS ENDPPUTBUF PROC NEAR ;保存键值⼦程序MOV SI,DIMOV [SI],ALDEC DICMP DI,2FFFHJNZ GOBACKMOV DI,3003HGOBACK: RETPUTBUF ENDPDALLY PROC NEAR ;软件延时⼦程序PUSH CXMOV CX,00FFHD1: MOV AX,00FFHD2: DEC AXJNZ D2LOOP D1POP CXRETDALLY ENDPCODE ENDSEND START六、体会和感想通过这次的实验我了解到⾃⼰还有很多的不⾜,⽐如做实验的速度很慢,效率很低,思维不集中导致最后⽼师验收的时候没有来的及交,对书本的了解不是很透彻,也因此我决定下次实验的时候⼀定要好好地去思考,尽量在课外把实验看懂!。

恒科Keil C 超级仿真器说明书

恒科Keil C 超级仿真器说明书

微机控制技术实验指导书一、产品简介 二、硬件安装 三、KEIL C 软件操作说明书 四、系统组成 五、实验内容 实验一 八段数码管显示实验二 键盘扫描显示实验实验三 脉冲计数(定时/计数器的记数功能实验) 实验四 A/D 转换实验实验五 D/A0832转换实验实验六 步进电机控制实验七 工业顺序控制(INT0、INT1)综合实验 实验八 直流电机转速测量与控制实验实验九 点阵LED 实验 实验十 PWM 实验 六、实验思考 1112251371418222732364648目 录恒科Keil C 超级仿真器说明书一、产品简介Keil C51 u Vision2 是德国Keil公司开发的基于Windows环境的8051软件开发平台,它集项目管理、源程序编辑、程序调试于一体,是一个强大的集成开发环境。

U Vision2支持Keil的各种8051工具,包括:C编译器,宏汇编译器、连接/定位器及Object-hex转换程序,可以帮助用户快速有效的实现嵌入式系统的设计与调试。

采用C语言进行单片机系统的开发,具有避免手工分配寄存器,移植容易等优点。

恒科Keil C超级仿真器的优点:1、仿真8031内核的单片机。

2、接支持Keil C51的IDE开发仿真环境,63K用户程序空间。

3、全保留单片机特性,避免仿真正常而实际烧录芯片不正常的问题。

4、仿真频率0——40MHz晶振可选。

5、程序代码可重复转载。

6、监控程序占用用户资源较少,全速运行不占用资源。

7、可在Keil u Vision2下单步、断点、全速,可参考变量、RAM变量、结构变量等。

8、支持汇编、C语言、混合调试。

9、内部存储物理空间为68K,是伟福通用仿真器G6型的7倍,是伟福51专用仿真器的4倍。

10、仿真频率可达40MHz。

11、支持10个硬件断点。

在Keil C51集成开发环境是使用工程方法来管理文件的,而不是单一文件的模式。

所有的文件包括源文件程序(包括C程序,汇编程序)、头文件、甚至说明性的技术文档都可以放在工程项目文件里面统一管理。

单片机 矩阵键盘实验 实验报告

单片机 矩阵键盘实验 实验报告

实验五矩阵键盘实验一、实验内容1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。

按其它键退出。

2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。

可定义“A”键为“+”键,“B”键为“=”键。

二、实验目的1、学习独立式按键的查询识别方法。

2、非编码矩阵键盘的行反转法识别方法。

三、实验说明1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。

2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。

3、识别键的闭合,通常采用行扫描法和行反转法。

行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。

行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。

然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。

这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。

由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。

行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

微机原理键盘控制与显示实验报告

微机原理键盘控制与显示实验报告

课程名称: __________ 微机原理(实验) _________________ 指导老师: _徐习东 _______________ 成绩: _______________________ 实验名称: _________ 键盘控制与显示 ___________ 实验类型: _______ 软件实验 __________ 同组学生姓名: _______________ 七、讨论、心得【实验目的】1. 通过实验掌握TMS320F2812 通用输入/输出管脚直接控制外围设备的方法2. 了解发光二极管的控制编程方法。

3. 了解SPI 的使用。

4. 了解如何使用GpioA 口进行数据的锁存5. 通过实验掌握TMS320F2812 的扩展端口接收外围设备信息的方法6.了解键盘的使用原理及编程方法【实验内容】1. 按键显示程序,对按键记录次数,以二进制显示在16个LED 上。

2.定时器编程,并用按键控制各位时分秒,使其能完成加减操作【实验仪器】TMS320F2812 数字信号处理器与学生用集成板。

【实验步骤】1. 撰写代码2. 调试代码3.实现功能別f 尹丿占实验报告专业: 姓名:学号: 日期: 地点:电气工程及其自动化 一、实验目的和要求(必填) 三、主要仪器设备(必填) 五、实验数据记录和处理 二、实验内容和原理(必填) 四、操作方法和实验步骤 六、实验结果与分析(必填)【实验代码】 、疋时器① 宏定义和全局变量定义R 犍蛊控制曲钟nclude "DSP281x_De (vic« .h" 卍枝键对应值Uint16 LEEReg;UintlS KeyReg 1:Uitit321 = 0;Uint16Ctrl ; int 16Sec=0;1 Tltl6M IL =0;int 16 Hor-Cl ; UintlSLight[3];秒,按键编码,LED 编码和控制位。

② 共阳字形码O K jOOO.Oxf 900, OxA4OO J .0iBDOO,0x9900,0x5200, OMfl^OD^OxFSOD, O K B000y0x9000.0zBBOO,Oz3300,OxcEDO,Oxa IDO,OxB&OD^OssEciOO , 0x5G (J0,Uxbf DU,Osa7UQ,OzffOa,0x4000,CK79Da,DM240D r Dx^ 000, 0 itl900, O K ISOQ, 0s DEOO,Oz 7000,030000,0x1000);分析:由于这次实验要用到数码管,所以我们要定义一个数码管共阳端字形码,使每一个代码对应一种显 示状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十二 8279键盘显示实验(电子秒表)一.实验要求利用实验机上提供的8279键盘电路,数码显示电路,设计一个电子钟,用小键盘控制电子钟的启停及初始值的预值。

电子钟做成如下格式:XX XX XX XX 由左向右分别为: 时、分、秒、百分之一秒1.C键:清除,显示00.00.00.002.A键:启动,电子钟计时3.D键:停止,电子钟停止计时4.B键:设置初值:由左向右依次输入预置的时、分、秒、百分之一秒值,同时应具有判断输入错误的能力,若输入有错,则显示:00.00.00.00按B键即可重新输入预置值:5.E键:程序退出。

二.实验目的1.进一步掌握8279键盘显示电路的编程方法。

2.进一步掌握定时器的使用和编程方法。

3.进一步掌握中断处理程序的编程方法。

三.实验电路及连线CS8279接8700H。

模块中的十个短路套都套在8279侧。

四.实验说明8279通用接口芯片,根据应用需要可以在多种模式下工作,详见有关手册。

五.实验程序框图主程序框图SET_T子程序框图 GETWORD子程序框图六.实验程序见:Z8279 EQU 08701H ;8279 状态/命令口地址D8279 EQU 08700H ;8279 数据口地址LEDMOD EQU 00H ;左边输入八位字符显示;外部译码键扫描方式,双键互锁LEDFEQ EQU 2FH ;扫描速率LEDCLS EQU 0C1H ;清除显示 RAMLEDWR0 EQU 80H ;设定的将要写入的显示RAM地址READKB EQU 40H ;读 FIFO RAM 地址 0 的命令字ORG 0000HAJMP STARTORG 001BH ;INT T1 入口地址AJMP INT_T1ORG 0040HSTART:MOV SP,#60HLCALL INIT8279 ;初始化8279MOV R3,#0H ;时MOV R2,#0H ;分MOV R1,#0H ;秒MOV R0,#0H ;10毫秒MOV R6,#0FFH ;标志MOV TMOD,#10HMOV TL1,#00H ;10毫秒的时间常数MOV TH1,#0DCHLCALL DIS_mSSETB ET1SETB EA ;允许中断WAIT:LCALL GETKEY ;读键盘CJNE A,#0FFH,CONT ;判断是否有键输入MOV A,BCJNE A,#3CH,KEY_G ;输入键是'C',转CLEAR_TLCALL CLEAR_TKEY_G: CJNE A,#3AH,KEY_D ;输入键是'G',转START_T LCALL START_TKEY_D: CJNE A,#3DH,KEY_P ;输入键是'D',转STOP_T LCALL STOP_TKEY_P: CJNE A,#3BH,KEY_E ;输入键是'P',转SET_T LCALL SET_TKEY_E: CJNE A,#3EH,CONT ;输入键是'E',转MONITOR AJMP MONITORCONT: CJNE R6,#0FFH,WAIT ;若无秒标志则循环LCALL DISPLAY ;显示时间MOV R6,#0 ;清标志SJMP WAIT ;循环MONITOR:NOPSJMP $ ;等待回到监控CLEAR_T: ;时间清零子程序CLR TR1 ;关计数器MOV R3,#0H ;小时清零MOV R2,#0H ;分钟清零MOV R1,#0H ;秒清零MOV R0,#0H ;10毫秒清零MOV R6,#0FFH ;置秒标志LCALL DIS_mS ;显示毫秒RETSTART_T: ;电子钟计时子程序SETB TR1RETSTOP_T: ;电子钟停止计时子程序CLR TR1RETSET_T: ;设置初值子程序CLR TR1 ;关计数器MOV R4,#7LCALL GETWORD ;读小时数CJNE A,#0FFH,INVALID ;判断输入合法性MOV A,BADD A,#232JC INVALID ;判断输入小时值 < 24 MOV A,BMOV B,#10DIV ABSWAP AADD A,BMOV R3,A ;保存输入的值MOV R4,#5LCALL GETWORD ;读分钟数CJNE A,#0FFH,INVALID ;判断输入合法性MOV A,BADD A,#196JC INVALID ;判断输入分钟数 < 60 MOV A,BMOV B,#10DIV ABSWAP AADD A,BMOV R2,A ;保存输入的值MOV R4,#3LCALL GETWORD ;读分钟数CJNE A,#0FFH,INVALID ;判断输入合法性MOV A,BADD A,#196JC INVALID ;判断输入分钟值 < 60 MOV A,BMOV B,#10DIV ABSWAP AADD A,BMOV R1,A ;保存输入的值MOV R4,#1LCALL GETWORD ;读10毫秒数CJNE A,#0FFH,INVALID ;判断输入合法性MOV A,BMOV B,#10DIV ABSWAP AADD A,BMOV R0,A ;保存输入的值AJMP SET_TOKINVALID:LCALL CLEAR_T ;时间清零SET_TOK:LCALL DIS_mS ;显示10毫秒LCALL DISPLAY ;显示时间RETGETWORD: ;读数子程序WKEY1: LCALL GETKEY ;读键盘CJNE A,#0FFH,WKEY1 ;无键输入,则再读MOV A,BADD A,#0C6HJC ERROR1 ;判断输入是否大于9MOV A,BSUBB A,#30HJC ERROR1 ;判断输入是否小于0MOV R5,ALCALL DISLED ;显示输入的字符MOV B,#10MUL ABPUSH ACC ;保存输入的值WKEY2: LCALL GETKEY ;读键盘CJNE A,#0FFH,WKEY2 ;无键输入则再读MOV A,BADD A,#0C6H ;判断输入是否大于9JC ERROR2MOV A,BSUBB A,#30H ;判断输入是否小于0JC ERROR2DEC R4MOV R5,ALCALL DISLED ;显示输入的字符MOV B,APOP ACCADD A,BMOV B,A ;把得到的值存在BMOV A,#0FFH ;置合法输入标志AJMP KEYOKERROR2: POP ACCERROR1: MOV A,#0 ;置非法输入标志KEYOK: RETINIT8279: ;8279初始化子程序PUSH DPH ;保存现场PUSH DPLPUSH ACCLCALL DELAY ;延时MOV DPTR ,#Z8279MOV A,#LEDMOD ;置8279工作方式MOVX @DPTR,AMOV A,#LEDFEQ ;置键盘扫描速率MOVX @DPTR,AMOV A,#LEDCLS ;清除 LED 显示MOVX @DPTR,APOP ACC ;恢复现场POP DPLPOP DPHRET;读取键盘子程序;输入: 无 ; 输出: B: 读到的键码 A: 按键的标志GETKEY: PUSH DPH ;保存现场PUSH DPLPUSH PSWMOV DPTR,#Z8279MOVX A,@DPTR ;读8279状态ANL A,#07H ;屏蔽D7-D3JNZ GETVAL ;判断是否有键输入MOV A,#0H ;置标志(无键输入)SJMP NKBHITGETVAL: MOV A,#READKB ;读 FIFO RAM 命令MOVX @DPTR,AMOV DPTR,#D8279MOVX A,@DPTR ;读键ANL A,#3FH ;屏蔽 SHIFT 和 CTRL 键MOV DPTR,#KEYCODE ;键码表起始地址MOVC A,@A+DPTR ;查表MOV B,A ;置返回键值MOV A,#0FFH ;置标志(有键输入)NKBHIT: POP PSW ;恢复现场POP DPLPOP DPHRET;显示字符子程序;输入: R4,位置 R5,值DISLED: PUSH DPH ;保存现场PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置显示起始地址ADD A,R4 ;加位置偏移量MOV DPTR,#Z8279MOVX @DPTR,A ;设定显示位置MOV DPTR,#LEDSEG ;置显示常数表起始位置MOV A,R5MOVC A,@A+DPTR ;查表MOV DPTR,#D8279MOVX @DPTR,A ;显示数据POP ACC ;恢复现场POP DPLPOP DPHRETDELAY: ;延时子程序PUSH 0 ;保存现场PUSH 1MOV 0,#0HDELAY1: MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 ;恢复现场POP 0RETDIS_mS:MOV A,R0ANL A,#0FHMOV R5,AMOV R4,#0LCALL DISLED ;显示10毫秒低位MOV A,R0SWAP A ;高低半字节交换ANL A,#0FHMOV R5,AMOV R4,#1LCALL DISLED ;显示10毫秒高位RETINT_T1: ;INT_T1中断服务子程序PUSH DPH ;保护现场PUSH DPLPUSH ACCPUSH PSWCLR TR1MOV TL1,#00H ;10毫秒定时常数MOV TH1,#0DCHSETB TR1MOV A,R0ADD A,#1 ;10毫秒数加 1DA AMOV R0,ALCALL DIS_mS ;显示10毫秒CJNE R0,#0,EXIT ;判断10毫秒=0 MOV R6,#0FFH ;置秒标志CJNE R1,#59H,SECOND ;判断秒=59 MOV R1,#99HCJNE R2,#59H,MINUTE ;判断分=59 MOV R2,#99HCJNE R3,#23H,HOUR ;判断时=23 MOV R3,#99HHOUR:MOV A,R3ADD A,#1 ;时加1DA AMOV R3,AMINUTE:MOV A,R2ADD A,#1 ;分加1DA AMOV R2,ASECOND:MOV A,R1ADD A,#1 ;秒加1DA AMOV R1,AEXIT:POP PSW ;恢复现场POP ACCPOP DPLPOP DPHRETI ;中断返回DISPLAY:MOV A,R3ANL A,#0FHADD A,#10HMOV R5,AMOV R4,#6LCALL DISLED ;显示小时低位MOV A,R3SWAP AANL A,#0FHMOV R5,AMOV R4,#7LCALL DISLED ;显示小时高位MOV A,R2ANL A,#0FHADD A,#10HMOV R5,AMOV R4,#4LCALL DISLED ;显示分钟低位MOV A,R2SWAP AANL A,#0FHMOV R5,AMOV R4,#5LCALL DISLED ;显示分钟高位MOV A,R1ANL A,#0FHADD A,#10HMOV R5,AMOV R4,#2LCALL DISLED ;显示秒低位MOV A,R1SWAP AANL A,#0FHMOV R5,AMOV R4,#3LCALL DISLED ;显示秒高位RET;LED显示常数表LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,087H ;'0.,1.,2.,3.,4.,5.,6.,7.' DB 0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H ;'8.,9.,A.,B.,C.,D.,E.,F.' DB 6DH,02H,08H,00H,59H,0FH,76H ;'U,-,_, ,I,O,P, ';键盘键码表KEYCODE:DB 30H,31H,32H,33H,34H,35H,36H,37H ;'1,2,Q,W,A,S,+,Z'DB 38H,39H,3AH,3BH,3CH,3DH,3EH,3FH ;'3,4,E,R,D,F,X,C'ENDF。

相关文档
最新文档