单片机原理及应用C语言程序设计与实现 第7章51单片机人机交互
单片机原理及应用(李桂林)章 (7)

第 7 章 单片机并行扩展技术 图 7-1 8031 最小应用系统
第 7 章 单片机并行扩展技术
8031 芯片本身的连接除了 EA 必 须 接地 地外(选择外 部存储器),其他与 80C51 / 89C51 最小应用系统一样,也必须 有复位及时钟电路。
第 7 章 单片机并行扩展技术
7. 2 总线扩展及编址方法
第 7 章 单片机并行扩展技术
7. 1 单片机的最小系统
最小应用系统,是指能维持单片机运行的最简单配置的系 统。这种系统成本低廉、结构简单,常用来构成简单的控制系 统,如开关状态的输入/输出控制等。对于片内有ROM / EPROM 的单片机,其最小应用系统即为配有晶振、复位电路和电源的 单个单片机。对于片内无 ROM / EPROM 的单片机,其最小系统 除了外部配置晶振、复位电路和电源外,还应当外接 EPROM 或 E2 PROM作为程序存储器使用。
第 7 章 单片机并行扩展技术
图 7-3 所示为线选法应用实例。图中所扩展的芯片地址 范围如表 7 -1 所示,其中 ×可以取“0 ”,也可以取 “ 1 ”,用十六进制数表示的地址如下:
2764 ( 1 ): 4000H~5FFFH ,或 C000H~DFFFH ,有地址重 叠现象。
2764 ( 2 ): 2000H~3FFFH ,或 A000H~BFFFH ,有地址重 叠现象。
第 7 章 单片机并行扩展技术
当然,最小系统有可能无法满足应用系统的功能要求。比 如,有时即使有内部程序存储器,但由于程序很长,程序存储器 容量可能不够;对一些数据采集系统,内部数据存储器容量也可 能不够等,这就需要根据情况扩展 EPROM 、 RAM 、 I / O 口 及其他所需的外围芯片。
第 7 章 单片机并行扩展技术
51单片机原理与实践 C语言版 高卫东 第七章 51单片机接口技术

7.4 51单片机与LED数码管的接口技术单片机应用系统中常用的显示器主要有:❖发光二极管,简称LED(Light Emitting Diode);❖液晶显示器,简称LCD(Liquid Crystal Display);❖CRT显示器1、结构原理:有共阴极和共阳极两种P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.77.4.2 LED显示器接口:LED显示器有静态显示和动态显示两种方式。
1、静态显示:每个LED数码管的a-h都单独和一个I/O口相连,每个显示器的共阴极和共阳极都连接一起接地或接+5V。
如图7.15。
静态显示器的亮度较高,编程容易,管理也较简单,但占用I/O口线资源较多。
在显示位数较多的情况下,一般都采用动态显示方式。
2、动态显示在多位LED显示时,将所有位的段选线并联在一起,由一个8位I/O口控制。
而共阴(或共阳)极公共端K(位选)分别由相应的I/O线控制,实现各位的分时选通。
如下图所示为6位共阴极LED动态显示接口电路。
图6位LED动态显示接口电路3. LED显示器与89C51接口及显示子程序P0口输出段选码,P1口输出位选码图6只LED动态显示接口例如,显示“EE0-20”,❖I/O口1和I/O口2轮流送入段选码、位选码及显示状态如图所示。
❖段选码、位选码每送入一次后延时1ms,因人眼的视觉暂留时间为100ms,所以每位显示间隔不超过20 ms,并保持延时一段时间,造成视觉暂留效果。
❖称为软件扫描显示。
6位动态扫描显示状态P2.0、P2.1、P2.2分别接3-8译码器的输入端;P0.0—P0.7分别接数码管的a—dp进行字符显示78LS138真值表1、单个数码管静态显示#include<reg52.h>#define uchar unsigned char#define uint unsigned intvoid Main(void){P0 = 0x79;//数码管段值0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0 x7f,0x6fP2 = 1;//点亮某一位数码管0 1 2 3 4 5 6 7}2、数码管动态显示uchar code table[10] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7 d,0x07,0x7f,0x6f};//数码管段值uchar code LED_W[8] ={0,1,2,3,4,5,6,7};//数码管位码void Main(void){ uchar k;while(1){for(k=0;k<8;k++){P0 = table[k];//数码管段值P2 = LED_W[k];//点亮某一位数码管Delay(3);//延时3ms}}}作业1、跑马灯从LED灯以0.5s的间隔,从低位到高位逐位亮,再从高位到低位逐渐亮,循环3次,接着全亮全暗3次,然后重新循环。
第7章 MCS-51单片机常用接口技术

