《AT89C51单片机课程设计秒表计数器.doc》由会员分享,可在线阅读,更多相关《AT89C51单片机课程设计秒表计数器.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录第一章 概述21.1设计任务21.2设计要求21.3设计内容提要2第二章 原理图及元件清单32.1单片机原理图42.2单片机部分元件图42.2元器件选取5第三章 单片机各引脚定义53.1 51系列单片机63.2单片机各引脚定义表6第四章 程序流程图64.1 程序流程图7第五章 源程序及仿真图75.1 C语言源程序75.2 Keil仿真11第六章 心得体会9第七章 参考文献10第一章 概述1.1设计任务设计一个单片机控制的秒表系统,利用单片机的定时器/计数器的原理,结合现实电路,LED数码管以及按键来设计计时器。讲软硬件有机的结合起来,是的系统能够正确的实现开始暂停清零加速等功能,数码管能够
2、正确的现实时间。1.2设计要求1.采用外部中断0和1,控制两位数码管进行00-99的技术,其中外部中断0控制进行减1计数,外部中断1进行加1计数。1.3设计内容提要本系统采用AT89C51单片机为中心器件,利用其定时器/计时器定时和计数的原理,结合硬件电路如电源电路、晶振电路、复位电路、显示电路,以及一些按键电路等来设计计时器,净软硬件有机的结合起来,其中软件系统采用汇编语言编写程序,包括显示程序,快加程序,暂停,按键消抖程序等,硬件系统利用Keil强大的功能来时间,简单且易观察。图1.3系统电路原理第二章 原理及元件清单2.1单片机原理图利用Keil画出原理图,2.2 单片机部分元件图图2.
3、2(1)7SEG-MPX2-CA原理图图2.2(2)上拉电阻RESPACK-7示意图2.3元器件选取元件数量元件数量AT89C521块数码管7SEG-MPX2-CA2按键4个直插针1排杜邦线30根USB电源线1根电路板1块RS232串口线1根CRYSTAL:晶振1个CAPCAP-ELEC:电容、电解电容2个第三章 单片机各引脚定义3.1 51系列单片机1.采用面向控制的指令系统,为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机巨涌很强的位处理能力。2.单片机的I/O通常是多功能的。由于单片机芯片上引脚数目有限,为了解决使用引脚数和需要的信号线的矛盾,采用了引脚功能服用的方法,引脚处于何
4、种功能,可由指令来设置或有机器动态来区分。3.单片机的外部扩展能力很强,在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的危机借口芯片兼容,给应用系统设计带来了很大的方便。图3.1 AT89C51单片机3.单片机各引脚的定义第四章 程序流程图4.1 程序流程图图4.1 程序流程图第五章 源程序及仿真图5.1 C语言源程序#include#define uchar unsigned char#define uint unsegned intsbit g=P21;sbit s=P20;bit button,flag;uchar shi,ge,temp,t0;uchar co
5、de table=0x3f,0x6f,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71voie display(shi,ge);void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);uchar switchscan()temp=P1;if(temo=0xfe)delay(5)temo=P1;if(temo=0xfe)button=button;if(button)TR0=1;elseTR0=0;t0=0;flag=0;shi=o;ge=0;wh
6、ile (temp=0xfe)temp=P1;desplay(shi,ge);return button;void keyscan()temp=P1;if(temp=0xfd|temp=0xfb|temp=0xf7)delay(5);temp=P1;if (temp=0xfd|temp=0xfb|temp=0xf7)switch(temp)case 0xfd:TR0=TR0;break;case 0xfb:TR0=0;t0=0;shi=0;ge=0;break;case 0xf7:flag=flag;break;while(gemp=0xfd|temp=0xfb|temp=0xf7)temp=
7、P1;display(shi,ge);Void display(shi,ge)P0=tableshi;s=o;P0=tableshi;delay(1);s=1;P0=tablege;g=o;P0=tablege;delay(1);g=1;void count()t0=0;ge+;if(ge=10)ge=0;shi+;if(shi=10)shi=0;main()shi=0;ge=0;button=0;TM0D=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=0;while(1)display(shi,ge);switchscan();while(button)display(shi,ge);switchscan();if(button)keyscan();while(!button)TR0=0;display(shi,ge);switchscan();void timer0() interrut 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;t0+;if(flag)if(t0=2)count();if(!flag)if(t0=20)count();5.2 Keil仿真图5.3Keil仿真软件第六章 心得体会自己写吧!第七章参考文献直接吧老师的课本给写上就可以了!第 9 页