实验四实验报告 - 图文
更新时间:2023-10-12 17:52:01 阅读量: 综合文库 文档下载
- 数据库实验四实验报告推荐度:
- 相关推荐
学号 14142200283序号 14
单片机原理与接口技术
实验报告
实验项目序号实验 四 实验项目名称动态显示与矩阵式键盘实验
姓名 彭任远 专业 电子信息工程 班级 14-1BF 完成时间 2016年 6月1日 程序关键部分节选:
uchar code sled_bit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义点亮数码管位选码
data uchardisp[8]={16,16,16,16,16,16,16,16}; uchar code table[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //共阴极数码管显示段码
第一题:void T0_int(void) interrupt 1
{ TH0=(65536-1000)/256; TL0=(65536-1000)%6;
oe=1; // 关闭2个573输出,防止在送数据时相互影响
k = disp[j]; // 每次显示ar[j]的数据 P0 = table[k]; // 相应显示数字段码 dx=1;
dx=0; // 锁存段码
P0=sled_bit[j]; // 选择相应数码管位选 wx=1;
wx=0; // 锁存位码
oe=0; // 打开2个573三态门,输出段码和位码 if(++j>=8)j=0; // 为下一个显示做准备 }
void int0_isr(void) interrupt 0 // 外中断0的中断服务函数 { uchar i;
if(key1==0) for(i=0;i<8;i++) disp[i]=ar[i];
if(key2==0) for(i=0;i<8;i++) disp[i]=br[i]; }
第二题:
P2=0xf0; delay(5); a=P2; P2=0x0f; delay(5); b=P2; a=a|b;
if(a!=0xff) //未按键,不处理 {
while(P2!=0x0f); //等待松手 ,一旦松手后才赋键值 switch(a)
{ case 0xee: num=0; break; case 0xde: num=1; break;
case 0xbe: num=2; break; case 0x7e: num=3; break; case 0xed: num=4; break; case 0xdd: num=5; break; case 0xbd: num=6; break; case 0x7d: num=7; break; case 0xeb: num=8; break; case 0xdb: num=9; break; case 0xbb: num=10;break; case 0x7b: num=11;break; case 0xe7: num=12;break; case 0xd7: num=13;break; case 0xb7: num=14;break; case 0x77: num=15; }
for(i=0;i<7;i++) disp[i]=disp[i+1]; disp[7]=num; }
delay(255); //消弹跳 }
第三题:
if(num<10)
{for(i=0;i<7;i++) disp[i]=disp[i+1]; disp[7]=num; }
if(a==0xe7) { num=0;
for(x=0;x<8;x++) disp[x]=num; }
if(a==0x77)
{num=16;
for(y=0;y<8;y++) disp[y]=num; } }
delay(255); //消弹跳
实验实物图: 第一题:
第二题: 第三题:
实验四动态显示与矩阵式键盘实验
一、实验目的
1、 进一步理解数码管与单片机的接口原理与动态显示原理,理解单片机矩
阵式键盘按键识别的原理;
2、 掌握单片机动态显示应用和编程方法; 3、 掌握单片机矩阵式键盘按键识别的方法。 二、实验前准备
1、 完成作业6;
2、 根据实验内容编写好相关程序,并进行Proteus仿真。 三、实验内容
实验内容为3项,其中第1、2项必做。 1、动态显示。
未按键不显示,按K1键,动态显示“19491001”;按K2键,动态显示“20141210”。
2、动态显示与按键识别。
矩阵式键盘键值分别是0-F,未按键不显示。每按键一次,键值在最低位显示,原键值向高位移一位。
3、可控动态显示与按键识别。
矩阵式键盘键值分别是0-9,最下面一排键位功能键,左右两个键分别为“清0键”“C”,和”“回车键”“?”,其它键无效。未按键不显示,每按键一次,键值在最低位显示,原键值向高位移一位。按8个键后,再按键无效。按清0键全显示“0”。按“?”后全部熄灭,再按键重新开始。 四、实验原理图
1918171615141312Q0Q1Q2Q3Q4Q5Q6Q774HC573LEOEQ0Q1Q2Q3Q4Q5Q6Q7U21918171615141312U374HC573LEOE1111RP81k1098765432D0D1D2D3D4D5D6D723456789D0D1D2D3D4D5D6D7111U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD3938373635343332K121222324252627281011121314151617K2K3K418XTAL29RST293031PSENALEEA2345678912345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51U4AND_4 图3.4 动态显示与矩阵式键盘实验电路原理图
动态显示共8个共阴极数码管,采用两片74LS573进行驱动,74LS573与74LS373都是8D锁存器,只是573引脚排列更易于布线。其引脚功能为:D1-D8为数据输入端;Q1-Q8为数据输出端;LE为数据输入锁存端,LE=1数据输入D锁存器,LE=0数据不能输入D锁存器,即LE下降沿锁存当前输入数据;OE地址输出允许端,OE=0输出锁存数据,OE=1输出高阻。
电路中,U1输出段码a b c d e f g db,控制显示的字形与小数点,U2输出位选码,控制第几个数码管显示。单片机P14、P15分别连接到U1、U2的LE,连接U1、U2的OE。 五、软件设计思想 1、动态显示。
(1) 仿照例题编程,设置8个数据的一维显示数组disp[],设置位选码数组sled_bit[],对应每个数码管;设置2个一维数组,data ucharar[8]={1,9,4,9,1,0,0,1};data uchar br[8]={2,0,1,4,1,2,1,0};按K1、K2键进入外部中断0,在外部中断程序中根据按键将ar[]、br[]数据送人disp[]。
(2)T0每500us中断1次,在T0中断中点亮一个数码管。在T0中断函数中,① P1.3=1,U1、U2输出高阻;② P1.4=1,P0口输出段码,P1.4=0,U1锁存输入的段码;③ P1.5=1,P0口输出位选码,P1.5=0,U2锁存输入的位选码;④ P1.3=0,U1、U2同时输出段码和位选码,进行显示。
1、 矩阵式键盘按键识别
(1)行、列输出后要延时,才读出相应特征值; (2)进行键值分析前要具备如下条件:
①要有键按下,设a是得到的键值,if(a!=0xff)才继续进行; ②要等键弹起,若输出P2=0x0f,则P2!=0x0f要等待,while(P2!=0x0f); ③每次进行完键值分析后,要延时。
六、实验思考题
1、 电路中为什么要用74LS573,不用74LS573,可用什么器件代替?如果
U1、U2的OE都直接接地,应如何编程? 答:可用74ALS573,74S573,74AS573,74HC573,74HCT573替代。如果OE都接地也就是都置零,那么就没有关闭两块芯片的输出使能端。可以在送段码和位码时先送位码把P0置0xff,再送段码,最后再送要显示的位码 2、为什么要等键弹起,才进行键值分析?
答:消弹跳,因为若不消弹跳,可能会认为多次按此键。最好是等待松手后,再进行判断。
3、如果用简单按键与矩阵式键盘构成组合按键,组合按键如何编程得到键值?
答:组合按键是多个按键组合获得一个键值,因此我们可以先获取简单按键与矩阵式键盘分别的键值。得到分别的键值后,加判断语句分别要求独立按键的键值为某一值、矩阵按键获取的键值为某一值当它们都达到要求时则向系统反馈某个设定值。
正在阅读:
实验四实验报告 - 图文10-12
生产管理--安全生产标准化评分表 精品05-06
学校第一个五年发展目标规划04-19
莫斯科保卫战观后感04-01
电气安装工程验收表格汇总09-04
XX公司薪酬设计方案(全面) - 图文06-01
2022年中考语文冲刺复习训练及答案04-13
解线性方程组的几种迭代算法05-28
超限高层建筑工程抗震设防专项审查01-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 图文
- 报告
- 有限公司1000吨年涂料生产项目可行性研究报告
- 某县政府办公室学习先进性教育整改情况汇报
- 垂直轴自变叶片风轮的原理及应用
- 让课堂风生水起
- 德语作文介绍上海
- 程序设计竞赛练习题
- 大学物理知识总结习题答案(第十章)量子物理基础
- 安全知识考试卷
- 流体力学与液压传动试题库及答案.jsp
- 人教版三年级语文下册学业过关测评含答案
- 2018年江苏省无锡市惠山区中考物理二模试卷
- 大学现代汉语整理
- 无线电考试A类题库(2015)
- 部编新人教版二年级语文上册教学计划和全册教案
- 2017年人教版九年级数学上册全书教案
- 五年级上册语文教案-14我的战友邱少云语文S版
- 关于启用《招收研究生的学科、专业名称及代码》的通知
- 古建筑榫卯联接结构的力学合理性分析与优化
- 最新环保部发布生活垃圾焚烧发电建设项目环境准入条件(试行)
- 新版外研版 三起 小学英语四年级上册全册教案 第一学期全套教学设计