图7.3 用8031的P1口设计的4×4键盘
第7章 MCS-51单片机常用接口技术
7.1.2 键盘按键识别方法
首先在键处理程序中将P1.3~P1.0依次按位变低, P1.3~P1.0在某一时刻只有一个为低。在某一位为低时读行线, 根据行线的状态即可判断出哪一个按键被按下。 如9号键按下时,当列线P1.2为低时,读回的行线状态中 P1.4被拉低,由此可知2号键被按下。 一般在扫描法中分两步处理按键,首先是判断有无键按下, 即使列线(P1.3~P1.0)全部为低,读行线,如行线 (P1.4~P1.7)全为高,则无键按下,如行线有一个为低,则 有键按下。当判断有键按下时,使列线依次变低,读行线,进 而判断出具体哪个键按下。
第7章 MCS-51单片机常用接口技术
7.2.2 LED显示器接口及显示方式
表7.2 段选码、位选码及显示状态表
段选码 (字型) F9H A4H B0H 99H 92H 位选码 P2.4~P2.0 11110 11101 11011 10111 01111 1 2 3 4 5 显示器显示状态
第7章 MCS-51单片机常用接口技术
7.2.1 LED显示器原理
图7.6为LED显示器的内部结构及外形。
(a)共阴极 (b)共阳极 (c)LED实物 图7.6 LED显示结构及实物
第7章 MCS-51单片机常用接口技术
7.2.1 LED显示器原理
7段LED显示数字0~F,符号等字型见表7.1,其中a段为最 低位,dp为最高位。
第7章 MCS-51单片机常用接口技术
单片机原理及应用教程
第 7章 MCS-51单片机常用接口技术
主 编 范立南 谢子殿 副主编 刘 彤 尹授远 李雪飞
第7章 MCS-51单片机常用接口技术
单片机原理及其应用课件

单片机原理及其应用
扬州大学
介绍图2-1中的各功能部件:
1.CPU(微处理器):运算器,控制器。含位处理
2.数据存储器(RAM) 片内为128个字节(52子系列的为256个字节) 3.程序存储器(ROM/EPROM) 8031: 无此部件; 8051: 4K字节ROM; 8751: 4K字节EPROM ; 89C51: 4K字节闪存。
30
单片机原理及其应用
扬州大学
2.4.3 特殊功能寄存器(SFR) CPU对各种功能部件的控制采用特殊功能寄存器 集中控制方式,共21个,占用空间80H-FFH。 表2-2(P21)是SFR的名称及其分布。
31
单片机原理及其应用
扬州大学
有的SFR可进 行位寻址,其 字节地址的 末位是0H或 8H。
11
单片机原理及其应用
扬州大学
2.2 MCS-51的引脚功能
40只引脚双 列直插封装 (DIP)
12
单片机原理及其应用
扬州大学
44只引脚方形封装方式(4只引脚没用)
13
单片机原理及其应用
扬州大学
40只引脚按功能分为3类: (1)电源及时钟引脚: Vcc、Vss;XTAL1、XTAL2。 (2)控制引脚:/PSEN、/EA 、ALE、RESET(RST)。 (3)I/O口引脚:P0、P1、P2、P3,为4个8位I/O口的 外部引脚。 2.2.1 电源及时钟引脚
21
单片机原理及其应用
扬州大学
(5)OV(PSW.2):溢出标志位 指示运算是否产生溢出。OV=C7⊕C6
各种算术运算指令对该位的影响情况较复杂, 将在第3章介绍。
(6)PSW.1位: 保留位,未用
(7)P(PSW.0):奇偶标志位
单片机原理及应用_黄河科技学院中国大学mooc课后章节答案期末考试题库2023年

单片机原理及应用_黄河科技学院中国大学mooc课后章节答案期末考试题库2023年1.AT89S51单片机的串行口,数据输出端为()。
参考答案:TXD2.AT89S51单片机定时器/计数器T1的中断向量号为()。
参考答案:33.Keil C51的unsigned int数据类型是()。
参考答案:无符号整型变量4.访问片外RAM数据,在C51中该数据的存储类型为()。
参考答案:xdata5.数字温度传感器DS18B20是()总线的器件参考答案:单6.AT89S51单片机有4 组位并行I/O口。
参考答案:87.AT89S51单片机片片外最多可扩展 KB的程序存储器。
参考答案:648.AT89S51有个可编程定时器/计数器参考答案:29.某RAM芯片有12条地址线,可寻址 KB个存储单元参考答案:410.波特率是指串行口每发送或接收的数据参考答案:秒钟11.AT89S51单片机采用并行总线方式外扩器件时,地址总线的高8位由()口提供参考答案:P212.C51中断函数的关键字是()参考答案:interrupt13.AT89S51单片机有( )组工作寄存器参考答案:414.ADC0809是( )位的数模转换器参考答案:815.如果单片机的晶振是6MHz,则其机器周期为()参考答案:2μS16.单片机的I/O端口做通用I/O时,若要读某个引脚,需要先对该端口位写()。
参考答案:117.C51提供了()存储类型类访问ROM。
参考答案:code18.如果需要用到AT89S51单片机的特殊功能寄存器以及一些存储定义,需要加载头文件()。
参考答案:reg51.h19.下面哪一种不属于C51扩展的数据类型参考答案:double20.单片机复位时,系统默认的当前工作寄存器为第()组。
参考答案:21.程序在运行时,当前PC的值是()。
参考答案:当前正在执行的指令的下一条指令的地址22.C51 中以字节形式对xdata区进行寻址,用()宏定义。
《单片机原理与应用》ppt课件

