1、 单片机课程设计报告 一、实验题目 秒表系统设计——用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。 二、系统总体功能用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。有一个按键来启动秒表的开始和结束。增加一个清零按钮,计时结束后可以清零。 三、实验目的 1、利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。2、综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。3、 通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步
2、的了解。4、 通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。 四、系统设计方案 本实验利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计数的开启/暂停/继续与复位! 其中有两个数码管用来显示数据,一个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。计秒数码管采用两位的数码管,当计数超过范围是所有数码管全部清零重新计数。 五、试验设计所
3、需硬件(模拟硬件) Atmel89C51单片机芯片一个、LED数码显示管三个,低压电源、开关(按钮)两个、电阻、电容及导线若干。 由于条件限制本实验采用软件模拟硬件系统,采用proteus软件进行模拟设计及调试工作。 图1 七段数码管引脚图 图2 Atmel89C51单片机外部引脚图 六、试验设计原理图 图3 试验设计电路图 七、软件设计分析 程序流程图: 是 否 是 否 手动开关 定时器溢出中断 对定时器重新赋值 进行加一操作后重新计算时间 往P0口和P2口送显示时间 数码管显示 中断返回主函数 对定时器/计数器初始化始
4、化
程序开始
判断P0^4口是否有低电平信号
开中断并
启动定时器
开始、暂停或者继续
计数置零
判断P0^7口是否有低电平信号
实验程序清单:
#include
5、xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}; /*声明second10用于计数十分之一秒变化,second1用于记录秒的个*/ /*位,second2用于记录秒的十位*/ unsigned int second10,second1,second2; bit bdata flag; /*以下是设置延时功能的函数*/ void delay() { unsigned char i,j; for(i=90;i>0;i--) for(j=200;j>0;j--); } }
6、/*以下是设置时间的函数*/ void setTime() { second10++; if(second10==10) /*当十分之一秒计数到十后从零重新计时*/ { second10=0; /*同时秒计时个位加一*/ second1++; if(second1==10) /*当秒计数个位到十后从零重新计时*/ { second1=0; second2++; /*同时秒计时十位加一*/ if(second2==6) second2=0;
7、 } } } /*以下是向LED管输数据并使之显示的函数*/ void dispact() { P3=0xfe; P0=table1[second1]; delay(); P3=0xfd; P0=table1[second2]; delay(); P2=table0[second10]; } /*以下是设置时间函数和输数据函数被此函数调用实现,利用定时器中断*/ /*十分之一秒刷新一次,实现十分之一秒进一*/ Timer0 () interrupt 1 using 1 { TH0 = (65535 - 5000
8、0)/256; TL0 = (65535 - 50000)%256; if(flag) setTime(); dispact(); } void main(void) { TMOD = 0x01; TH0 = (65535 - 50000)/256; /*定时器赋初值*/ TL0 = (65535 - 50000)%256; flag = 0; EA = 1;/*cpu开中断*/ TR0 = 1; /*利用定时器0*/ ET0 = 1;
9、 /*外部中断允许*/ do { if(!sta_end) { if(flag == 0) flag = 1; else flag = 0; } if(!reset) /*复位设置,全部清零*/ { flag = 0; second10 = 0; second1 = 0; second2 = 0; } }while(1); } 八、试验设计总结 通过这一周的课程设计,我对一些专业知识和电子设计有了
10、更深的了解,同时也尝试着去应用自己的所掌握的知识。本次电子课程设计主要是对已学习的模拟电子技术、数字电子技术和单片机的综合应用,同时加上电路等知识,设计完成了利用软件模拟的秒表。经过几天的奋战,我感受很深. 我和刘傲辉、龙贤三个人一块儿讨论设计了此次试验,在设计过程中深感自己在培养动手能力这方面还需很大的努力。同时,通过这次我们积极的通过网络,书籍等资源,在同学的帮助下,把这个课程设计作为一次锻炼,为以后生活学习中培养善于动手,乐于动手的习惯。 单片机课程设计不仅给我们提供了一个很好的展现应用自己所掌握的知识的平台,又是检验自己所学知识的一次考核。我们运用各自在各方面的优势中和起来,形成了
11、一个团队.通过团队力量,才使设计得以完成.可以说,我们三个人是一个不可或缺的整体,少了任何一个人都是无法完成任务的。 在设计的过程中我们也不可避免的遇到了很多的问题。尤其是在调试过程中,会因为某些原因出不来结果,或三个人之间出现了意见分歧,但在最后都达成了 一致。通过这次的课程设计,我们也发现了不少自己不会的知识,通过查询各方面资料,我们也进步了很多,有学会了很多上课时没掌握的东西,最后在调试结果出来后,我们更是无比的兴奋,无比的自豪。总之,通过这次电子课程设计,我不仅对自己的知识有了更好的掌握和应用,更了解到团队精神的力量.在以后的学习和生活中受用终身. 二十世纪跨越了三个“电”的
12、时代,即电气时代、电子时代和现已进入的电脑时代。但是,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用P4吗?应用的关键是看是否够用,是否有很好的性能价格比。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。自从1976年问世以来,单片机获得了巨大的发展。现在比较流行的单片机是美国Intel 的MCS51/96以及Motorola的MC系列,Zilog 的Z8系列,同时还有更多新型的、功能更强的单片机不断
13、出现。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 中国使用单片机的历史只有短短的30年,在初始的短短五年时间里 发展极为迅速。纵观我们现在生活的各个领域,从导 弹的导航装置,到飞机上各种仪表
14、的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据 处理,以及我们生活中广泛使用的各种智能IC 卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些 东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用, 元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们 只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成 本也降低了,长期使用也不会担心精度达不到了。所以,它的魔力不仅是在现在,在将来将会有更多的 人来接受它、使用它。据统计,我国的单片机年容量已达3 亿片,且每年以大约20%的速度增长,但相对于 世界市场我国的占有率还不到1%。特别是沿海地区的玩 具厂等生产产品多数用到单片机,并不断地辐射向内地。 所以,学习单片机在我国是有着广阔前景的。 十、参考文献 1、 51单片机学习网 2、 单片机学习网 3、 《单片机C语言应用程序设计》,第四版,马忠梅主编,北京航空航天大学出版社 4、 《单片机开发与典型工程项目实例详解》,边海龙、孙永奎编著,电子工业出版社






