ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:173KB ,
资源ID:8972628      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(键盘、数码管显示综合实验.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

键盘、数码管显示综合实验.doc

1、 单片机原理及应用 实验报告 姓 名: 学 号 班 级: 指导教师: 许 强 单 片 机 原 理 及 应 用 实 验 报 告 实验项目名称: 键盘、数码管显示综合实验 实验日期: 2013.12.10 实验成绩: 实验评定标准: 1)实验报告是否按照规定格式 A( )B( )C( )

2、 2)实验内容及说明是否完整 A( )B( )C( ) 3)实验步骤及说明是否正确 A( )B( )C( ) 4)实验结果及分析是否合理 A( )B( )C( ) 一、 实验目的 通过实验,掌握单片机在输入输出口线不够用时,怎样扩展接口的方法来支持8位LED显示和16键盘集成实现。 熟悉8155、8279等芯片性能;掌握其编程方法。掌握键盘子程序调试方法,掌握按一个键并将键值显示出来的编程方法,这是诊断硬件、测试硬件、产品开发、软件编程必须掌握的方法。 二、 实验器材 安装有keil uVision和proteus软件的PC机一台 以8155为扩展方

3、式的器件 80C51.BUS CRYSTAL PHYC0402NP022P 7404 7SEG-MPX6-CC-BLUE RESPACK-8 8155 HITEMP10U50V BUTTON MINRES10K 三、 实验内容 ① 编写并调试出一个键盘实验子程序; ② 用子程序调用方法,分别调用键盘子程序和显示子程序,将按一个键的键值(0- F),在数码管上显示出来。 四、 实验步骤 (1)仿真实验过程: 打开Keil程序,执行菜单命令“Project”‡“New Project”创建“键盘数码管显示综合实

4、验”项目,并选择单片机型号为AT89C52.BUS。 执行菜单命令“File”‡“New”创建文件,输入源程序,保存为“键盘数码管显示综合实验.A51或键盘数码管显示综合实验.c”。在“Project”栏的File项目管理窗口中右击文件组,选择“Add Files to Group ‘Source Group1’”将源程序“键盘数码管显示综合实验.A51或键盘数码管显示综合实验.c”添加到项目中。 执行菜单命令“Project”‡“Options for Target ‘Target 1’”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。 执行

5、菜单命令“Project” ‡ “Build Target” , 编译源程序。 如果编译成功, 则在 “Output Window”窗口中显示没有错误,并创建了“键盘数码管显示综合实验.HEX”文件。 在proteus仿真平台上建立如图2.5.5(1)或图2.5.5(2)参考图系统,并将程序上载到虚拟芯片上调试及运行。 (2)实作实验 (1)线路连接 按图2.5.5(1)或图2.5.5(2)将组合最小系统板、14 脚插座板、20 脚插座板、六位数显板、按键拼集成焊接,并连好每条线,检查无误后,进行下一步。 (2)硬件好坏诊断 由于键盘电路比较特殊,按键有没有

6、效,要用软硬件综合考虑、检测,一般的方法是先用万用表欧姆档测量一下,线是否连好,若连好了,就编一段测试程序,仿真测试或固化测试均行,下面分别叙述。 ①仿真调试 在PE 状态下输入以下程序 ②固化调试 固化后,按0-F 键数码管应有显示。 五、 实验结果及分析 8255修改后: 8155汇编程序: ORG 0000H START: LJMP MAIN ORG 0030H MAIN: MOV SP,#60H MOV 7AH,#00 MOV 7BH,#01 MOV 7CH,#

7、02 MOV 7DH,#03 MOV 7EH,#04 MOV 7FH,#05 MOV DPTR,#7F00H;8155命令口地址 MOV A,#03H MOVX @DPTR,A LOOP: LCALL DISP LCALL KEY MOV A,R4 CJNE A,#88H,DSP SJMP LOOP DSP: MOV 7AH,A ;键值送入显示缓存区单元7AH MOV 7BH,#010H MOV 7CH,#010H MOV 7DH,#010H

8、 MOV 7EH,#010H MOV 7FH,#010H SJMP LOOP ;按键识别子程序 KEY: MOV R4,#00H MOV R2,#01H KEY1: MOV DPTR,#7F02H MOV A,R2 MOVX @DPTR,A INC DPTR MOVX A,@DPTR JB ACC.0,KEY2 MOV A,#00H AJMP KEY5 KEY2: JB ACC.1,KEY3 MOV A,#01H AJMP KEY