条件转移指令
子程序调用与返回
根据某个条件判断的结果来决定 程序是否转移到指定的地址执行, 如JZ(零转移)、JNZ(非零转 移)等。
子程序是一段可以独立执行的程 序段,通过调用指令CALL实现子 程序的调用和返回。在调用子程 序时,需要将返回地址压入堆栈; 在子程序返回时,再从堆栈中弹 出返回地址并执行返回操作。
人机交互设备(键盘、显示器等)接口设计
键盘接口设计
通过扫描键盘矩阵或接收键盘中断的方式,读取按键信息并转 换为相应的数据或命令。
显示器接口设计
根据显示器的类型和通信协议,设计相应的接口电路和驱动程 序,实现单片机对显示器的控制和数据传输。
应用实例分析:智能家居控制系统设计
系统概述
介绍智能家居控制系统的功能、 组成和工作原理,包括中央控制 器、传感器、执行器等部分。
AVR系列
ARM系列
采用先进的RISC结构,具有高速度、低功耗、 丰富的外设接口等特点,适用于物联网等领 域。
采用高性能的32位RISC结构,具有强大的处 理能力和丰富的外设接口,适用于高端嵌入 式系统等领域。
02
单片机基本原理
微处理器结构与工作原理
微处理器内核结构 包括算术逻辑单元(ALU)、寄存器组、控制单元等。
04
C语言程序设计在单片机 中的应用
C语言与汇编语言比较
高级语言与低级语言
C语言属于高级语言,具有易于理解、编写和维护的特点;而汇编 语言是低级语言,更接近硬件,但编写复杂且可读性较差。
可移植性
C语言具有良好的可移植性,可以在不同平台上运行;而汇编语言 与特定硬件平台紧密相关,可移植性差。
执行效率
创建工程文件
在编译器中创建新的工程文件,并添 加源代码文件、头文件等。
单片机原理与应用及C51编程技术课程设计

单片机原理与应用及C51编程技术课程设计一、课程简介本课程旨在介绍单片机的基本原理和应用,以及C51编程技术,帮助学生通过实践掌握单片机的设计和开发能力。
二、课程目标1.理解单片机的基本原理和应用;2.掌握C语言的基本语法和单片机编程技术;3.能够独立设计单片机应用程序,并实现单片机控制;4.熟悉常用的单片机开发环境和调试工具。
三、课程大纲1.单片机基础:介绍单片机的发展历程、原理、结构和应用领域;2.C语言基础:介绍程序结构、变量类型、运算符和控制流程等基本概念;3.单片机编程技术:介绍单片机编程模型、编程工具、调试方法等;4.单片机应用程序设计:介绍单片机控制器的输入/输出端口、定时器、中断和通信等应用技术;5.课程设计:基于所学内容,让学生独立完成一个单片机应用程序设计,并进行测试和调试。
四、课程教学方法1.理论授课 + 实践操作:通过理论教学和实践操作相结合的方式进行;2.个人作业 + 组队实践:既注重个人能力的培养,又注重团队协作的培养;3.实验操作 + 模拟实践:既注重理论操作的讲解,又注重在simulink等模拟环境下的实践。
五、课程考核1.日常成绩:课堂出勤、课堂表现、作业成绩;2.期中成绩:理论考试、上机操作;3.期末成绩:上机操作、课程设计报告及答辩。
六、参考资料1.单片机原理与应用,李振明著,清华大学出版社;2.C语言程序设计,谭浩强著,清华大学出版社;3.Keil C51单片机开发环境手册,KEIL公司出版。
以上是本课程的教学大纲,希望同学们能够积极参与课程学习,通过实践掌握单片机的设计和开发能力。
[单片机原理及接口技术][课件][第07章]
![[单片机原理及接口技术][课件][第07章]](https://img.taocdn.com/s3/m/a1d65da1284ac850ad024214.png)
第7 章 单片机系统的扩展
1) 掩膜ROM
掩膜ROM简称为ROM, 其编程是由半导体制造厂家 完成的, 即在生产过程中进行编程。 2) 可编程ROM(PROM) PROM芯片出厂时并没有任何程序信息, 其程序是
由用户写入的, 与掩膜ROM相比,
批量也不一定很大。
有了一定的灵活性,
3) 可擦除ROM(EPROM或EEPROM)
第7 章 单片机系统的扩展
存储器芯片的选择有两种方法: 线来自法和译码法。1. 线选法 所谓线选法,将低位地址线直接接片内地址外,将 余下的高位地址线分别作为各个芯片的片选控制信号。 2. 译码法
这种方法除了将低位地址线直接连至各芯片的地址线
外,余下的高位地址线部分或全部参与译码,译码输 出作为各芯片的片选信号。该法使得存储芯片中的任
2716(2K*8或2KB)
2732 (4K*8或4KB) 2764 (8K*8或8KB) 27128 (16K*8或16KB) 27256 (32K*8或32KB)
第7 章 单片机系统的扩展
EPROM
顶部开有一个圆形的石英窗口,用于紫外线透过擦除原有信 息 一般使用专门的编程器(烧写器)编程 编程后,应该贴上不透光封条 出厂未编程前,每个基本存储单元都是信息 “1”
图7―3 74LS373的结构示意图
第7 章 单片机系统的扩展
7.2.2 总线驱动器74LS244, 74LS245
总线驱动器74LS244和74LS245经常用作三态数据 缓冲器, 74LS244为单向三态数据缓冲器,而74LS245 为双向三态数据缓冲器。 单向的内部有8个三态驱动器, 分成两组, 分别由控制端 1G 和2G 2G 控制; 双向的 有16个三态驱动器, 每个方向8个。 在控制端 G 有效 时( G 为低电平), 由DIR端控制驱动方向: DIR为“1” 时方向从左到右(输出允许), DIR为“0”时方向从右到 左(输入允许)。 74LS244和74LS245的引脚图如图7―5 所示。
九、8051人机交互的C编程

