第5章与显示器、开关、键盘接口设计
《单片机原理及应用》第5章 P0~P3口应用基础

3、矩阵键盘:
5.4 实验与设计
• 实验1 闸刀型开关输入/8段LED静态显示输出
5.4 实验与设计
• 设计1:LED模拟交通
• 6个灯—南北:黄、红、绿
•
东西:黄、红、绿
• (红、绿是10秒,黄闪烁2秒)
• 2个应急开关:南北绿或东西绿
• 画出硬件设计,编出模拟程序。
实验2 并行接口键盘/LED指示灯输出
同,每个显示缓冲器对应着一位显示器。
(3)查表并操作相应的显示器
• MOV • MOV • MOVC
A,#data DPTR,#DSPTAB A,@A+DPTR
• (4)显示子程序的调用
3、静态显示示例
• 【例5-4】利用51单片机的并行口作为静态显示的控制 口的示例
请修改:
(1)显示“12”; (2)轮流显示“12”、“--”、“AB”; (3)计数器:从00开始,1S加1。
设计1 计时秒表的设计
• (1)两位LED显示 • 可以显示00~99秒; • (2)两个按键 • 分别为启动/停止键、清零键。 • 要求:设计硬件电路,编写出软件程序(延时由软件
形成)。
设计2 模拟交通信号灯控制装置的设计
• (1)6个发光二极管模拟交通灯 • 南北:黄、红、绿 ;东西:黄、红、绿。 • (2)2个应急开关 • 南北绿东西红或东西绿南北红。 • 要求:设计硬件模拟电路,编写软件程序。
• 单片机原理及应用(第4版)
• 姜志海 王蕾 姜沛勋 编著
• 电子工业出版社
第5章 P0~P3口应用基础
• 片内并行I/O口的应用。 • 5.1 P0~P3口概述 • 5.2 输出操作 • 5.3 输入操作 • 5.4 实验与设计
单片机原理及应用——C51编程+Proteus仿真(第3版)课件第5章 开关键盘显示器接口设计

在【例5-1】基础上,编写控制发光二极管反复循环点亮的流水灯。 【例5-2】电路仍采用图5-2,制作由上至下再由下至上反复循环点亮显
示的流水灯,3种方法实现。
(1)数组的字节操作实现 建立1个字符型数组,将控制8个LED显示的8位数据作为数组元素,依
次送P1口。参考程序:
#include <reg51.h> #define uchar unsigned char uchar tab[ ]={ 0xfe , 0xfd , 0xfb , 0xf7 , 0xef , 0xdf , 0xbf , 0x7f , 0x7f ,
// 读入P1口的状态,送入state // 屏蔽P1口的高6位 // 判P1口低2位开关状态
{
case 0: P2=0x01; break; case 1: P2=0x02; break; case 2: P2=0x04; break; case 3: P2=0x08; break;
// 点亮P2.0脚LED //点亮P2.1脚LED // 点亮P2.2脚LED //点亮P2.3脚LED
} }
//左移初值赋给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据左移一位 // 赋右移初值给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据右移一位
15
程序说明: 注意使用移位运算符“>>”、“<<”与使用循环左移函数 “_crol_”和循环右移函数“_cror_” 区别。左移移位运算“<<”是将高位 丢弃,低位补0 ;右移移位运算、“>>”是将低位丢弃,高位补0。而循环 左移函数“_crol_” 是将移出的高位再补到低位,即循环移位;同理循环 右移函数“_cror_” 是将移出的低位再补到高位。
数据采集系统 教学大纲

