- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)