#include <reg51.h> #define uchar unsigned char #define uint unsigned int void dlms(uint x); uchar kbscan(); uchar keydecode(uchar x); main() { uchar key,keycode; while(1) { keycode=kbscan(); key=keydecode(keycode); dlms(100); } } void dlms(uint x) { uchar y; while(x--) {for(y=0;y<125;y++);} }
ⅲ.再确认哪个键被按下及其键号 P1口依次输出下列行扫描字:
P1.7 1 1 1 1 P1.6 1 1 1 1 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 FEH FDH FBH F7H
P1口输入列状态,可能为下列之一:
9.1.2 显示器及接口 一、 LED结构与原理
+5V
Dp g f e
d c b a
f
a
b
g e
d
c
Dp g f e d c b a 共阳极 D7 D6 Dp g D5 f D4 e D3 d D2 c D1 b D0 a
共阴极
如共阳极时,输出1 1 1 1 1 0 0 0 即 F8H时,显示“7”。
uchar kbscan() //键扫描函数 { uchar sccode,recode; P1=0xf0; //发全“0”行扫描码,列线输入 if((P1&0xf0)!=0xf0) //若有键按下 { dlms(100); //延时去抖动 if((P1&0xf0)!=0xf0) { sccode=0xfe; //逐行扫描初值 while((sccode&0x10)!=0) { P1=sccode; //输出行扫描码 if((P1&0xf0)!=0xf0) //本行有键按下 { recode=(P1&0xf0)|0x0f; return((~sccode)+(~recode)); //返回特征字节码 } else sccode=(sccode<<1)|0x01; //行扫描码左移一位 }}} return(0); //无键按下,返回值为0 }
单片机原理及应用第07章 单片机系统扩展 共91页

A[12..0]连接芯片地址 引脚,决定了访问该
芯片的单元地址
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 X X 0 0 0 0 0 0 0 00 00 0 0
0 X X ……………………………………………………
7.2 地址译码 地址译码概念
CPU是通过地址对不同的接口或芯片加以区分的。把CPU送出的 地址转变为芯片选择的依据就是地址译码电路。
地址译码有3种方法
线选法 部分译码法 全译码法
7.2 地址译码
地址译码电路一般有两种结构形式
固定式端口地址译码电路:硬件电路不改动,译码输 出的地址或地址范围不变。
7.3.1 存储器扩展——存储器结构
数据存储器:从物理结构上分为片内数据存储器和片外数据存储 器。
片内数据存储器 MCS-51系列单片机的片内数据存储器除了RAM块外,还有特 殊功能寄存器(SFR)块。 对于51子系列 RAM块有128字节,编址为00H—7FH; SFR块也占128字节,编址为80H—FFH; 二者连续不重叠。 对于52子系列 RAM块有256字节,编址为00H—FFH; SFR块也有128字节,编址为80H—FFH; 后者与前者的后128字节编址重叠的。访问时通过不同 的指令相区分。
值随意
引脚,决定了访问该
按上图,2764的地址2 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
X 0 0 0 0 0 0 0 0 0 00 00 0 0
X 0 0 ……………………………………………………
X 0 0 1 1 1 1 1 1 1 11 1 1 1 1
第7章 单片机人机交互