《数据采集系统》教学大纲Data Acquisition System课程编码:12A08100 学分:2.5 课程类别:专业课计划学时:48 其中讲课:36 实验或实践:12 上机:0适用专业:电子信息科学与技术推荐教材:李念强等,《数据采集技术与系统设计》,机械工业出版社,2009年参考书目:曹玲芝,《现代测试技术及虚拟仪器》,北京航空航天大学出版社,2004年课程的教学目的与任务本课程是电子信息类本科生的一门主要的专业课。
本课程的教学目的是使学生通过学习数据采集系统基本知识和设计方法,熟悉简单的传感器,信号的调理,A/D转换,D/A转换,人机接口,抗干扰和数据处理等技术,能够结合应用环境和功能要求,选择最适合的软硬件设计方案,实现基本的数据采集系统设计。
课程的主要任务是通过本课程的学习,使学生掌握以单片机为核心的数据采集系统的基本原理和软件开发方法,掌握数据采集系统的分析方法和设计方法,为今后进行系统的软硬件设计及项目开发打下坚实的基础。
课程的基本要求1、使学生在掌握模拟电子技术,数字电子技术,单片机技术和C语言程序设计等课程的基本理论、基本设计方法的基础上,能够按照数据采集系统的设计原则,根据系统的应用环境和功能要求,选用高性价比的传感器,采用适宜的接口方案及数据处理方法,完成简单数据采集系统的设计。
2、通过课堂讲解、讨论和课内实验,使学生能掌握数据采集系统的设计原则,能够利用网络,图书等资源选择适合的电路器件和设计方法,提高学生的工程实践能力。
3、要求学生在学完本课程后,能运用所学基本理论和接口电路,独立地完成小型数据采集系统的综合设计。
各章节授课内容、教学方法及学时分配建议(含课内实验)第一章数据采集与系统设计基础建议学时:4 [教学目的与要求] 了解数据采集系统的结构形式及采集信号的处理基础。
[教学重点与难点] 数据采集系统的结构形式。
[授课方法] 以课堂讲授为主,课堂讨论和课下自学为辅。
并行接口P0~P3

K
30P
XTAL2 GND
第5章 并行接口P0~P3和单片机的中断系统
编程如下:
CLR P1.0 AGA:SETB P1.1 JB P1.1,LIG SETB P1.0 SJMP AGA LIG: CLR P1.0 SJMP AGA
;使发光二极管灭 ;先对P1口写入“1” ;开关开,转LIG ;开关合上,二极管亮
LED数码管的g~a七个发光二极管因加正电压而发亮, 因加零电压而不能发亮,不同亮暗的组合就能形成不同的字 形,这种组合称之为字形码,显然共阳极和共阴极的字形码 是不同的 ,其字形码见下表。LED数码管每段需10~20ma 的驱动电流,可用TTL或CMOS器件驱动。 字形码的控制输出可采用硬件译码方式,如采用BCD 7段译码/驱动器74LS48、74LS49、CD4511(共阴极)或 74LS46、74LS47、CD4513
P1.7
SCቤተ መጻሕፍቲ ባይዱ引脚,在系统编程时钟输入
第5章 并行接口P0~P3和单片机的中断系统
3.P2口 内部上拉电阻的8位准双向并行I/O口,P2口的位结构比P1 多了一个转换控制部分,当P2口作通用I/O口时,多路开关 MUX倒向左; 读锁存器
1 内部总线 写锁存器 P2.x 锁存器 CL 2 读引脚 D Q
/数据复用总线(用于口扩展) 两个输入缓冲器(BUF1和BUF2) 读锁存器
P0R1
地址/数据
BUF1
AD0
控制 Vcc
b c
内部总线
D0
D C
a
T1
写锁存器
P0W
锁存器
Q
Q
P00
3、P0W为端口输出写信号,用于 推拉式I/O驱动器 锁存输出状态 多路开关 4、P0R1为读锁存器信号,执行 功能:用于控制选通I/O方式 “ANL P0,#0FH”时该信号有效 A 还是地址/数据输出方式 5、P0R2为读引脚信号,执行 2) “MOV A,P0”时该信号有效 方式控制:由内部控制信号
1-单片机键盘与显示电路设计

