- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PAGE
PAGE3
数码管、键盘动态扫描
实验目的
1、学习实验系统的基本操作,了解在实验系统中进行程序设计、仿真和调试的操作方法和步骤;
2、熟悉Proteus的基本仿真功能;
3、熟悉动态扫描的思想以及矩阵键盘的扫描方法。
二、实验原理
1、数码管的动态扫描利用的是人的视觉暂留效应也称“余辉效应”(人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”)。本来在同一时间里只能控制一个数码管显示,却让人产生几个数码管是同时显示的错觉。实现方法为在很短的时间内切换不同的数码管显示对应的数字。
2、矩阵键盘的动态扫描则是通过单片机I/O的电平状态来实现判断的。
三、实验步骤
1、硬件仿真。先分析实验所需的硬件条件,然后在Proteus上连接好硬件电路,注意连接好必要的电阻等。如图(1)、图(2)所示:
图(1)数码管动态扫描的硬件仿真电路图
图(2)键盘动态扫描的硬件仿真电路图
2、软件编写。在Keil或其它的单片机编程软件上用C语言编写出构思好的软件。
(1)数码管的动态扫描设计得很简单,就是让它显示一串不变的数字。
(2)矩阵键盘的扫描则是让按不同的按键,一数码管就显示不同的字符。
3、将程序编译为HEX文件,然后烧录到仿真单片机中,进行仿真。
4、分析实验结果,找出问题并解决。
四、实验结果及分析
1、数码管动态扫描
实验开始时发现仿真一直存在错误,开始一直认为是电阻太大导致数码管不能够正常的显示。再改变电阻值后,情况的确得到了改善,不过数码管显示还是错误的并出现乱码的情况。后怀疑是程序编写有误,于是为了检验就用实物进行了检查。果然发现是程序的错误,在进行了多次的改正后最终实现了预想的实验结果。而程序最主要的问题是Px^y的使用,这让我有很大的疑惑。
2、矩阵键盘扫描
做键盘扫描的时候出现了同样的问题,Px^y的使用是错误的。
3、在仿真一直出现错误的情况下,转而用实物进行试验。如图(3)、图(4)所示。考虑到本次实验的目的,我设计了一个简易的计算器,它可以实现加、减、乘、除四种功能。这样既实现了数码管的动态扫描功能又实现了矩阵键盘的动态扫描,可谓是一举两得。而实验结果也令人满意,不过该计算器受数码管数目的限制只能实现9999以内的运算,并且输入也不能超过四位数。
图(3)实物连接图
图(4)实物工作图
体会
这一次实验让我感受很深,有的问题在理论中是发现不了的,更别说是去解决了。所以实际操作是我们在学习过程中必不可少的一大环节,只有这样,你才能发现自己在学习过程中的一些不足之处,也只有这样,你才能调试并解决一些莫须有的问题,而那些问题也许你从来都不会想到过。并且,做实验仿真也有很大的不足之处。实验仿真毕竟只是在电脑进行一些模拟,受限于现如今的科技问题,并不能达到百分百的模拟,总会有一些不足。所以如果有条件的话,最好还是在实际电路上做一些操作是更好的。
附件
计算器程序:
/******************************************************************************
*实验名 :简易计算器
* 功能 :借助矩阵键盘和数码管可以实现加、减、乘、除的计算
******************************************************************************/
#includestc12c5a60s2.h
unsignedcharnum[10]={0xc0,0xf9,0xa4,0xb0,//数码管段选数组
0x99,0x92,0x82,0xf8,0x80,0x90};
unsignedcharwei[4]={0xEF,0xDF,0xBF,0x7F};//数码管位选数组
unsignedlongintcnt; //数码管显示的数值
/******************************************************************************
*函数名:delay
*函数功能 :延时函数,延迟一段时间
*输入:inttim
*输出:无
******************************************************************************/
voiddelay(inttim)
{
inta,b;
for(a
您可能关注的文档
最近下载
- 移动式升降平台安全管理.pptx VIP
- JMP中文版使用指南.pdf VIP
- 供应商供货能力评估方法.docx VIP
- 外研版(2019) 选择性必修第四册 Unit 4 Everyday Economics Using language教案.docx VIP
- 2025年中国AI智能硬件行业市场竞争现状及未来前景研判报告.docx
- 国开一体化平台04037《人体解剖生理学(本)》章节自测(1-11)试题及答案.pdf VIP
- 思迅专卖店管理系统8特色介绍.ppt VIP
- 培智二年级生活语文第二学期教学计划.docx VIP
- 小公司财务管理制度简单版(二篇).doc VIP
- 高中英语词汇3500词(必背)-高中英语必备3500词汇表.pdf VIP
文档评论(0)