DATE: 2016/3/21
PAGE: 9
一、键盘接口技术
uchar key_identify() //识别键号 { uchar linecode=0,rowcode=0; uchar i; uchar scancode=0xef;//定义扫描码,使第一列为0,其它为1 for( i=0;i<4;i++ ) //扫描4列 { KEYPORT=scancode; //输出扫描码,扫描各列 if((KEYPORT & 0x0f) ==0x0f ) //屏蔽高4位(列线),检测低4位(行线) {//当前列无按键闭合 rowcode++; scancode=scancode<<1|1;//使输出0的列线左移一位 } else //当前列有按键,已经确定了列号,还需要确定行号 { if( line0==0 )linecode=0; //第一行有键闭合,行号为0 if( line1==0 )linecode=4; //第二行有键闭合,行号为4 if( line2==0 )linecode=8; //第三行有键闭合,行号为8 if( line3==0 )linecode=12; //第四行有键闭合,行号12 break; } } return linecode+rowcode; //输出键号 }
2024版单片机原理及其应用PPT课件讲义

并行扩展应用实例
分析并行扩展在存储器扩 展、I/O端口扩展等方面的 应用实例,包括电路图、 程序设计及实现方法。
串行扩展技术及应用实例分析
1 2 3
串行通信基础 介绍串行通信的基本概念、通信协议(如UART、 I2C、SPI等)及数据传输方式(异步、同步)。
串行接口芯片
阐述串行接口芯片的工作原理、常见类型(如 MAX232、TL16C550等)及其与单片机的连接 方式。
数据格式和传输速率等。
串行通信优缺点
串行通信具有传输距离远、成本 低等优点,但传输速度相对较慢。
串行接口电路组成和工作原理
串行接口电路组成
串行接口电路主要由发送器、接收器、控制逻辑和电平转换电 路等组成。
工作原理
在发送数据时,发送器将并行数据转换为串行数据,然后通过 传输线发送给接收器;接收器将接收到的串行数据转换为并行 数据,供后续电路处理。控制逻辑负责协调发送器和接收器的 工作,确保数据传输的正确性。
等,定位软件故障。
THANK YOU
感谢聆听
选择合适的单片机型号
根据系统需求选择合适的单片机型号, 考虑处理速度、存储容量、外设接口 等因素。
设计合理的电路结构
简化电路结构,减少元器件数量,降 低系统复杂度和成本。
考虑电磁兼容性
合理布局布线,采取屏蔽、滤波等措 施,提高系统电磁兼容性。
调试技巧
使用示波器、逻辑分析仪等工具进行 信号测试和分析,定位硬件故障。
03
人机交互设备应用实例
分析人机交互设备在单片机系统中的应用实例,包括电路图、程序设计
及实现方法。例如,基于单片机的简易计算器设计,通过键盘输入数据,
显示器显示结果,实现基本计算功能。
C51单片机C语言程序设计

C51单片机C语言程序设计单片机C语言程序设计是指使用C语言编写程序来控制和操作单片机的工作。
单片机是一种集成电路,它包含了中央处理器、存储器、输入输出接口等功能模块,广泛应用于嵌入式系统中。
在单片机C语言程序设计中,首先需要了解C语言的基本语法和语法规则。
C语言是一种面向过程的编程语言,具有简洁、高效和可移植等特点。
接下来,要熟悉单片机的硬件结构和寄存器的使用方法,了解单片机的输入输出方式、中断、定时器等功能。
在进行单片机C语言程序设计时,需要按照以下步骤进行:1.设置寄存器和引脚的初始化:根据单片机的型号和需要的功能,设置相关的寄存器和引脚的初始化。
这些初始化可以包括引脚的输入输出模式设置、中断向量表的初始化、定时器的设定等。
2.主程序的编写:主程序是单片机的执行入口,通过主程序可以完成各种功能的实现。
在主程序中,可以定义变量、函数和结构体等。
3.中断程序的编写:中断程序是由硬件触发的,可以在需要时被调用执行。
中断程序可以包括外部中断、定时器中断等。
在编写中断程序时,需要设置相应的中断向量,并完成相应的中断服务程序。
4.函数的编写:函数是实现其中一特定功能的代码段,通过函数可以提高程序的模块化和可重用性。
需要根据实际需求编写相应的函数,并在主程序中调用。
5. 调试和测试:在编写完程序后,需要进行调试和测试。
通过调试和测试可以发现程序中的bug和错误,并进行修复。
可以通过缓慢单步调试、观察变量值和输出结果等方式进行调试和测试。
6.优化和改进:在程序完成后,可以对程序进行优化和改进。
通过优化可以提高程序的性能和效率,减少资源的占用。
可以使用编译优化选项、减少不必要的计算和内存使用等方式进行优化。
以上是单片机C语言程序设计的基本步骤和内容。
在实际操作中,还需要根据具体的需求和硬件平台进行相应的调整和编程。
通过合理的设计和编程,可以实现单片机的各种功能和应用,广泛应用于电子设备、汽车、家电等领域。
无论是初学者还是有经验的程序员,都可以通过单片机C语言程序设计来进一步提高和拓展自己的技能。
(2024年)51单片机C语言学习教程