独立式按键 单片机控制系统中,往往只需要几个 功能键,此时,可采用独立式按键结构。 1.独立式按键结构 独立式按键是直接用I/O口线构成的单 个按键电路,其特点是每个按键单独占 用一根I/O口线,每个按键的工作不会影 响其它I/O口线的状态。独立式按键的典 型应用如图9-3所示。
V CC
P 1.0 P 1.1 P 1.2 P 1.3 P 1.4 P 1.5 P 1.6 P 1.7
P1口某位结构
P1口电路中包含有一个数据输出锁存器、一个三态数据输入缓冲器 、一个数据输出的驱动电路。 P1口的功能和驱动能力
P1口只可以作为通用的I/O口使用;
P1可以驱动4个标准的TTL负载电路; 注意在P1口作为通用的I/O口使用时,在从I/O端口读入数据时,应 该首先向相应的I/O口内部锁存器写“1”。 举例:从P1口的低四位输入数据 MOV MOV P1,#00001111b ;;先给P1口底四位写1 A,P1 ;;再读P1口的底四位
依此规律循环,即可使各位数码管显 示将要显示的字符。虽然这些字符是在不 同的时刻分别显示,但由于人眼存在视觉 暂留效应,只要每位显示间隔足够短就可 以给人以同时显示的感觉。 采用动态显示方式比较节省I/O口,硬 件电路也较静态显示方式简单,但其亮度 不如静态显示方式,而且在显示位数较多 时,CPU要依次扫描,占用CPU较多的时 间。
矩阵式按键 单片机系统中,若使用按键较多时,通 常采用矩阵式(也称行列式)键盘 1.矩阵式键盘的结构及原理 矩阵式键盘由行线和列线组成,按键位 于行、列线的交叉点上,其结构如下图9-4 所示。
+5 V 0 4 8 12 0 1 5 9 13 1 2 6 10 14 2 3 7 11 15 3 0 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.设计框图框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。
第5章 输入、输出接口P0~P3--1讲解

武汉科技大学
电信系
2. P1口 字节地址90H,位地址90H—97H
P1.0—P1.7: 准双向I/O口 输出时一切照常,输入时要先对其写“1”
读锁存器
内部 总线
写锁 存器
2
DQ CK /Q
1
读引脚
单片机及接口技术
Vcc 内部上拉电阻
引脚P1.X
17
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P1口
输入数据时,要先对其写“1”
读锁存器
Vcc 内部上拉电阻
内部 总线 1
写锁 存器
2
DQ
1
CK /Q
0
截 引脚P1.X 止
1
读引脚 =1
18
单片机及接口技术
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P1口
读锁存器
输出数据 1 时
内部 总线 1
写锁 存器
2
DQ
1
CK /Q
0
1
Vcc 内部上拉电阻
1
读引脚 =0
控制=1时,此脚作通用输出口: 输出=1时
23
单片机及接口技术
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P2口
读锁存器
内部 总线 0
写锁 存器
2
DQ CK /Q
地址高8位 控制 =1
Vcc 内部上拉电阻
0
1
3
=0
导 引脚P2.X 通
1 读引脚 =0
单片机及接口技术
控制=1 时,此脚作通用输出口: 输出=0 时
例5-1.设计一电路,监视某开关K,用发光二极 管LED显示开关状态,如果开关合上,LED亮、 开关打开,LED熄灭
MCS—51单片机学习开发系统设计-单片机原理及接口技术课程设计说明书

