单片机应用技术C语言任务6 8155扩展键盘与显示

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

键盘的行扫描信 号从PB口输入, 因此将PB口设 置为输入方式
下午10时25分28秒
同时PC口送出 的位控制码还作 为键盘的列扫描 输出信号
《单片机应用技术》课件制作组
6.1.1 硬件电路及工作原理
数码管为共阴数码管,低电平驱动位选端,PC口 2在逐位动态显示数码管的同时还应能扫描矩阵键 盘。当要选中第一位(右边)数码管显示数据时, 工 PC0口送“0”,而PC口其他位送“1”,这样第一 作 位数码管亮,其它不亮,同时PC0的低电平还可以 原 扫描键盘第一列的“ON/C”、“1”、“4”、“7” 四个按键。重复刚才的过程可以将余下数码管显 理 示完,并将余下的键盘亦扫描完毕。

任务目标
任务描述 任务载体 相关知识
利用8155接口芯片扩展3×7键盘及7个LED显示器 计算机、单片机仿真器、G2010+实验平台 单片机系统扩展
《单片机应用技术》课件制作组
下午10时25分28秒
6.1.1 硬件电路及工作原理
1.硬件电路
在一般的仪表、测控系统中,通常需要有许多位 LED显示和许多个按键,比如需要16位LED显示, 32个输入按键。如果直接使用单片机的I/O口来连接, 单片机I/O口似乎不够用。像这种显示、按键比较多 的场合,通常采用扩展通用可编程I/O扩展芯片来实 现,其中8155是最常用的一个I/O扩展芯片。扩展一 片8155,不仅扩展了单片机的I/O口,还扩展了256 B的RAM和一个14 bit的减法定时/计数器。
《单片机应用技术》课件制作组
下午10时25分28秒
6.1.2 控制程序
/*定义0~9共阴数码管段码*/ unsigned char LED[10]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; /*定义全局显示变量,并初始化为4321*/ unsigned int Data=4321; void main(void) {RES8155=1; //复位8155 RES8155=0; IO8155_cmd=0x0d; //置PA、PC为输出口,PB为输入口 while(1) { /*全局变量Data进行BCD转换,结果存放于数组Buffer*/ Buffer[3]=LED[Data/1000]; Buffer[2]=LED[Data%1000/100]; Buffer[1]=LED[Data%1000%100/10]; Buffer[0]=LED[Data%1000%100%10]; /*Buffer存放的显示内容传入显示Display函数*/ Disp_LED(Buffer); } }
下午10时25分28秒
《单片机应用技术》课件制作组
6.1.1 硬件电路及工作原理
1.硬件电路
8155接口芯片 扩展4个LED
扩展16个行列扫 描矩阵键盘
下午10时25分28秒 《单片机应用技术》课件制作组
74LS07为LED 的位驱动
6.1.1 硬件电路及工作原理
2 工 作 原 理
PA口设置为输出 控制方式,作为 LED的段码端 PC口设置为输出控 制方式,作为LED 的位控制端
任务6 8155扩展键盘与显示
6.1 工作任务
6.1.1 硬件电路及工作原理 6.1.2 控制程序 6.1.3 任务分析 6.1.4 任务结论
6.2 相关知识链接
6.2.1 概述 6.2.2 储存器扩展 6.2.3 简单I/O总线扩展 6.2.4 可编程I/O接口芯片8155 6.2.5 MCS-51的键盘接口 6.2.6 MCS-51的显示接口
下午10时25分28秒 《单片机应用技术》课件制作组
6.1.2 控制程序
PC=0x0f; PA=*(p+1); PC=0xfd; key=PB; key&=0x0f; delay(50); switch(key) {case 0x0e:Data=4;break; case 0x0d:Data=5;break; case 0x0b:Data=6;break; case 0x07:Data=7;break; default: break; }
下午10时25分28秒
《单片机应用技术》课件制作组
wk.baidu.com
6.1.2 控制程序
8155的初始化; ●显示及键盘扫描。

下午10时25分28秒
《单片机应用技术》课件制作组
6.1.2 控制程序
#include "reg51.h" #include "INTRINS.H" #include "ABSACC.H" /*定义8155的I/O端口地址,命令地址为7100H, PA=7101H,PB=7102H,PC口=7103H*/ #define IO8155_cmd XBYTE[0x7100] #define PA XBYTE[0x7101] #define PB XBYTE[0x7102] #define PC XBYTE[0x7103] sbit RES8155=P1^7; /*声明函数*/ void delay(unsigned char x); //声明延时函数 void Disp_LED(unsigned char *p); // 声明显示函数 unsigned char Buffer[4]={0,0,0,0}; //定义数码管显示缓存数组,元素等于数码管位数
《单片机应用技术》课件制作组
6.1 工作任务
任务名称
8155扩展键盘与显示
了解MCS-51单片机的三总线扩展技术; 熟悉可编程I/O接口芯片8155的组成及功能、键盘与 显示器的人机交互接口技术; 掌握片外RAM、ROM及8155等地址的确定方法; 学会8155初始化的方法及其I/O口的使用; 学会LED显示器、键盘扫描等综合程序的编制及调 试技巧
《单片机应用技术》课件制作组
下午10时25分28秒
6.1.2 控制程序
void Disp_LED(unsigned char *p) {unsigned char key,i; PA=*(p+0); //显示个位,发段码 PC=0xfe; //显示个位,发位码 key=PB; //读入键盘行信号 key&=0x0f; //屏蔽无关位 delay(50); //延时 switch(key) //逐列判断是否有键盘按下 {case 0x0e:Data=0;break; case 0x0d:Data=1;break; case 0x0b:Data=2;break; case 0x07:Data=3;break; default: break; }
相关文档
最新文档