中断系统
支持外部和内部中断,用于响应突发事件 或异常。
存储器
包括程序存储器和数据存储器,用于存储 程序和数据。
定时器/计数器
提供定时和计数功能,可用于产生精确的 时间延迟或频率。
2024/3/26
I/O端口
提供与外部设备的接口,实现数据传输和 控制功能。
9
存储器组织与寻址方式
2024/3/26
程序存储器
51单片机C语言学习教程
2024/3/26
1
目录
2024/3/26
• 51单片机与C语言概述 • 基础知识与体系结构 • C语言编程基础回顾 • 51单片机C编程实践技巧 • 外部设备接口与通信协议实现 • 综合项目设计案例分析
2
01
51单片机与C语言概述
Chapter
2024/3/26
3
51单片机简介
21
模块化编程思想在51单片机中应用
功能模块化
接口标准化
将程序划分为多个功能模块,每个模块负 责实现特定的功能,提高代码复用性和可 维护性。
定义统一的模块接口标准,包括输入输出 参数、返回值等,方便模块间的调用和通 信。
降低耦合度
模块测试与集成
尽量减少模块间的直接依赖关系,通过接 口进行通信和数据传递。
51单片机UART/USART硬件资源
讲解51单片机中UART/USART相关的硬件资源,如串行通信控制器、引脚功能等。
2024/3/26
编程实现UART/USART通信
提供UART/USART通信的C语言编程示例,包括初始化串行通信、发送和接收数据等。
24
I2C总线接口原理及编程实现
01
I2C总线基本原理
MCS-51单片机第七章 人机交互通道配置及其接口技术

描完。
要注意的两个问题:
1.字型码通常通过查表指令MOVC来求得.
2.换位显示时通Be常ijin要g In加sti一tute段of程Pe序tro-使che所mi有cal的TecLhEnDol全ogy灭.
动态显示程序流程图
采用动态扫描方式依次循环点亮各位数码管,构成
多位动态数码管显示电路。
1
开始
指向段选口,送字型码
DJNZ R2,$
DJNZ R1,AGAIN ;2μs
NOP
;1μs
NOP
;1μs
NOP
;1μs
NOP
;1μs
NOP
;1μs
RET
;2μs
END
;2μs×48 ×10
Beijing Institute of Petro-chemical Technology
7.2.2 LED数码管及其应用
共阳极
共阴极
7.2.2 LED数码管及其应用
显示0~9程序
DELAY: MOV R7, #10
ORG 0000H
MAIN : MOV R0, #0
MOV R4, #10
;存要显示的数 ;存循环次数
DEL0: MOV R6, #200 DEL1: MOV R5, #250 DEL2: DJNZ R5, DEL2
…
WTAB: DB 3FH,06H,5BH
…
P1.0~1.7 MCS-51
aa
bf
b
g
he
c
dh
;指向字形码表首地址 ;取显示缓冲区中数据 ;查表显示译码 ;输出显示
;字形码表
COM
Beijing Institute of Petro-chemical Technology
《单片机原理及应用》教学大纲

