单片机第四章18 嘀、嘀
单片机第四章33_4×4键盘及8位数码管显示构成的电子密码锁 (1)
第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。
第二,是在学习态度上,这次课设是对我的学习态度的一次检验。
对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。
我们这次实习所遇到的多半问题多数都是由于我们不够严谨。
第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。
通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。
在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。
还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。
并且我们熟练掌握了有关器件的性能及测试方法。
再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。
课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。
33.4×4键盘及8位数码管显示构成的电子密码锁1.实验任务用4×4组成0-9数字键及确认键。
用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用LED发光二极管亮一秒钟做为提示,同时发出“叮咚”声;若密码不正确,禁止按键输入3秒,同时发出“嘀、嘀”报警声;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
2.电路原理图图4.33.13.系统板上硬件连线(1).把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“动态数码显示”区域中的ABCDEFGH端子上。
(2).把“单片机系统“区域中的P2.0-P2.7用8芯排线连接到“动态数码显示”区域中的S1S2S3S4S5S6S7S8端子上。
单片机学习第四章
汇编程序的常用伪指令
ORG addr16——ASM51程序中一定要写! 规定编译后的机器代码存放的起始位置。
END
——ASM51程序中一定要写!
表示翻译到此结束,其后的任何内容不予理睬。
$ ——“当前PC值”也叫位置计数器 代表正在执行的指令所在位置。
符号名称 EQU 表达式 将表达式的值赋予符号名称。程序中凡出现该符 号名称就等同于该表达式。
任务一:控制一盏灯点亮 任务二:红灯周期性亮/灭 任务三:红外防盗报警
JOB1: CLR P1.0 ;亮红灯 HERE: AJMP HERE
JOB2: CPL P1.0 ;亮/灭 ACALL DELAY ;延时1秒 AJMP JOB2 ;重复
JOB3: CLR P1.1 ;亮绿灯 REDO: SETB P1.3 CHECK:JNB P1.3,CHECK LOOP: ………… ;报警!
ORG 1000H
DELAY:MOV R6,#200
1+1+ LOOP1:MOV R7,#248
248x
NOP
2 LOOP2:DJNZ R7,LOOP2
=498
DJNZ R6,LOOP1
RET
; 1Tm ; 1Tm ; 1Tm ; 2Tm ; 2Tm ; 1Tm
12
例:软件循环延时1S(晶振12MHz)
6
程序的顺序/分支/循环三种基本结构
例:
将R2中BCD码 数转为二进制 数存进R2
(此子程序在 下一例中还要 用到)
ORG 2000H
BCD2B:MOV A, R2 ;取入口数据
ANL A, #0F0H ;取出十位
SWAP A ;高4位 低4位
MOV B, #0AH
(单片机完整课件PPT)第四章
访问 SFR 的 数据类型
例:
bit a1; unsigned char a2; unsigned int a3; unsigned char *a4; unsigned int *a5; a1=0; //位a1为0 a2=0x20; //字节变量a2=20h a3=0x1234; //整型(字)变量a3=1234h a4=0x30; //a4指向内RAM30h单元 a5=0x2000; //a5指向外RAM2000h单元
注意:
Unsigned char code a[10]={0,1,4,9,16,25,36,49,64,81}; Main() {unsigned char x,y; x=3; y=a[x];
a[3]=5;
定义表格数据, 存放在ROM里
}
Unsigned char a[10]={0,1,4,9,16,25,36,49,64,81}; Main() {unsigned char x,y; x=3; y=a[x]; a[3]=5; }
单片机原理与应用技术
厦门理工学院电子与电气工程系 陈志英
第四章 单片机C语言程序设计
4.1 C51的一般格式 4.2 51单片机的C51定义 4.3 C51程序设计简单举例
4.1 C51的一般格式
C程序(.C) 汇编程序(.ASM) 指令代码(.BIN)
C编译器 汇编器
C编译器
C51
FRANKLIN C51 KEIL C51 格式基本相同,可以兼容
数 据 类 型 data/idata/pdata 指针型 code/xdata 通用指针 sbit SFR SFR16
长度/位 8 16 24 1 8 16
字节数 1 2 3 — 1 2
单片机51第四章PPT
C语言编写的指令集,每条指令对应一个C语言函数或语句,如mov(a, data)表示 将立即数data送入变量a。
04 单片机51的编程语言
CHAPTER
汇编语言
汇编语言是低级语言,与硬件 紧密相关,可以直接控制硬件
。
汇编语言执行速度快,适用于 对速度要求高的场合。
汇编语言代码可读性差,编写 和维护困难。
在此添加您的文本16字
特点
在此添加您的文本16字
8位处理器,运算速度快。
在此添加您的文本16字
丰富的指令集,支持多种寻址方式。
在此添加您的文本16字
内部集成多种功能模块,如ADC、DAC、PWM等。
在此添加您的文本16字
可通过外部扩展实现更多功能。
单片机51的应用领域
智能仪表
用于各种工业自动化仪表的测 量和控制。
在关键位置设置断点,暂停程序的执行, 检查程序状态。
06 单片机51的应用实例
CHAPTERLED闪烁程序总结词实现LED灯的闪烁功能
详细描述
通过单片机51的IO口控制LED灯的亮灭,实现LED灯的闪烁效果。具体实现方 法包括使用定时器中断或延时函数,控制LED灯的亮灭时间,以达到闪烁效果。
数码管显示程序
存储器
程序存储器
用于存储程序代码,包括指令和数据。
数据存储器
用于存储数据,包括工作寄存器和堆栈。
特殊功能寄存器
用于控制单片机各个部分的工作状态和参数设置。
输入/输出接口
输入接口
接收外部信号或数据,并将其转换为单片机可以处理的电平信号。
输出接口
将单片机处理后的电平信号输出到外部设备或电路。
输入/输出端口
单片机学习第四章
单片机学习第四章
单片机第四章概述 单片机第四章基础知识 单片机第四章进阶知识 单片机第四章实验与实践 单片机第四章常见问题与解答
contents
目 录
01
单片机第四章概述
重点与难点
重点在于理解中断和定时器的原理,掌握中断和定时器的编程方法;难点在于如何结合实际应用,灵活运用中断和定时器实现特定的功能。
THANKS FOR
WATCHING
感谢您的观看
05
单片机第四章常见问题与解答
单片机第四章中的主要内容是什么?
问题1
问题2
问题3
问题4
如何理解单片机第四章中的复杂概念?
单片机第四章中的实验如何操作?
单片机第四章中的编程语言有哪些?
单片机第四章常见问题
单片机第四章解答
解答1:单片机第四章主要介绍了单片机的内部结构、工作原理、指令系统、程序设计方法以及应用实例等内容。
1. 连接一个共阳极数码管到P0口。
2. 在Keil软件中编写程序,控制数码管显示数字。
单片机第四章实验步骤
3. 编译程序并下载到单片机中。
4. 观察数码管是否正确显示数字。
单片机第四章实验步骤
01
02
实验一结果
成功点亮LED灯,说明I/O口控制正常。
实验二结果
两个LED灯交替闪烁,说明程序运行正常。
了解单片机的指令系统、寻址方式、数据类型等基本原理是编写单片机程序的基础。
掌握这些基本原理能够更好地理解单片机的工作原理和应用,提高编程能力和系统设计能力。
单片机第四章基本原理
单片机第四章在工业控制、智能家居、仪器仪表等领域有广泛的应用。
了解单片机第四章的基本应用场景,能够更好地理解其功能和特点,为实际应用提供指导和参考。
8单片机技术基础第四章PPT课件
18.08.2020
南京航空航天大学金城学院
14
操作数
汇编语言指令可能要求或不要求操作数 若有两个操作数,操作数之间用逗号“,”分开。
操作数包括的内容有: (1)工作寄存器:由PSW.3和PSW.4规定的当前工作寄存器 区中的R0~R7。 (2)特殊功能寄存器:21个SFR的名字。 (3)标号名:赋值标号—由汇编指令EQU等赋值的标号;指 令标号—指令标号指示的指令的第一字节地址是该标号的值。 (4)常数:可用二进制(B)、十进制、十六进制(H), 若常数以字符开头,前面加0。 (5)$:用来表示程序计数器的当前值。 (6)表达式:汇编时,计算出表达式的值填入目标码。
标号由以英文字母开始的1~8个字母或数字组成, 以冒号“:”结尾。
标号可以由赋值伪指令赋值,如果没有赋值,汇 编程序把存放该指令目标码第一字节的存储单元 的地址赋给该标号,所以,标号又叫指令标号。
操 操作码是必不可少的。 作 它用一组字母符号表示指令的操作码。在89C51 码 中,由89C51的指令助记符组成。
流程图步骤分得越细致,编写程序是也越方便。
画流程图是程序结构设计采用的一种重要手段。
一个系统软件有总的流程图(主程序框图)和局部的 流程图。
流程图常采用的图形和符号。
18.08.2020
南京航空航天大学金城学院
11
椭圆框 矩形框 菱形框
圆圈 指向线
18.08.2020
或桶形框
:表示程序的开始或结束。
机器语言
高级语言
汇编语言
18.08.2020
南京航空航天大学金城学院
FORTRAN BASIC COBOL PASCAL C/C++ JAVA ...
单片机第四章
;(A)←X
;(A)←(A)-X ;(B)←Z ;(34H)←A*B的高字节
MOV
SJMP END
35H, A
$
;(35H)←A*B的低字节
Northwest A&F University
基于KEIL和PROTEUS的单片机技术
侯俊才
第四章 汇编语言程序设计
4.2.2 循环程序 循环程序一般由四个主要部分组成:
(1) 初始化部分: 为循环程序做准备, 如规定循环次数、 给各 变量和地址指针预置初值。
(2) 处理部分: 为反复执行的程序段, 是循环程序的实体, 也是 循环程序的主体。 (3) 循环控制部分: 这部分的作用是修改循环变量和控制变量, 并判断循环是否结束, 直到符合结束条件时, 跳出循环为止。 (4) 结束部分: 这部分主要是对循环程序的结果进行分析、 处理和存放。
运算规则及结果保存说明
(22H)
0 1
操作
加 减
结果保存处
30H(低字节),31H(高字节) 40H
2
3
乘
除
50H(低字节),51H(高字节)
60H(余数),61H(商) Northwest A&F University
基于KEIL和PROTEUS的单片机技术
基于KEIL和PROTEUS的单片机技术
侯俊才
第四章 汇编语言程序设计
源程序编辑是在微型计算机上,借助编辑软件,编写汇编 语言 源程序。可供使用的编辑工具很多。 例如,在文本区编写一个源程序如下: ORG 0030 MOVX @DPTR,A MOV A,#41H END 编辑结束后,存盘退出。 接下来是使用交叉汇编软件,对编辑完成的源程序进行汇编。 汇编完成后,如果没有错误则形成目标码文件,格式为: 0030 0033 F07441 首地址 末地址 目标码
单片机第四章课件
470 L7
2
1
20P
19 18
XTAL1 XTAL2
GND 20P +5V + 4.7u 9
RESET
1k INT0 MCS-51
图4-2
二、并行口基本知识 MCS—51系列单片机芯片内部集成有四个并行I/O口(P0~ P3),共32条I/O线,每一个I/O线都能独立地用作输入或输 出。8位同时使用可实现8位数据同时传送。 (一)并行I/O口的功能 1.P0~P3口的第一功能: 作通用输入/输出口,用于连接外部设备。 2.P0、P2、P3口的第二功能 P0、P2口用于扩展外部总线
图4-3 MCS—51单片机片外三总线的扩展方法
P3口引 脚 P3.0 P3.1 P3.2 P3.3
第二功能 RXD(串行口输入端) TXD(串行口输出端) (外部中断0输入)
P3口 引脚 P3.4 P3.5
第二功能
T0(定时器0外部输入)
T1(定时器1外部输入) (外部数据存储器写脉冲输出)
INT 0
+5V
10K 10K
20P
19 18
XTAL1 XTAL2
K1 K2
GND 20P
+5V 4.7u 9 RESET
2.流水灯控制 (P1口接 个发光二极管 每隔 秒轮流点亮一个 流水灯控制 口接8个发光二极管 每隔0.1秒轮流点亮一个 口接 个发光二极管,每隔 发光二极管。) 发光二极管。
+5V 470 L0 2 1 1 2 3 4 5 6 7 8 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 ALE
单片机原理及应用--第四章80C51单片机的功能-PPT课件
CL Q 当P3口的一些引脚没有作为第二功能使用时,这些引脚就被释放,直接作为 I/O口 写锁存器 线使用。
读引脚 替代输入功能
作用: 1、P3口可以直接作为输入口或输出口使用。 2、P3口的引脚又具有第二功能。
第四章(第 19页)
单片机原理及应用
第四章 80C51单片机的功能
(2) 输出过程分析 ① B点置1时,锁存器输出可以顺利通到引脚P3.i。此 时为准双向口。 ② 当输出锁存器输出( C点)置1,替代输出功能可以 顺利通到引脚P3.i。若替代输出为0时,因C点已置1, 现B点为0,故与非门输出为1,使Q0导通,从而使A 点为0。若替代输出为1时,与非门输出为1,Q0截止, 从而使A点为高电平。P3口处于替代输出功能状态。
内部总线
0 P3.0
& A
DB0.0
写锁存器
D
锁存器
Q
C
CP Q
0
读引脚 替代输入功能 注意: 1、P3口作输入口时,P30—P37上的信号经过缓冲器送到内部数据总线上。 在读引脚之前,要先将锁存器置1,否则总是读到0。 2、CPU对P3口的读操作有2种:读引脚和读—改—写锁存器。
第四章(第 18页)
第四章(第 2页)
单片机原理及应用
第四章 80C51单片机的功能
4.2.3定时器/计数器T2 4.2.4看门狗 4.2.5定时器/计数器的编程和使用 4.3 串行接口 4.4 中断系统 4.4.1中断、中断源及中断优先级 4.4.2中断的控制和操作 4.4.3中断的响应过程和中断矢量地址
第四章(第 3页)
读锁存器 BUF2 内部上拉电阻
作用: P1口只能作为 输入口或输出 口使用。
内部总线
DB0.0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开动脑筋,运用多种方法,不断优化自己的程序。
想想用各种不同方法来实现同一功能。
这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。
很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。
看别人的代码,学习人家的思路。
这个在学习初期是很有用,通过看别人的代码,特别是有多年编程经验的人写出的具有一定水平的代码,可以使自己编程水平得到迅速的提高,同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的代码,从中得到进步。
但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。
...
18.“嘀、嘀、……”报警声
1.实验任务
用AT89S51单片机产生“嘀、嘀、…”报警声从P1.0端口输出,产生频率为1KHz,根据上面图可知:1KHZ方波从P1.0输出0.2秒,接着0.2秒从P1.0输出电平信号,如此循环下去,就形成我们所需的报警声了。
2.电路原理图
图4.18.1
3. 系统板硬件连线
(1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK
IN 端口上,
(2. 在“音频放大模块”区域中的SPK OUT 端口上接上一个8欧或者是16欧的喇叭; 4. 程序设计方法
(1.生活中我们常常到各种各样的报警声,例如“嘀、嘀、…”就是常见的一种声音报警声,但对于这种报警声,嘀0.2秒钟,然后断0.2秒钟,如此循环下去,假设嘀声的频率为1KHz ,则报警声时序图如下图所示:
上述波形信号如何用单片机来产生呢?
(2. 由于要产生上面的信号,我们把上面的信号分成两部分,一部分为1KHZ 方波,
占用时间为0.2秒;另一部分为电平,也是占用0.2秒;因此,我们利用单片机的定时/计数器T0作为定时,可以定时0.2秒;同时,也要用单片机产生1KHZ 的方波,对于1KHZ 的方波信号周期为1ms ,高电平占用0.5ms ,低电平占用0.5ms ,因此也采用定时器T0来完成0.5ms 的定时;最后,可以选定定时/计数器T0的定时时间为0.5ms ,而要定时0.2秒则是0.5ms 的400倍,也就是说以0.5ms 定时400次就达到0.2秒的定时时间了。
5. 程序框图
主程序框图
中断服务程序框图
图4.18.2 6.汇编源程序
T02SA EQU 30H
T02SB EQU 31H
FLAG BIT 00H
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV T02SA,#00H
MOV T02SB,#00H
CLR FLAG
MOV TMOD,#01H
MOV TH0,#(65536-500) / 256
MOV TL0,#(65536-500) MOD 256
SETB TR0
SETB ET0
SETB EA
SJMP $
INT_T0:
MOV TH0,#(65536-500) / 256
MOV TL0,#(65536-500) MOD 256
INC T02SA
MOV A,T02SA
CJNE A,#100,NEXT
INC T02SB
MOV A,T02SB
CJNE A,#04H,NEXT
MOV T02SA,#00H
MOV T02SB,#00H
CPL FLAG
NEXT: JB FLAG,DONE
CPL P1.0
DONE: RETI
END
7.C语言源程序
#include <A T89X51.H>
unsigned int t02s;
unsigned char t05ms;
bit flag;
void main(void)
{
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
void t0(void) interrupt 1 using 0
{
TH0=(65536-500)/256;
TL0=(65536-500)%256;
t02s++;
if(t02s==400)
{
t02s=0;
flag=~flag;
}
if(flag==0)
{
P1_0=~P1_0;
}
}。