MCS—51单片机学习开发系统设计-单片机原理及接口技术课程设计说明书单片机原理及接口技术课程设计说明书姓名xx所在院(系)电气工程与自动化学院专业班级电气学号指导教师xxx时间MCS—51单片机学习开发系统设计摘要:该MCS--51单片机学习开发系统集成多个资源模块,每个模块各自可以成为独立的单元,也可以相互组合,可完成MCS-51单片机学习过程中的大部分实验。
将MCS-51 设计为多功能可编程接口,该系统工具是初学单片机及单片机爱好者快速掌握51系列单片机不可多得的工具,可以为他们提供不同的开发学习环境。
集成系统主要功能模块组成如下:+5V、-5V、+12V、-12V直流稳压电源模块、8位发光二极管、四位LED数码管、点阵式LCD 液晶显示器、4*4键盘、ISP下载线、并行口扩展控制线接口、A/D、D/A转换接口、串行口通信、PC标准键盘的PS/2接口、继电控制模块等。
关键字:MCS-51单片机系统设计功能模块程序设计目录第1章系统综述 (1)第2章硬件设计 (2)2.1 单片机最小系统 (2)2.2 电源电路 (4)2.3 程序下载口 (4)2.4 LED显示模块 (5)2.5 LCD液晶显示器及PC标准键盘接口 (6)2.6 键盘电路 (7)2.7 DAC0832D/A转换电路 (9)2.8 ADC0809A/D转换电路 (10)2.9 8255输入/输出(或数据总线)扩展 (11)2.10串行通信模块 (12)2.11 继电器控制模块 (14)2.12系统总图 (15)第3章软件设计 (18)3.1 8255并行扩展设计 (18)3.2 8255键盘及显示设计 (19)3.3 串行通信口设计 (20)3.4 A/D转换设计 (22)3.5 D/A转换设计 (24)第4章系统实验 (25)4.1 数码管循环计数显示实验 (25)4.2 串行口两单片机双机通信实验 (26)4.3 简单键盘控制显示实验 (27)4.4 键盘控制位循环显示实验 (27)第5章设计总结 (28)第6章参考文献 (29)附录系统模块程序设计清单 (31)1. 8255并行扩展程序设计 (31)2. 8255键盘及显示控制程序设计 (32)3. A/D转换实验程序设计 (36)4. D/A转换程序设计 (37)5. 双机通信实验程序设计 (40)6. 键盘控制位循环显示实验程序设计 (43)第1章系统综述目前,单片机已广泛应用到工业测控、智能仪表、数据采集、人工智能等领域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(i=0; i<255; i++)
for(j=0; j<255; j++);
}
void main( )
//主函数
{
uchar i,temp;
while (1)
13
{
temp=0x01;
//左移初值赋给temp
for(i=0; i<8; i++)
{
P1=~temp;
// temp中的数据取反后送P1口
//包含移位函数_crol_( )的头文件
#define uchar unsigned char
#define uint unsigned int void delay(uint i)
//延时函数
{
uchar t;
while (i--)
7
图5-2 单片机控制的流水灯
8
{
for(t=0;t<120;t++);
“while(1);”: while(1)后有分号,是使程序停留在这指令上 ; “while(1) {……;}”:反复循环执行大括号内程序段,本例用 法,即控制流水灯反复循环显示。
(2)C51函数库中的循环移位函数:循环移位函数包括循 环左移函数“_crol_”和循环右移函数“_cror_”。本例用循环 左移 “_crol_(P1,1)”,函数。括号第1个参数为循环左移对象 ,即对P1中的内容循环左移;第2个参数为左移位数,即左移 1位。编程中一定要把含有移位函数的头文件intrins.h包含在10
}
}
void main( )
//主程序
{
P1=0xfe;
//向P1口送出点亮数据
while (1)
{
delay( 500 );
//500为延时参数,可根据实际需要调整
P1=_crol_(P1,1) ; // 函数_crol_(P1,1)把P1中的数据循环左移1位
}
}
9
程序说明: (1)while(1) 两种用法:
与P1、P2、P3口相比,P0口每位可驱动8个LSTTL输入,而P1 ~P3口每一位驱动能力,只有P0口一半。
当P0口某位为高电平时,可提供400A的拉电流;当P0口 某位为低电平(0.45V)时,可提供3.2mA的灌电流,而P1~ P3口内有30kΩ左右上拉电阻,如高电平输出,则从P1、P2和 P3口输出的拉电流Id仅几百µA,驱动能力较弱,亮度较差,见 图5-1(a)。
P0~P3口是单片机与外设进行信息交换的桥梁,可通过读取 I/O口状态了解外设状态,也可向I/O端口送出命令或数据控制 外设。
对I/O端口编程控制时,要对I/O端口特殊功能寄存器声明 ,在C51的编译器中,这项声明包含在头文件reg51.h中,编程 时,可通过预处理命令#include<reg51.h>,把这个头文件包 含进去。下面通过案例介绍如何编程对发光二极管输出控制。
6
【例5-1】 制作流水灯,原理电路见图5-2,8个发光二极 管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚 上,阳极共同接高电平。编写程序来控制发光二极管由上至
下的反复循环流水点亮,每次点亮一个发光二极管。
参考程序:
#include <reg51.h> #include <intrins.h>
为保证发光二极管正常工作,同时减少功耗,限流电阻选择 十分重要,若供电电压为+5V,则限流电阻可选1~3kΩ。
2
5.1.1 单片机与发光二极管的连接 第2章已介绍,P0口作通用I/O用,由于漏极开路,需外接上
拉电阻。而P1~P3口内部有30kΩ左右上拉电阻。 下面讨论P1~P3口如何与LED发光二极管驱动连接问题。 单片机并行端口P1~P3直接驱动发光二极管,电路见图5-1。
delay( );
// 延时
temp=temp<<1;
// temp 中数据左移一位
}
temp=0x80;
// 赋右移初值给temp
如端口引脚为低电平,能使灌电流Id从单片机外部流入内 部,则将大大增加流过的灌电流值,见图5-1(b)。AT89S51 任一端口要想获得较大的驱动能力,要用低电平输出。
图5-1 发光二极管与单片机并行口的连接
5
如一定要高电平驱动,可在单片机与发光二极管间加驱动电路 ,如74LS04、74LS244等。 5.1.2 I/O端口的C51编程控制
数据,后8个为右移点亮数据*/
void delay( )来自{uchar i,j;
for(i=0; i<255; i++)
for(j=0; j<255; j++);
}
void main( )
//主函数
{
uchar i;
while (1)
{
for(i=0;i<16; i++)
{
P1=tab[i];
//向P1口送出点亮数据
下例在【例5-1】基础上,控制发光二极管反复循环 点亮的流水灯。
【例5-2】电路见图5-2,制作由上至下再由下至上 反复循环点亮显示的流水灯,3种方法实现。
(1)数组的字节操作实现
本法建立1个字符型数组,将控制8个LED显示的8 位数据作为数组元素,依次送P1口。参考程序:
#include <reg51.h> #define uchar unsigned char uchar tab[ ]={ 0xfe , 0xfd , 0xfb , 0xf7 , 0xef , 0xdf , 0xbf , 0x7f , 0x7f , 0xbf , 0xdf , 0xef , 0xf7 , 0xfb , 0xfd , 0xfe }; /*前8个数据为左移点亮
delay( );
//延时,即点亮一段时间
}
} 12
}
(2)移位运算符实现
使用移位运算符“>>”、“<<”,把送P1口显示控制数据
进行移位,从而实现发光二极管依次点亮。参考程序:
#include <reg51.h>
#define uchar unsigned char
void delay( )
{
uchar i,j;
第5章 单片机与显示器件及开 关、键盘的接口设计
1
单片机系统显示及开关检测、键盘输入是其基本功能。本章 介绍单片机与显示器件、开关及键盘的接口设计与软件编程。 5.1 单片机控制发光二极管显示
发光二极管常用来指示系统工作状态,制作节日彩灯、广告 牌匾等。
大部分发光二极管工作电流1~5mA之间,其内阻为 20~100Ω。电流越大,亮度也越高。