单片机实验6PPt
单片机第六章定时器
这种方式下,计数寄存器由13位组成,即THx高八位(作计数器)
和TLx的低5位构成。TLx的高3位未用。
计数时,TLx的低5位溢出后向THx进位,THx溢出后 将TFx置位,并向CPU申请中断。
用软件控制,置 l时,启动 T1;清0时,停止 T1。
TF0(TCON.5)——T0的溢出标志。
TR0(TCON.4)——T0的运行控制位。
用软件控制,置1时,启动T0;清 0时,停止 T0。
• IE1(TCON.3)——外部中断1中断请求标志位。
• IE0(TCON.1)——外部中断0中断请求标志位。
器之外,还可用作串行接口的波特率发生器。
6.2
定时器/计数器T0、T1
T0、T1 的内部结构简图示于图6-1中。从图中 可以看出,T0、T1由以下几部分组成:
• 计数器TH0、TL0和TH1、TL1;
•
•
特殊功能寄存器TMOD、TCON;
时钟分频器;
•
输入引脚T0、T1。
6.2.1 与定时器/计数器T0、T1有关的 特殊功能寄存器
⑵定时器/计数器T1
T0方式3时,T1可以工作在方式0、1、2三种方式 T1的结构如图6–6所示。 由于T0占用了原来T1的启动位TR1和溢出标志TF1, 所以此时T1溢出时不能置位溢出标志,不能申请中断, 其溢出信号送给串行口,此时T1作为波特率发生器。
T1的启停由写入方式字控制,当写入方式0/1/2 时,T1立即启动,写入方式3 时,立即停止工作。
分析:设置T0工作在方式2,计数功能,每记满100个外 部脉冲,从P1.0输出一个低电平脉冲信号(简化的打包 操作)。
单片机实验指导书(6个实验)
单片机原理和接口技术实验指导书襄樊学院物理和电子信息技术系实验要求1.进入实验室前完成的部分1)认真阅读实验指导书,弄懂实验原理和实验内容。
2)编写实验所要用到的程序,将其放在U盘上。
3)写出预习报告。
2. 进入实验室后完成的部分1)建立工程,加入已准备好的程序文件。
2)对程序进行调试,修改错误,获得要求的结果。
3)保存调试后的程序。
3.实验结束后的部分对实验结果进行分析、总结,写出实验报告。
实验报告内容及格式1.实验目的2.实验设备3.实验原理及环境4.实验内容只做文字叙述,程序部分放在程序清单中。
流程图也可不画。
5.程序清单本实验使用的完整程序。
如果使用了本实验或前面实验中完全相同的子程序,可不列写,只做注明即可。
6.实验步骤7.实验总结主要包括对实验结果、调试过程、错误及产生的原因的分析,以及本次实验的重要收获等。
此项为实验成绩评定的重要依据。
实验1 Keil C51的使用(汇编语言)实验目的:初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。
实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。
实验原理及环境:在计算机上已安装Keil C51软件。
这个软件既可以和硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不和硬件连接,仅在计算机上以虚拟仿真的方法运行程序。
如果程序有对硬件的驱动,就需要和硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。
实验内容:1.掌握软件的开发过程:1)建立一个工程项目选择芯片确定选项。
2)加入C 源文件或汇编源文件。
3)用项目管理器生成各种使用文件。
4)检查并修改源文件中的错误。
5)编译连接通过后进行软件模拟仿真。
6)编译连接通过后进行硬件仿真。
7)I A P 编程操作2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。
单片机实验PPT
2、使用USB接口的仿真器特别说明 1)先运行 USB_DRV.EXE程序,以安装 USB驱动; 2)打开电源; 3)将随机配备的USB通信线一头连仿真 器,另一头连电脑; 4)电脑显示找到新设备,让系统自己找 驱动并且安装。 5)安装完成后,到控制面板->系统->硬 件->设备管理器->端口 里面确认一下 USB转串口的COM端口号,以备在KEIL C 软件中做相应的设置。
(4)选择debug栏的设置项目: Use: Keil Monitor-51 Driver 。 Load Application at Start:选择这项之 后,keil才会自动装载你的程序代码。 Go till main:调试c语言程序时可以选择 这一项,pc会自动运行到main程序处。
(5)点击上图的Settings,打开新的窗口: Port:设置你的串口号,在“使用USB接口 的仿真器特别说明”中的第四点里确认的 串口号。 Baudrate:设置为57600,仿真机固定使用 57600bps跟keil通讯。 Serial Interrupt:选中它。 Cache Options: 可以选也可以不选,推荐 选它,这样仿真机会运行的快一点。 最后点击ok后确定,再关闭你的设置窗口。
DELAY_100MS: DL2: DL1:
DELAY:
MOV R1,#50 ;短延时子程序 D2: MOV R2, #50 D1: DJNZ R2,D1 ;内循环 DJNZ R1,D2 ;外循环 RET
(1)用鼠标点击菜单的project,选 择open project。如图
实验6 单片机与PC机间的串行通信
实验6 单片机与PC机间的串行通信一、实验目的1、掌握电平转换器件RS-232的使用方法;2、掌握Proteus VSM虚拟终端(VITUAL TERMINAL)的使用;3、掌握单片机与PC机间的串行通信软硬件设计方法。
二、实验内容实现利用虚拟终端仿真单片机与PC机间的串行通信。
PC机先发送从键盘输入的数据,单片机接收后回发给PC机。
单片机同时将收到的30~39H间的数据转换成0~9的数字显示,其他字符的数据直接显示为其ASCII码。
单片机和PC机进行通信时,要求使用的波特率、传送的位数等相同。
要能够进行数据传送也必须首先测试双方是否可以可靠通信。
可在PC机和单片机上各编制非常短小的程序,具体可分成PC机串行口发送接收程序、单片机串行口发送程序和单片机串行口发送接收程序。
这三个程序能运行通过,即可证明串行口工作正常。
PC机串行口发送接收程序设置串行口为波特率9600、8位数据、1位停止位、无奇偶校验的简单设置。
从键盘接收的字符可从串行口发送出去,从串行口接收的字符在屏幕上显示。
通过让串行口发送线和接收线短接可测试微机串行口,通过让串行口和单片机系统相接,使用此程序可进一步测试单片机的串行通信状况。
具体程序用BASIC编制,简单易懂。
直接输入即可运行。
程序RS232.三、实验电路原理图图7-1 单片机与PC机间电路原理图四、实验步骤1、在PROTEUS中画好电路原理图。
2、串口模型属性设置串口模型属性设置为:波特率―4800;数据位―8;奇偶校验―无;停止位-1,如图7-2所示。
图7-2 串口模型属性设置3、虚拟终端属性设置PCT代表计算机发送数据,PCR用来监视PC接收到的数据,它们的属性设置完全一样,如图7-3所示。
SCMT和SCMR分别是单片机的数据发送和接收终端,用来监视单片机发送和接收的数据,它们的属性设置也完全一样,如图7-4所示。
单片机和PC机双方的波特率、数据位、停止位和检验位等要确保和串口模型的设置一样,并且同单片机程序中串口的设置一致。
单片机原理及其嵌入式应用实验-PPT精选
MOV #$01,$0036
MOV #$01,$0038
MOV #$2C,$0039
MOV #$80,$003A
2020/1/6
30
BSET 5,$0036 BSET 7,$0037 BSET 4,$0036 RTS
*--------复位矢量----------------------------
;复位后程序从此开始执行
;系统初始化
SEI
;禁止所有中断
LDHX #$023F
;堆栈初始化,放入GP32的RAM最高端
TXS
JSR Init0
;调系统初始化子程序Init0,初始学习时跳过此处
;I/O初始化
BSET 1,DDRA
;设置PTA.1为输出
BSET 1,PTA
;初始时,PTA.1指示灯"暗"
ADD TmpVar
;经过此运算 若A=0,两个均闭合
;若=1,有一个闭合;=2,均未闭合
CBEQA #$0,Light0 ;比较,相等转移,A=0转向Light0
2020/1/6
26
NOP
CBEQA #$1,Light1 ;A=1转Light1
NOP
;A=2,两排均不亮
LDA #$FF
;两排灯均不亮 1-不亮
;初始化CONFIG1
STA $001F
CLR $0036
;初始化PTCL
MOV #$01,$0036
MOV #$01,$0038
MOV #$2C,$0039
MOV #$80,$003A
BSET 5,$0036
BSET 7,$0037
BSET 4,$0036
RTS
《单片机实习课题》PPT课件
8051单片机的结构
(五) MCS-51单片机ห้องสมุดไป่ตู้统的存储器结构特点
1. 2. 3. 数据存储器和程序存储器分开 内部存储器和外部存储器分开 存储器扩展 16位地址线-寻址范围 64KB 地址 0000H-FFFFH
8051单片机的结构
五、 MCS-51单片机时钟电路与时序
(一)时钟信号
1. 时钟信号的产生
80C51系列概述
二、 80C51系列
80C51是MCS-51系列中CHMOS工艺的一个典 型品种 ;其它厂商以8051为基核开发出的CMOS工 艺单片机产品统称为80C51系列。当前常用的 80C51系列单片机主要产品有: ﹡ Intel的:80C31、80C51、87C51,80C32、 80C52、87C52等; ﹡ ATMEL的:89C51、89C52、89C2051等; ﹡ Philips、华邦、Dallas、 Siemens(Infineon)等公司的许多产品 。
机器周期 1M、0.5M
6分频
1. 节拍与状态 一个时钟脉冲一个拍节(S) 两个节拍(S) 一个状态(P)
2.
机器周期 1M------1us 0.5M ---2us
3.
指令周期 一个指令周期包含若干个机器周期
8051单片机的结构
五、 MCS-51单片机时钟电路与时序
(二)时序定时单位
节拍:指振荡脉冲的周期(有 P表示); 每二个节拍定义为一个状态(用 S表示); 规定一个机器周期的宽度为6个状态,即12个节拍;
8051单片机的结构
(4) 程序状态字(PSW):8位,寻址地址0D0H。
位序 位标志 PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0
单片机实验课件新版
mov b,#10h ;处理结果 DISP: MOV R0,#35H ;显示缓冲首址 MOV R2,#01H ;位控初始码(先亮最低 div ab NEXT: MOV A,R2 ;送位控信号 mov 30h,a ;保存 MOV DPTR,#0FFDDH mov 31h,b MOVX @DPTR,A mov 32h,#10h MOV A,@R0 ;从显示缓冲中取数 MOV DPTR,#TAB mov 33h,#10h MOVC A,@A+DPTR ;查出字形代码 mov 34h,#10h MOV DPTR,#0FFDCH mov 35h,#10h MOVX @DPTR,A ;送显示字符段代码 acall disp ;调显示 ACALL DELAY
实验三 分支、循环、子程序设计
1.分支程序 CJNE命令的使用 2.循环程序 a.循环程序DJNZ命令的使用 b.循环取数的方法 BLOCK EQU 30H MOV R0,#BLOCK LOOP:MOV A,@R0 INC R0 DJNZ R1,LOOP c.循环次数2000H—20ffH是100H次 3.子程序 子程序放在SJMP $后,END前.
延时
a f e d b g c dp
DISP: MOV A,#01h MOV p0, A MOV A, #0C0h MOV p1,A SJMP DISP
对应的二进制数:dp g f e d c b a
B
例如:0的字形代码应g dp为1,其它为0,11000000(即 0C0H)
实验七 串行通信实验
连线: 甲机 乙机 TXD (P3.1)----------RXD(P3.0) GND ----------GND 编程: 设置波特率 设置SCON 接收采用中断方式,发送采用查询方式
《单片机实训》PPT课件
delay0_2s();
}
w=0x80;//显示码
for(i=0;i<8;i++){
P1=~w;//取反
w>>=1;//右移
delay0_2s();//延时
}
}
}
流水灯的原理图
C1
10u
C2
10u
R1
10K
6MHZ
CRYSTAL
U1
19 XTAL1 18 XTAL2
//显示秒个位
delay(10);
P2=0x02;
//选p2.1控制的数码管
P1=led[sec%10];
//显示秒十位
delay(10);
temp=~P3;
//读入p3口引脚状态并取反
temp=temp&0x2c; //屏蔽掉无关位,保留三位按键 状态
if(temp!=0){ 下
9 RST
RN1
1
16
2
15
3
14
4
13
5
12
6
11
7
10
8
9
330
C4
10uF
U2
10
11
9
12
8
13
7
14
6
15
5
16
4
17
3
18
2
19
1
20
LED-BARGRAPH-GRN
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
第六部分 单片机仿真实验
第六部分单片机仿真实验实验一硬件仿真调试硬件仿真除PC机之外,还需要仿真器、实验电路板,DP-51PROC实验仪已具备这些设备。
一、硬件仿真工程环境的设置源程序存放起始地址为8000H,即程序存放伪指令应为“ORG 8000H”。
单击工具栏Project,在弹出的下拉菜单中选择options for Target>Target1”命令(或者单击快捷图标),弹出工程调试设置窗口。
(1)Targect页面设置;由于MON51监控程序已经占有了0000H~7FFFH地址单元的程序存储空间,因此用户的应用程序必须从8000H地址单元开始存放,即用户应设置off-chip Code Memory栏内的Eprom选项。
见图二十一。
图二十一(2)output的设置:点击output按钮,在“Create HEX File”(建立16进制格式文件)前打勾选中。
对于C51选项卡的设置。
点击C51按钮,进入C51选项卡的设置,按图二十二设置。
图二十二(3)C51属性栏的设置:在efine后面框中输入MONITOR51,将断口地址改为0X8000图二十三(4)Debug调试环境的设置。
选择Debug标签,进入设置页面,在该选项卡中,应选中Use(硬件仿真),在Use下拉控列表框中应选择Keil Monitor-51 Driver选项。
其它选项参考图二十四进行。
图二十四同时它的Settings按钮还提供了串口通信环境设置,通过它可以灵活设置串行通信的端口和波特率。
DP-51PROC单片机综合仿真实验仪波特率必须选9600bps,接口port一般为Com1。
图二十五完成上述设置后,单击“确定”按钮,退出环境设置。
二、编译、链接方法和软件仿真调试完全一样。
若在编辑、链接中出现警告信息,用户可以不必理会它;如果编译出错,将提示错误ERROR的类型和行号。
双击该提示行,将会在指令前出现一个箭头,指向出错误的那条指令。
必须修改程序中的错误,直至程序编译成功为止。
单片机实验教案 ppt课件
(3)在弹出的“Add Files to Group‘Source Group1’对话框中选择需加入的文件,单击 “Add”按钮,如图6所示,加完后单击 “Close”按钮。关闭对话框
(六)调试程序
选择【Debug】/【Start/Stop Debug Session】 选项,进入调试界面。
2020/10/28 图8 启动程序调试示意图
17
Keil C软件的操作说明
在调试界面中可以对程序进行单步或者全速 运行的调试。如附图9所示。
连机/ 停止 全速 运行
单步
2020/10/28
2020/10/28
6
Keil C软件的操作说明
(一)创建工程名 (1) 选择【Project】/【New Project】选项;
图1 新建工程示意图
2020/10/28
7
Keil C软件的操作说明
(2)在弹出的“Create New Project”对话框中 选择要保存项目文件的路径,在“文件名” 文本框输入项目名,然后单击“保存”按 钮。
2020/10/28
20
仿真器使用者使用时应注意:
Keil C仿真器用户程序在全速运行时,如果 需暂停运行,请按仿真板上S1复位按钮, 此时仿真器存储器数据清零。如果您要再 次运行您所编写的程序,就必须重新装载 运行。
2020/10/28
21
实验一 跑马灯实验
一、实验电路及连线
图12 实验电路连线图
培训教程
➢MCS51实验系统装置的介绍 ➢Keil C软件的操作说明 ➢彩灯循环显示控制电路设计
2020/10/28
图文51单片机超详细教程PPT(绝对值)
寄存器组
包括累加器A、寄存器B、 程序状态字PSW等,用于 暂存数据和状态信息。
存储器组织
程序存储器
用于存放程序代码和表格常数,一般 采用ROM或EPROM芯片。
特殊功能寄存器SFR
用于控制单片机的各种功能,如定时 器、中断等。
数据存储器
用于存放数据,包括内部RAM和外部 RAM。
I/O端口及特殊功能寄存器
硬件电路设计思路及关键器件选型建议
51单片机
选用高性能、低功耗的51单片机 ,如STC89C52RC等。
无线通信模块
根据实际需求选用合适的无线通 信模块,如ESP8266 Wi-Fi模块
、HC-05蓝牙模块等。
电源芯片
选用稳定性好、效率高的电源芯 片,如LM2596等。
软件编程实现过程剖析
初始化单片机系统
51单片机在工业自动化、智能家居、仪器 仪表等领域有着广泛的应用基础,为开发者 提供了丰富的经验和案例参考。
应用领域与市场需求
应用领域
51单片机广泛应用于工业自动化、智能家居、仪器仪表、汽车电子、医疗设备等领域。例如,工业自动化中的电 机控制、温度控制等;智能家居中的智能照明、智能安防等;仪器仪表中的数据采集、显示控制等。
市场需求
随着物联网、人工智能等技术的快速发展,对单片机的性能和功能提出了更高的要求。同时,市场对于低功耗、 高可靠性、安全性等方面的需求也在不断增加。因此,未来51单片机需要不断提升自身性能,满足市场需求。
02
51单片机硬件结构
中央处理器CPU
01
02
03
运算器
进行算术运算和逻辑运算 。
控制器
取指、译码、执行,控制 单片机各部分协调工作。
单片机应用技术任务6 显示按键按下的次数
按照中断源的中断请求是否可被程序屏蔽来分,中断可分为可屏蔽中
断与不可屏蔽中断2类。其中,可屏蔽中断的中断请求可以被程序屏蔽掉。
相关知识
2、单片机的中断系统结构
特殊功能寄存器TCON与SCON IT0=0 外部中断0 INT0 IT0=1 ET0 定时/计数器0 TF0 1闭合 0断开 IT1=0 外部中断1 INT1 IT1=1 ET1 定时/计数器1 TF1 IE1 EX1 1闭合 0断开 IE0 特殊功能寄存器IE EX0 EA 特殊功能寄存器IP PX0 1 0 PT0 1 0 PX1 1 0 PT1 1 0 ES PS 1 基础知识 (6) 中断的分类 按中断源是否位于单片机的内部,中断可分为外部中断与内部中断。
例如,单片机内部的定时/计数器是一个中断源,它位于单片机的内
部,因此,定时/计数中断就属于内部中断。再如,单片机的P3.2/ INT0 引脚上的电平变化可以引起中断,该中断源位于单片机的外部,因此, INT0 中断就属于外部中断。
相关知识
3、中断系统中的特殊功能寄存器 ⑴中断允许控制寄存器IE 功能:控制各中断源的打开与关闭。 字节地址为0xa8,各位都分配有位地址,可以进行位访问。
IE的位: D7 EA 位地址: 0xaf D6 × 0xae D5 × 0xad D4 ES 0xac D3 ET1 0xab D2 EX1 0xaa D1 ET0 0xa9 D0 EX0 0xa8 复位值 0x00
断的设置程序如下:
EX0=1; EX1=1; ES=1; //开外部中断0 //开外部中断1 //开串行中断1
EA=1;
//开全局中断
相关知识
3、中断系统中的特殊功能寄存器
⑵定时器控制寄存器TCON
单片机原理实验讲义PPT教案
会计学
1
实验准备
实验课前,学生必须预习实验指导书中的实验内 容,了解本次实验的目的、要求、仪器设备、实验原 理、实验步骤等;实验过程中,按照指导老师的要求 进行实验,遵守仪器设备的操作规程;实验结束后, 应将实验数据或结果送交指导老师审阅、签字,然后 将仪器恢复原状并搞好实验现场的环境卫生,经许可 后方可离开实验室。
1 立即寻址 2 直接寻址 3 寄存器寻址 4 寄存器间接寻址 5 变址寻址 6 相对寻址 7 位寻址
立即寻址
指令中直接给出操作数。立即操作数用前 面加有#号的8位或16位数来表示。
例如:
MOV A,# 60H
;A←#60H
MOV DPTR,# 3400H ;DPTR←#3400H
MOV 30H,# 40H ;30H单元←#40H
MOV A, P1
MOV DPTR, #PORT
MOVX @DPTR, A
LJMP LOOP
END
;P1口输实验 ;片选地址CS0
;从P1口读取开关状态 ;从74LS273输出到发光二极管 ;循环
实验二 P1口实验二
一、实验目的 1、学习P1口既做输入又做为输出的使用方法。 2、学习数据输入、输出程序的设计方法。 二、实验内容
也可用作定时器。
(5)四个8位可编程的I/O(输入/输出)并行端口, 每个端口既可做输入,也可做输出。
(6)一个串行端口,用于数据的串行通信。 (7)中断控制系统。 (8)内部时钟电路。
P1.0 1
P1.1
2
40 39 P0.0
MCS-
P1.2
3
38 P0.1
51 单
P1.3
4
P1.4
《单片机实训》课件
单片机的基本概念
单片机是一种集成电路,具有处理器、存储器和输入输出功能,并能够通过 编程实现各种控制任务。
单片机经过多年的发展,从最初的8位单片机逐渐演变为32位单片机,具备更 强的计算和控制能力。
单片机具有易于编程、体积小、功耗低和价格低廉等特点,广泛应用于电子 产品和嵌入式系统等领域。
《单片机实训》PPT课件
欢迎来到《单片机实训》PPT课件。本课程将带你深入了解单片机实训的基 本概念、应用领域和硬件结构,让你掌握单片机的软件编程和实际应用。让 我们一起开始吧!
什么是单片机实训?
单片机实训是指通过实际操作和编程,培养学生对单片机的理论知识和实际 应用能力的训练活动。
单片机实训的意义在于帮助学生理解和应用单片机技术,提高电子设计能力, 并为未来的工作和研究奠定坚实的基础。
单片机的软件编程
单片机的汇编语言是一种低级的程序设计语言,直接操作单片机的硬件。
单片机的C语言是一种高级的程序设计语言,提供了更方便和易于理解的编程 方式。
单片机的高级语言如Python和Java可以使用专门的单片机库进行编程,简化 了开发流程。
单片机的实际应用
单片机在嵌入式系统中广泛应用,如智能家居、智能交通和机器人技术等。 智能家居利用单片机实现物联网技术,实现家庭设备的自动化和远程控制。 智能交通利用单片机实现智能信号灯、智能车牌识别等,提高交通效率和安全性。 机器人技术利用单片机实现机器人的控制和决策,实现智能化的人工智能应用。
单片机的结构包括处理器核、存储器、输入输出口、中断系统、定时器系统 和串口通信等组件。
单片机的硬件结构
单片机的主频决定了它的运行速度和性能,通常以MHz为单位。 单片机的存储器包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。 单片机的IO口可输入和输出数字信号,用于和外部设备进行交互和控制。 单片机的中断系统可响应外部事件,提供实时的处理和响应能力。 单片机的定时器系统可生成精确的时间延迟和周期信号,用于控制和计时。 单片机的串口通信可实现与其他设备的数据传输,如PC和传感器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;选中最右边的七段码。 ; ; ; ; ;检测按键 ;循环检测 ;显示'0' ;显示'1' ;显示'2' ;显示'3'
讨论题
1、在上述实验中,分别按按键K0到K7时,1 K2 K3 K4 K5 K6 K7
2、在上程序中找出读按键信息的语句是 哪些? 3、在上程序中找出把信息送到数码管中 显示的语句是哪些?
;返回继续检测按键 ;将扫描值送入 R2暂存 ;将第一列值送入R4暂存 ;将R2的值送入P1口 ;P1.0等于1跳转到L1 ;将第一行值送入ACC ;跳转到键值处理程序 ;P1.1等于1跳转到L2 ;将第二行的行值送入ACC ;跳转到键值理程序进行键值处理 ;P1.2等于1跳转到L3 ;将第三行的行值送入ACC ;跳转到键值处理程 ;P1.3等于1跳转到NEXT处 ;将第四行的行值送入ACC ;行值与列值相加后的键值送入A
;将列值加一 ;将R2的值送入A ;扫描完至KEY处进行下一扫描 ;扫描未完将A中的值右移一位进 ;行下一列的扫描 ;将ACC的值送入R2暂存 ;跳转到K3继续 ;将P1口高四位置0低四位值1 ;读P1口 ;将A中的值与A中的值相异或
DELAY2: ;40ms延时去抖动子程序 MOV R5,#08H L7: MOV R6,#0FAH L8: DJNZ R6,L8 DJNZ R5,L7 RET tab: db 28h,34h,28h,34h,0a9h,60h,20h,7ah,20h,21h,61h,74h, 30h,62h,0a2h,7eh ;0h0hc9878654a321 轮流显示键盘因为无法表达*# ;就用H表示,B用8表示 end
;将表头放入DPTR ;调用键盘扫描程序 ;查表后将键值送入ACC ;将Acc值送入P0口 ;开显示 ;返回反复循环显示 ;调用检测按键子程序 ;有键按下继续 ;无键按调用延时去抖 ;返回继续检测按键 ;有键按下延时去抖动 ;再调用检测按键程序 ;确认有按下进行下一步
K2: K3: L6:
L1:
L2:
K4: LCALL DELAY2 LCALL KS JNZ K4 POP ACC RET NEXT: INC R4 MOV A,R2 JNB ACC.7,KEY RL A MOV R2,A AJMP K3 KS: MOV P1,#0FH MOV A,P1 XRL A,#0FH RET
;调用延时去抖动程序 ;调用按键检测程序 ;按键没有松开继续返回检测 ;将堆栈的值送入ACC
讨论题
4、照下图说明单片机识别矩阵式键盘扫
描方法的基本工作原理。
二、实验内容
(二)矩阵按键识别技术 1、硬件连接
2、任务:(1)照图编写程序,当按下 按键 0~9时,显示“0~9”。 (2)写入到AT89S52中进行仿真、调试。
3、参考程序 org 0000h Ljmp main org 0030h main:mov dptr,#tab lcall key movc a,@a+dptr mov p0,a CLR P2.1 ljmp main KEY: LCALL KS JNZ K1 LCALL DELAY2 AJMP KEY K1: LCALL DELAY2 LCALL DELAY2 LCALL KS JNZ K2
二、实验内容
(一)端口按键识别技术 1、硬件连接
2、任务:(1)照图编写程序,当K2按下 时显示“0”;当K3按下时显示“1”;当K4 按下是显示“2”;当K5按下时显示“3”。 (2)写入到AT89S52中进行仿真、调试。
3、参考程序 org 0000h
ljmp start org 0030h start: mov p2,#0ffh CLR P2.6 mov p3,#0ffh l1: jnb p3.2,l2 jnb p3.3,l3 jnb p3.4,l4 jnb p3.5,l5 ljmp l1 l2: mov p0,#28H ljmp l1 l3: mov p0,#7EH ljmp l1 l4: mov p0,#0A2H ljmp l1 l5: mov p0,#62H ljmp l1 end
7、在程序2中,行使列扫描的是哪些 语句?记录列号的是哪个寄存器? 8、在程序2中,合成键号的是哪个子 程序? 9、在程序2中,判断按键是否松开的, 是哪个子程序?
谢谢大家 请留下您的 宝贵意见
本次实验报告中要回答的问题
4、在程序2实验中,分别按按键0到F时, 数码管显示的结果是什么?并填入下表。
按 0 键
显 示
1 2 3 4 5 6 7 8 9 A B C D E F
5、在程序2中,判断有无按键按下的是 哪个子程序? 6、在程序2中,消除按键抖动的是哪些 语句?
本次实验报告中要回答的问题
欢迎各位专 家亲临指导
课前复习题
1、照下图说明如何把按键的信息读入累加器 (A)中?
2、照下图说明如何把累加器(A)中的信息 送到数码管中显示?
实验六: 数码管显示与 按键识别(综合)
一、实验目的:
1、输出显示与键盘输入是本课的重 要内容。要求掌握数码管动态显示与矩 阵按键的识别技术。 2、掌握XLISP系列单片机综合仿真试 验仪的组成和使用方法。学会应用XLISP 仿真试验和keil-uvision2集成调试软件进 行仿真实验。
本次实验报告中要回答的问题
1、在程序1的实验中,分别按按键K0到K7 时,数码管显示的结果是什么?并填入下表。
按键 K0 K1 K2 K3 K4 K5 K6 K7
显示
2、在上程序中找出把按键的信息读入累 加器(A)中的语句是哪些? 3、在上程序中找出把累加器(A)中的信 息送到数码管中显示的语句是哪些??
L3:
LK:
ATMP KEY MOV R2,#0EFH MOV R4,#00H MOV P1,R2 JB P1.0,L1 MOV A,#00H AJMP LK JB P1.1,L2 MOV A,#04H AJMP LK JB P1.2,L3 MOV A,#08H AJMP LK JB P1.3,NEXT MOV A,#0cH ADD A,R4 PUSH ACC