(单片机原理与应用)并行口设计数字键盘实验
2015-03-07 13:12
204 查看
一、实验内容
并行口实现数字0~9、A~F、L、U、P、n总共19个键盘,将按键的结果用4位数码管(例如:7SEG-MPX-CA-BLUE)显示(可选——按键控制移位)出来。
二、实验目的
掌握动态显示、动态扫描键盘的工作原理及硬、软件的设计、调试方法
掌握80C51接口硬件电路设计方法及软件编程方法
了解80C51外部中断的使用和编程方法
三、实验设备
DELL台式机 、keilC51版本7、proteus版本6
四、实验电路图
五、程序流程图
[b]六、程序源码
[/b]
并行口实现数字0~9、A~F、L、U、P、n总共19个键盘,将按键的结果用4位数码管(例如:7SEG-MPX-CA-BLUE)显示(可选——按键控制移位)出来。
二、实验目的
掌握动态显示、动态扫描键盘的工作原理及硬、软件的设计、调试方法
掌握80C51接口硬件电路设计方法及软件编程方法
了解80C51外部中断的使用和编程方法
三、实验设备
DELL台式机 、keilC51版本7、proteus版本6
四、实验电路图
五、程序流程图
[b]六、程序源码
[/b]
#include<reg51.h> #define uchar unsigned char #define uint unsigned int //0-9,A~F,L,U,P,n的数码管断码 uchar code DSY_CODE[]= { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71, 0x38,0x3e,0x73,0x37 }; sbit P2_0=P2^0; uchar pre_key=20,key=20; //延时 void DelayMS(uint ms) { uchar t; while(ms--) for(t=0;t<120;t++); } //键盘矩阵扫描 void keys_scan() { uchar temp; P0=0x0f; P2_0=0; DelayMS(1); //按键后P2_0=0,00001111将变成P2_0=0,0000XXXX,X中有1个为0,3个仍为1 //下面的异或操作会把3个1变成0,唯一的0变成1 temp=P0^0x0f; //判断按键发生于0~3列中的哪一列 switch(temp) { case 1:key=0;break; case 2:key=1;break; case 4:key=2;break; case 8:key=3;break; } P0=0xf0; P2_0=1; DelayMS(1); //按键后,P2_0=1,11110000将变成P2_1=X,XXXX0000,X中有1个为0,3个仍为1 //下面的表达式会判断P2_1或者会将高4位移到低4位,并将其中唯一的0变为1,其余为0 if(P2_0==0) key+=16; else { temp=P0>>4^0x0f; switch(temp) { case 1:key+=0;break; case 2:key+=4;break; case 4:key+=8;break; case 8:key+=12;break; } } } void main() { P1=0x00; P2_0=0; while(1) { P0=0xf0; P2_0=1; if(P0!=0xf0||P2_0!=1) keys_scan();//扫描键盘获取按键序号Key if(pre_key!=key) { P1=DSY_CODE[key];//显示 pre_key=key; } DelayMS(100); } }
相关文章推荐
- 并行口设计数字键盘实验
- 关于设计:Actionscript 有关键盘事件、处理日期时间、文字与数字处理笔记
- 并行口实现数字0~9、A~F、L、U、P、n总共19个键盘,将按键的结果用7段数码管(例如:7SEG-MPX-CA-BLUE)显示(可选——按键控制移位)出来
- 实验3、11.数字抢答器设计
- 并行口设计花样流水灯实验
- C#--第10周实验--任务2--设计一个窗体--文本框只能输入0至9这十种数字,且长度最多8个
- 并行口设计花样流水灯实验
- CQU数字逻辑实验——交通灯系统设计
- DE2-70数字系统设计实验(3)--移位寄存器
- (单片机原理与应用)定时器/计数器设计实验
- 设计一个具有健壮性,灵活性,可重用性的Web应用架构(一)--->实验总结
- 基于CPLD的数字钟设计(二)
- 基于信号完整性分析的高速数字PCB 的设计方法
- 数字音频音质剖析—不同精度、采样的盲听实验
- 一种嵌入式PC非标准键盘的设计
- 基于CPLD的数字钟设计(一)
- 电工测量及实验实训网站设计
- 题目:要求从键盘输入一数字,然后中文输出(要符合中文语法)
- 设计一个具有健壮性,灵活性,可重用性的Web应用架构(二)--->实验总结
- 手写数字识别实验