实验1计数显示器介绍.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验项目: 计数显示器 班 级: C12电气2班 姓 名: 何鲁峥 学 号: 121330310 实验日期: 2014年4月4日 【实验目的】 熟悉51单片机的基本输入/输出应用,掌握Proteus ISIS 模块的原 理图绘图方法及单片机系统仿真运行方法。 【实验原理】 实验原理图如图A.1所示,图中含有如下5个分支电路:由共阴数码管LED1和LED2、P0口、P2口、上拉电阻RP1以及Vcc组成的输出电路;由按钮开关BUT、P3.7和接地点组成的输出电路;由C1、C2、晶振X1、引脚XTAL1、XTAL2与接地点组成的时钟电路;由C3、R1引脚RST和Vcc组成的上电复位电路;由Vcc和引脚EA组成的片内ROM选择电路(简称片选电路,下同)。 在编程软件的配合下,该电路可实现如下计数显示功能:可统计按钮BUT的按压次数,并将按压结果以十进制形式显示出来;当显示值达到99后可自动从1开始,无限循环。 【虚拟仪器】 元件名称 所属类 所属子类 单片机 AT89C51 Microprocessor ICs 8051 Family 瓷片电容 CAP Capacitors Generic 电解电容 CAP-ELEC Capacitors Generic 晶振 CRYSTAL Miscellaneous - 电阻 RES Resistors Generic 7段码LED 7SEG-COM-CAT-GRN Optoelectronics 7-Segment Displays 上拉电阻 RESPACK7 Resistors - 按钮 BUTTON SwitchesRelays - 表A.1 实验1的元件清单 【实验内容】 观察Proteus ISIS模块的软件结构,熟悉菜单栏、工具栏、对话框等基本单元功能; 学会选择元件、画导线、画总线、修改属性等基本操作; 学会如何执行文件加载及程序仿真运行方法; 验证计数显示器的功能。 【实验步骤】 提前阅读与实验1相关的阅读材料; 参考图A.1和表A.1,在ISIS中完成电路原理图的绘制; 加载可执行文件,观察仿真结果,校验电路图绘制的正确性。 图A.1 实验1电路图 【实验程序】 #includereg51.h//头文件 unsigned char code tabe[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f};//数码管0~9显示数字 void delay(int ms) //延时函数 {for(;ms0;ms--);} sbit P37=P3^7;//位定义 void main() { char count; P2=0x3f; //P2口初始值显示0 P0=0x3f; //P0口初始值显示0 while(1) //进入死循环 {if(P37==0) //P37口是按钮的位置,当按钮按下时 { delay(1000);//延时函数 count++; if(count==100)//防止count大于100 count=0; //重新使count置0 P2=tabe[count%10];//P2显示个位数字 P0=tabe[count/10];//P0显示十位数字 while(P37==0); }}} 【实验小结】 试验难点:如何实现按钮计数、P2口实现个位数、P0 口实现十位数; 试验关键操作:1)在Proteus ISIS软件中正确画出电路图; 2)用count对10取余来实现在P2口显示个位数,用count对10取整来实现在P2口显示十位数; 3)用if语句限制count不会大于100,从而保证当显示值达到99后可自动从1开始。 实验改进:可以通过中断定时/计数控制来实现该功能。 2

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档