ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:84.24KB ,
资源ID:9679347      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9679347.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(4x4键盘实验报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

4x4键盘实验报告.docx

1、4x4键盘实验报告单片机及DSP课程设计报告专 业: 班 级: 姓 名: 学 号: 指导教师: 时 间: 一、设计目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。1、通过本设计,使学生综合运用单片机技术原理与应用、DSP原理与应用C语言程序设计以及数字电路、模拟电路等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,

2、保证设计的正确性。3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。二、硬件电路方案设计1、4X4键盘设计4x4键盘工作原理:每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软

3、件查表,查出该键的功能。2、数码管显示电路设计数码管显示原理:动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。 3、晶振和复位电路设计 4、系统总电路图三、程序设计1、程序流程图(1)键盘扫描 第一行扫描 第二行扫描 第三行扫描 第四行扫描仿真过程:1、

4、在keil中运行程序,并生成hex文件保存。2、 proteus元件库中选择系统中所需的各元件,按设计的电路原理图进行连接。3、 连接好电路后鼠标双击AT89C52芯片,在“File”菜单中打开生成hex文件,下载完成后,点击运行按钮。注意:1、 在原理图的绘制过程中对数码管的选择要注意考虑所写程序,无法点亮时应考虑共阳极数码管或共阴极数码管的选择。 2、 P0口接数码管时应接上拉电阻,否则无法点亮参考文献 1、单片接口技术 李航 电子科学出版社;2、模拟电子技术基础 童诗白 华成英 高等教育出版社;3、数字电子技术基础 阎石 高等教育出版社;4、51单片机设计与仿真原理 程候渊 北方工业出版

5、社;5、课程设计总结心得体会:由于我没有过硬的技术,所以选择了键盘接口和显示设计这个相对于其他比较简单题目,望老师见谅。做完了本次课程设计,我收获颇多,无论是学习上还是其他方面,都有所感悟。在学习上:我对单片机有关知识有了更深刻的了解,学到了许多以前书本上没有的知识开阔了眼界和见识,“通信深似海”,只是单片机一门就让我深有体会。,并把理论运用到实践中去,体会到了实践的重要性。这次课程设计又为我们提供了一次自己动手操作实践的机会。在上次的8路呼叫器的知识基础上,我这次完成的很顺利,对以往未完全掌握的知识进行了补充,对以往掌握的知识加深了了解。这次课程设计起到着承上启下的作用,加深了过去的知识,打

6、好了未来的实践基础每位同学对这次课程设计都付出了自己辛劳的汗水,这也使得他们的个人编程能力、电路设计能力、仿真调试能力都得到了一定程度的提高。替他方面:做事一定要认真,在仿真时候由于一个什么什么选错了,导致仿真不能实现,检查了很多次才发现,实属不该;在编程时,也是由于一个不该犯的低级错误,导致了整个程序不能完美运行,这些都是不细心犯下的错误,以后一定要认真去做好每一件事,不让不该犯的错误导致满盘皆输。此外,这次课程设计让我对对Keil和Proteus两款软件有了更进一步认识,了解了单片机的电路图的绘制、仿真方法,为以后的学习工,作打下了基础。这次实习也暴露了我很多弱项,比如数电、模电学得不好,

7、很多东西都是靠请教同学才懂。总之这次课程设计使我对通信专业有了更深一步的认识,极大地增加了我对该专业的兴趣,相信我以后在通信这条道路上会走的更好!主程序:#include#define uint unsigned int#define uchar unsigned charuchar num,temp;uchar keyscan();void delay(uint z);void display(uchar aa);uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*主函数*/void main() whil

8、e(1) keyscan(); display(num); /*延时函数*/void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=100;y0;y-);/*键盘扫描*/uchar keyscan() P1=0xfe; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(2); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xee:num=11; break; case 0xde:num=12; break;

9、case 0xbe:num=13; break; case 0x7e:num=14; break; while(temp!=0xf0) temp=P1; temp=temp&0xf0; P1=0xfd; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(2); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xed:num=21; break; case 0xdd:num=22; break; case 0xbd:num=23; break; case

10、0x7d:num=24; break; while(temp!=0xf0) temp=P1; temp=temp&0xf0; P1=0xfb; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(2); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xeb:num=31; break; case 0xdb:num=32; break; case 0xbb:num=33; break; case 0x7b:num=34; break; while(temp

11、!=0xf0) temp=P1; temp=temp&0xf0; P1=0xf7; temp=P1; temp=temp&0xf0; while(temp!=0xf0) delay(2); temp=P1; temp=temp&0xf0; while(temp!=0xf0) temp=P1; switch(temp) case 0xe7:num=41; break; case 0xd7:num=42; break; case 0xb7:num=43; break; case 0x77:num=44; break; while(temp!=0xf0) temp=P1; temp=temp&0xf0; return num;/*显示函数*/void display(uchar aa) uint num1,num2; num1=aa/10; num2=aa%10; P2=0xfe; P0=tablenum1; delay(5); P2=0xfd; P0=tablenum2; delay(5); P0=0;教师评语: 教师: 日期:设计过程30课设报告40答辩30总成绩

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1