1、单片机应用技术课程设计题 目 键控秒表院 系 机电工程系专业班级 电气 1011姓 名 吴燊学 号 39指导教师 祖一康2012 年 6 月 18摘要二十世纪跨越了三个“电”的时代,即电气时代,电子时代和现已进入的电脑时代。但是,实际工作中,并不是需要计算机的场合都需要计算机很高的性能。应用的关键是看能否够用,是否有很好的性能价格比。单片机又称单片微控制器,它不是完成某一个逻辑工程的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一个芯片就成了一台计算机。它的体积小、质量轻、价格便宜,为学习、应用和开发提供了便利条件。自从 1976 年问世以来,单片机获得了巨大的发展,纵观我们现在生活的
2、各个领域,从导弹的导航装置,到飞机上的各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,这些都离不开单片机。所以,学习单片机在我国是有着广泛前景的。目录摘要 .1一、课题研究目的 3二、实验内容及要求 .41、实验内容 42、实验要求 4三、仿真原理图 .5四、系统程序 .6五、材料清单 .9六、键控秒表实物图 .10七、心得及体会 .11八、总结 .12九、参考文献 .132一、课题研究目的1.通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。2.掌握键控秒表系统的制作,进一步熟悉单片机计数器结构的工作方式,初始值设置和停
3、止等基本应用方法,掌握 C 语言控制单片机的基本技能。3.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。4.该实验通过单片机的键控原理,设计简单的系统,拥有正确的增一、减一、清零、自动加一功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。5.通过本次设计,提高自身电路设计能力,并锻炼团队合作精神。3二、实验内容及要求1、实验内容利用 AT89C52 设计一个 2 位 LED 数码管显示“秒表”,可显示时间为0059 秒。并设计一个 “增一”按键,一个“减一”按键,一个“清零”按键,一个“自动增一”按键。按键说明:按“增一”按键,系统加一计数,数码管显示数字加
4、一;按“减一”按键,系统减一计数,数码管显示数字减一;按“清零”按键,系统清零,数码管显示“00”;按一下“自动加一”按键,系统自动进行加一循环,并在数码管上显示,再按一下“自动加一”按键,系统会暂停自动加一循环,数码管显示的数字将停留在当前显示值上。2、实验要求了解 AT89c52 芯片的的工作原理和工作方式 ,使用该芯片对 LED 数码管进行显示控制,实现用单片机的端口控制数码管,显示数字,并能用按键实现秒表增一、减一、清零复位功能。画出使用单片机控制 LED 数码管显示的电路图,并编程完成软件部分,最后调试秒表的增一、减一、清零、自动加一。4三、仿真原理图8123456781234567
5、8 12345678 ha abbc cd de ef fg gabcdefg1234567weladulaweladulaPORT1PORT2PORT3PORT4PORT2PORT1PORT3PORT4XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD2 7P0.3/AD336P0.4/AD43P0.5/AD534P0.6/AD63P0.7/AD732P1.0/T21P1.1/T2EXP1.23P1.3P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113
6、P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A1 24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52D02D13D24D35D46D57D68D79Q019Q118Q217Q316Q415Q514Q613Q712LE1 OE1U274HC573D02D13D24D35D46D57D68D79Q019Q118Q217Q316Q415Q514Q613Q712LE1 OE1U374HC573234567891RP1RESPACK-8R110k R210k R
7、310k R410k5四、系统程序#include #define uchar unsigned char#define uint unsigned intsbit dula=P20;sbit wela=P21;sbit key1=P10; /加 1sbit key2=P11; /减 1sbit key3=P12; /清 0sbit key4=P13; /按下自动加 1,再按下停止保持uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar n,n
8、um;void display(uchar);void delay(uint xms)uint x,y;for(x=xms;x0;x-)for(y=110;y0;y-);void keyscan()if(key1=0)delay(10);if(key1=0)num+;if(num=60)num=0;while(!key1);if(key2=0)delay(10);if(key2=0)if(num=0)num=60;num-;6while(!key2);if(key3=0)delay(10);if(key3=0)num=0;while(!key3);if(key4=0)delay(10);if(
9、key4=0)while(!key4);TR0=TR0;void main()TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;while(1)keyscan();display(num);void display(uchar num1)uchar shi,ge;shi=num1/10;ge=num1%10;dula=1;P0=tableshi;dula=0;7P0=0xff;wela=1;P0=0xfe;wela=0;delay(5);dula=1;P0=tablege;dula=0;P0=0xff;wela=1
10、;P0=0xfd;wela=0;delay(5); void timer0() interrupt 1n+;if(n=20)n=0;num+;if(num=60)num=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;8五、材料清单名称 型号 符号 数量 备注单片机 AT89C52 1 个 无数码管 5202ES LED 2 个 无锁存器 74HC573 2 个 无弹性按键 K 4 个 无晶振 11.0592 1 个 无瓷片电容 30PF C 2 个 无电解电容 22uF C 1 个 无万能板 12*18 PCB 1 个 无电阻 10K R 5 个
11、无排阻 A102J RP 1 个 无底座 20PIC 2 个 无USB 串口线 T0232 1 根 无电源线 1 根 无9六、键控秒表实物图10七、心得及体会1. 根据课程设计的要求和芯片的功能写出相应的程序。然后再进行程序调试和相应的修改,达到了本次设计的目的。2. 通过本次设计,我从中感受到了自己优缺点。优点是我能很好并迅速的将电路布置并组装好,但是对于电路组线设计还有很多不足。虽然元器件布置比较美观,但是背部的组线就比较凌乱,不利用出现问题后对其进行排查。3. 在本次设计过程中,我做的准备工作相对于其他同学来说是做得最好的,需要的相关工具我都准备的很齐全,以至于在制作的时候很多同学来我这
12、里借东西,所以我感觉,无论做什么事情,准备工作一定要做好,才能一气呵成,减少走的弯路。4. 在本次设计中,在写程序时,我得到了一些启发。就是在写程序时候,要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。5. 本次设计,最大的收获就是让我学会将理论知识与实际相结合,并从中收获到一些书本和课堂上学不到的知识。116.八、总结通过这次的设计,我对单片机这门课程有了更深的了解,同时也尝试着去怎么应用自己所掌握的知识,将知识以最好的方式融入到现实中。在这其中,深感自己在电路线路设计排布这方面还需很大的努力,单片机课程设计不仅给我提
13、供了展现应用自己所掌握的知识平台,又是检验自己所学知识的一次考核。在设计过程中,难免会遇到一些困难,尤其在调试过程中,会因为某些原因出不来结果,但通过同学的鼓励和老师的帮助,我还是顺利完成了。从中我明白要把所学到的理论转化为实践需要一段努力学习的过程。在学习过程中,一定要注意理论和实践同步进行,光有理论知识还是远远不够的,要用时间去检验理论,用理论指导实践。社会在进步,我们不论在什么地方,什么岗位我门都要以学为主.学以学以置用,才能把我们的工作做的更好。并要坚持不懈的去努力,不能因为困难而懦弱,要遇强更强,以最大的信心去接受更严峻的挑战。12九、参考文献参考单片机应用技术(C 语言版) 主编:王静霞参考祖一康老师的教学课件