9、5 KEY3: JB ACC.2,KEY4 MOV A,#02H AJMP KEY5 KEY4: JB ACC.3,NEXT MOV A,#03H KEY5: ADD A,R4 MOV R4,A RET NEXT: MOV A,R4 ADD A,#04 MOV R4,A MOV A,R2 JB ACC.3,NEXT1 RL A MOV R2,A AJMP KEY1 NEXT1: MOV R4,#88H

10、 RET ;数码管显示组程序 DISP: MOV R0,#7AH MOV R3,#01H DISPB1: MOV DPTR,#7F02H MOV A,#0H MOVX @DPTR,A MOV DPTR,#7F01H MOV A,@R0 ADD A,#014H MOVC A,@A+PC MOVX @DPTR,A MOV A,R3 MOV DPTR,#7F02H MOVX @DPTR,A ACALL DELAY INC R0

11、MOV A,R3 JB ACC.6,DISPB2 RL A MOV R3,A AJMP DISPB1 DISPB2: MOV R3,#01H RET SEGPT2: Db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h db 7fh,6fh,77h,7ch,39h,5eh,79h,71h db 00h,02h,08h,00h,59h,0fh,76h ;延时子程序 DELAY: MOV R4,#0FFH DELAY1: DJNZ R4,DELAY1 RET

12、 END C语言: #include #include #include typedef unsigned int uint; typedef unsigned char uchar; #define com8255 XBYTE[0x7fff] #define PA8255 XBYTE[0x7cff] #define PB8255 XBYTE[0x7dff] #define PC8255 XBYTE[0x7eff] sbit gw=P1^0; sbit sw=P1^1;

13、uchar code scancode[4]={0xfe,0xfd,0xfb,0xf7}; uchar code ledlight[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar temp; void delay(uint i) { uint j; while(i--) { for(j=0;j<125;j++) ; } } void init8255(void) { com8255=0x82; } void scan

14、) { uchar tem; PC8255=0x00; tem=PB8255; if(~tem) { delay(10); PC8255=0x00; tem=PB8255; if(~tem) PC8255=scancode[0]; tem=PB8255; if(~tem) { switch(tem) { case 0xfe:temp=0;break; case 0xfd:temp=4;break; case 0xfb:temp=8;break; case 0xf7:t

15、emp=12;break; } while(~tem) { PC8255=scancode[0]; tem=PB8255; } } PC8255=scancode[1]; tem=PB8255; if(~tem) { switch(tem) { case 0xfe:temp=1;break; case 0xfd:temp=5;break; case 0xfb:temp=9;break; case 0xf7

16、temp=13;break; } while(~tem) { PC8255=scancode[1]; tem=PB8255; } } PC8255=scancode[2]; tem=PB8255; if(~tem) { switch(tem) { case 0xfe:temp=2;break; case 0xfd:temp=6;break; case 0xfb:temp=10;break; case 0

17、xf7:temp=14;break; } while(~tem) { PC8255=scancode[2]; tem=PB8255; } } PC8255=scancode[3]; tem=PB8255; if(~tem) { switch(tem) { case 0xfe:temp=3;break; case 0xfd:temp=7;break; case 0xfb:temp=11;break; case

18、 0xf7:temp=15;break; } while(~tem) { PC8255=scancode[3]; tem=PB8255; } } } } void Delay10us() //@12.000MHz { unsigned char i; _nop_(); _nop_(); i = 27; while (--i); } void display() { if(temp<10) { gw=0; sw

19、1; PA8255=ledlight[temp]; } else if(temp>=10) { PA8255=ledlight[temp/10]; sw=0; Delay10us(); sw=1; PA8255=ledlight[temp-10]; gw=0; Delay10us(); gw=1; } } void main() { init8255(); while(1) { scan(); display(); } } 自由状态: 按下键时: 实验结果分析: 本实验通过8155芯片的扩展功能,建立描述线与数据线同步功能,加上16个按键,而且按键和位选口选用PB口,同时此处为了节省接口线,直接将显示输出和扫描输出何用PA口。按键显示时,分别对应显示0-F。 心得体会: 本次试验相对于其它几个实验是比较难的,在做实验的过程中,刚开始时没有头绪的,在做实验的过程中渐渐地了解了一些,但是做实验的过程中遇见了很多问题,通过查资料和同学交流对此次实验有了一定的了解。我觉得理论知识比较抽象和实验结合,有利于理论知识的了解。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服