欢迎来到天天文库
浏览记录
ID:48843085
大小:56.50 KB
页数:7页
时间:2020-02-01
《简易秒表设计实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.....实验报告系别信工系专业班级姓名学号课题名称:简易秒表设计实验目的:1、熟悉KeilC51软件的使用方法及proteus仿真软件的使用;2、综合运用所学的理论知识(数码管、按键),通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。3、通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。设计要求:制作简易秒表,用三个按键分别实现秒表的启动、停止与复位,利用两位共阴级的数码管显示时间。设计思路:硬件设计:数码管部分采用2位共阴极的数码管,在P0口接上拉电阻,公共端低
2、电平扫描。按键电路部分,将按键一侧与单片机任一I/O口相连。软件设计:模块化思想,使用定时器T0的工作方式1,编写显示子程序,延时子程序,初始化程序,主程序设计时注意按键消抖。.专业word可编辑......原理图:源代码:#include#defineuintunsignedint#defineucharunsignedcharsbitkey1=P3^0;//定义"启动"按钮sbitkey2=P3^1;//定义"停止"按钮sbitkey3=P3^2;//定义"复位"按钮sbitwei1=
3、P2^6;//定义位选sbitwei2=P2^7;ucharaa;uchartemp;ucharshi;ucharge;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,.专业word可编辑......0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴极数码真值表voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddispla
4、y(ucharshi,ucharge)//显示子程序{shi=temp/10;ge=temp%10;//分离个位和十位wei1=0;//送位选P0=table[shi];//使用动态扫描的方法实现数码管显示delay(1);wei1=1;//关闭位选wei2=0;P0=table[ge];delay(1);wei2=1;}voidinit()//初始化程序.专业word可编辑......{aa=0;temp=0;TMOD=0x01;//使用定时器T0的方式1TH0=0x4c;TL0=0x00;//定时50m
5、s中断一次EA=1;//终端总允许ET0=1;//允许定时器T0中断}voidtimer0()interrupt1{TH0=0x4c;//重装初值TL0=0x00;aa++;//中断计数值加1if(aa==20)//中断20次后,定时时间为20*50ms=1000ms=1s{aa=0;temp++;if(temp==60)//秒表到达60s后回零{.专业word可编辑......temp=0;}}}voidmain(){init();//调用初始化子程序while(1){if(key1==0)//检验启动按
6、钮是否按下{delay(10);//延时去抖动if(key1==0);//再次检测启动按钮{while(!key1);//松手检测TR0=1;//启动定时器开始工作}}if(key2==0)//{delay(10);if(key2==0).专业word可编辑......{while(!key2);TR0=0;}}if(key3=0){delay(10);if(key3==0){while(!key3);temp=0;shi=0;ge=0;TR0=0;}}display(shi,ge);}}.专业word可编
7、辑......实验结果:在proteus中编写程序,编译调试后生成hex文件,将hex文件加到仿真电路中,通过对简易秒表进行演示,达到设计要求。。实验心得:在keil软件中,即使程序不会需要模仿别人的时候,也必须通过自身再打一遍程序,在多次的通过打印过程,渐渐记住并理解程序,也有助于我们以后的程序创新。内容:实验题目;实验目的;实验原理;实验步骤;数据处理;结果分析年月日分数.专业word可编辑.
此文档下载收益归作者所有