《单片机原理及应用》教学大纲课程编号: S052027 课程类型: 专业必修课程名称:单片机原理及应用英文名称: Principle and Application of SCM学分: 3 适用专业:电子信息科学与技术第一部分大纲说明一、课程性质、目的和任务本课程是电子信息科学与技术专业的一门专业必修课,是在学生学完电子技术类基础课程和计算机应用类基础课程之后,为加强对学生技术应用能力的培养而开设的体现电子技术、计算机技术综合应用的一门课程。
本课程的目的和任务是使学生获得单片机应用系统设计的基本理论、基本知识与基本技能,掌握单片机应用系统各主要环节的设计、调试方法,并了解单片机在测量、控制等电子技术应用领域的应用。
初步具备应用单片机进行设备技术改造、产品开发及维护的能力,为走向工作岗位后从事单片机与嵌入式系统的研究及开发打下良好的基础。
二、课程的基本要求1、知识要求:了解:单片机的基本概念、发展历史、特点和应用领域。
MCS-51单片机的内部结构、;MCS-51单片机的寻址方式、汇编语言的构成;半导体存储器的原理、中断系统的基本概念、I/O寻址方式等。
掌握:MCS-51单片机的引脚功能、工作方式、存储器组织和位寻址区域;指令系统、汇编语言程序的设计和汇编方法、单片机C语言程序设计;MCS-51单片机和外部存储器的连接方法、MCS-51单片机中断系统的初始化方法、MCS-51单片机并行I/O接口的扩展方法、键盘/显示器的接口方法、MCS-51单片机内部定时器/计数器的使用方法、A/D、D/A转换器的工作原理及MCS-51单片机与A/D、D/A转换器的接口方法、串行通信的基本概念和设计方法;MCS-51单片机在不同方式下的应用。
2、能力要求:简单运用:运用所学单片机的基本知识和常用接口芯片进行单片机简单应用系统设计和开发方法。
熟练运用:汇编语言及C51语言的程序设计、内部定时器/计数器和中断系统的使用、存储器的扩展、A/D、D/A转换器的接口、键盘/显示器的接口等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 51单片机人机交互
五、LED控制的单片机程序设计 1. 图7-4 LED静态显示电路的应用汇编语言编程如下:
ORG 0000H LJMP MAIN ORG 0010H ;-------------第一片74LS74工作------------MAIN: SETB P1.4 CLR P1.5 ;第二、三片74LS74锁存数据 CLR P1.6 NOP CLR P1.0 ;第一位显示0 CLR P1.1 CLR P1.2 CLR P1.3来自第7章 51单片机人机交互
二、1602的管脚和指令介绍 1602字符型液晶显示模块是专门用于显示字母、 数字、符号等的点阵型液晶显示模块,如图7-8 所示。该显示模块为5×7点阵、16字×2行,具 有简单而功能较强的指令集,可实现字符的移动、 闪烁等显示功能。
第7章 51单片机人机交互
;-------------第二片74LS74工作------------CLR P1.4 SETB P1.5 ;第一、三片74LS74锁存数据 CLR P1.6 NOP SETB P1.0 ;第一位显示1 CLR P1.1 CLR P1.2 CLR P1.3 ;-------------第三片74LS74工作------------CLR P1.4 CLR P1.5 ;第一、二片74LS74锁存数据 SETB P1.6 NOP CLR P1.0 ;第一位显示2 SETB P1.1 CLR P1.2 CLR P1.3 END
第7章 51单片机人机交互
//--------------LED所显示的数字--------------------uchar code table[18]={ 0X3F,0X06,0X5B,0X4F, 0X66,0X6D,0X7D,0X07, 0X7F,0X6F,0X77,0X7C, 0X39,0X5E,0X79,0X71, 0X00}; //--------------------主函数---------------------void main() { while(1) { //-----------------第一个LED显示0---------LED1=0; LED2=1; LED3=1; P0=table[0]; delay(10);
显示字符
A B C D
共阳极字符
88H 83H C6H A1H
共阴极字符
77H 7CH 39H 5EH
4
5 6 7 8 9
99H
92H 82H F8H 80H 90H
66H
6DH 7DH 07H 7FH 6FH
E
F P H L “灭”
86H
8EH 8CH 89H C7H FFH
79H
71H 73H 76H 38H 00H
第7章 51单片机人机交互
2. LED 典型应用电路设计 ① LED静态显示电路设计
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 a A b B c C d D e LT BI/RBO f g RBI 74LS47 a A b B c C d D e LT BI/RBO f g RBI 74LS47 VCC a A b B c C d D e LT BI/RBO f g RBI 74LS47
第7章 51单片机人机交互
二、LED的驱动接口
LED 工作时需要一定的工作电流,才能正常发光。单个 LED实际上是一个压降为 1.5~2.5V的发光二极管,流过LED 的电流大小决定了它的发光强度。图7-2 为单个LED的驱动接 口电路。LED最高电流计算公式为(7-1)所示:
(7-1) V V V c c F c s IF R 式中: VF-- LED的正向压降;VCS-- LED驱动器的压降; R--- LED的限流电阻;VCC-- 电源电压;
第7章 51单片机人机交互
第7章 51单片机人机交互
在一个单片机应用系统中人机交互功能是必不可少的,键盘 和显示器件是一个系统中不可缺少的输入输出设备。 在系统工作的过程中,用户需要对系统相应控制操作,键盘 是重要的输入控制信息的设备,对系统各种状态进行控制。 通过显示设备显示系统各种状态信息和控制指令的执行结果, 显示采集信号的值、A/D转换结果和向用户显示报警信息等功能。 可以实时的了解系统运行状态,以便做出及时的处理。 一些单片机应用系统中还需要打印各种状态信息或定时生成 一些数据报表,特别是在各种便携式设备中,通过单片机控制的 微型打印机得到了更多的应用。
第7章 51单片机人机交互
2. 动态显示方式
动态显示方式是指一位一位地轮流点亮每位显示器,即 每个数码管的位选被轮流选中,多个数码管公用一组段 选。 显示时,段选控制相应字符段选码,位选控制该显示 位的电平。并保持延时一段时间,以造成视觉暂留效果。 刷新周期一般约为50ms。 显示的亮度同驱动电流大小、点亮时间和关断时间有 关,调整它们可控制LED显示亮度并实现稳定显示。 动态显示器因硬件成本低,多位数显示时常采用。 软件复杂,并要占用单片机较多的时间去定时刷新, 因此多用在功能简单的系统中。
BI/RBO a
图 7-3 74LS47的引脚图
第7章 51单片机人机交互
表7-2 74LS47 BCD-7段译码器输入/输出端信号对照表
输入端电平 LT RBI RBO 1 1 1 1 1 1 1 1 1 1 1 × × × × × × × × × 1 1 1 1 1 1 1 1 1 1 D C B A 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1 输出端电平 a 0 1 0 0 0 0 1 0 0 0 b 0 0 0 0 0 1 1 0 0 0 c 0 0 1 0 1 0 0 0 0 0 d 0 1 0 0 1 0 0 1 0 1 e 0 1 0 1 0 1 0 1 0 1 f 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 g 1 1 0 0 显 示 字 型 0 1 2 3 4 5 6 7 8 9
对于公共端加电压的操作称为位选,对各段加电压 操作称为段选。所有段的段选组合在一起称为字形码, 可以用一个字节数字位D0—D7作为段选信号S0—S7 来控制段a—f和dp。
表7-1 十六进制数七段LED字形码
显示字符
0 1 2 3
共阳极字符
C0H F9H A4H B0H
共阴极字符
3FH 06H 5BH 4FH
第7章 51单片机人机交互
//-----------------第二个LED显示1---------LED1=1; LED2=0; LED3=1; P0=table[1]; delay(10); //-----------------第三个LED显示2---------LED1=1; LED2=1; LED3=0; P0=table[2]; delay(10); };
分别用a~g及dp表示。如图7-1 (a) 所示。
10 9 G 8 7 6
a b c d e
+5V
a b c d e f g dp
F G A B N a D g b c dp C DP 4 5
f e
d G N E D D 1 2 3
f g dp
(a)
(b)
(c)
图7-1 七段LED数码管显示器
第7章 51单片机人机交互
}
第7章 51单片机人机交互
7.1.2 16x2字符型液晶显示器编程 一、LCD概述 液晶显示模块具有体积小、功耗低、显示内容 丰富等特点,现在字符型液晶显示模块已经是单 片机应用设计中最常用的信息显示器件了。 1602系列在国内应用比较广泛,该系列的液晶 显示器是高性价比的LCD段式液晶显示器。本书 以1602为例进行LCD模块应用的介绍。
第7章 51单片机人机交互
1. 静态显示方式
静态显示方式是指显示器显示某一个字符时,发光 二极管的位选始终被选中。 静态显示主要的优点是显示稳定,在发光二极管的 导通电流一定情况下,显示器的亮度大。 该显示方式下,每一个LED数码管显示器都需要一 个8位的输出口进行控制,占用硬件较多,一般仅用 于显示器位数较少的场合。 由于单片机本身提供的I/O口有限,实际使用中,通过 扩展相应锁存器和译码器来解决输出口数量不足的 问题。
图7-2 单个LED的驱动接口电路
限流电阻计算如公式(7-2)所示
V V V cc F cs R IF
(7-2)
第7章 51单片机人机交互
三、LED数码管的工作方式
LED数码管显示器常用的工作方式又可分为: 静态方式显示和动态方式显示两种。 在设计过程中可以根据系统总体资源分配情况, 选择合适的方式。
300Ω*7 a b c d e f g dp 300Ω*7 a b c d e f g dp 300Ω*7 a b c d e f g dp LED LED LED
VCC
51单片机
VCC
第7章 51单片机人机交互
LED静态显示流程图
开始
选通第一片74LS74 送数字0
选通第二片74LS74 送数字1
选通第三片74LS74 送数字2 结束
第7章 51单片机人机交互
② LED动态显示电路设计
1 2 3 4 5 6 7 8 a b c d e f g dp 1 2 3 4 5 6 7 8 a b c d e f g dp 1 2 3 4 5 6 7 8
0.51K*7
.
.
a b c d e f g dp
IF-- LED的工作电流。
第7章 51单片机人机交互
图7-2 中的7406是一个集电极开路的反相器,用于驱 动 LED 。当单片机的 I/O 端口 PXX 为高电平时,反相器 输出低电平, LED 发光;当单片机的 I/O 端口为低电平 时,反相器输出高电平,没有电流流过LED,LED熄灭。