版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机课程设计报告吉林建筑工程学院电气与电子信息工程学院单片机课程设计报告设计题目: 电子计时器综合系统设计 专业班级: 学生姓名: 学 号: 指导教师: 设计时间: 2011.08.222011.09.02 教师评语:成绩 评阅教师 日期 目录第1章 绪论····························
2、83;···························3 11 课程设计目的····················
3、3;··························31.2 课程设计内容······················
4、;·························31.3 课程设计要求·······················
5、························31.4 电子时钟的简单介绍·······················
6、3;·················31.5 单片机的相关知识······························
7、83;············3 1.5.1 单片机简介···································
8、183;·········3 1.5.2 单片机的发展史······································
9、;···4第2章 控制系统的硬件设计·········································52.1 单片机型号的选择·
10、183;·········································52.1 89c51单片机介绍······
11、;······································52.3 振荡电路··········
12、183;········································62.4 复位电路········
13、;···········································72.5 键盘电路·····
14、183;·············································72.6 数码管显示工作原理··
15、·······································72.7 整个电路原理图·········
16、····································82.8 pcb板图············
17、183;······································9第3章 控制系统的软件设计·········
18、·······························103.1 程序流程图·················&
19、#183;······························103.2 程序设计·················
20、83;································12第4章 软件仿真················
21、;···································13 4.1 proteus软件介绍············
22、;·······························13 4.2 仿真结果·················
23、··································13 4.3 结果分析··············&
24、#183;···································13第5章 心得体会············
25、83;·····································14参考文献···········
26、83;···············································14附录··
27、;··················································
28、;··········15 第1章 绪论1.1 课程设计目的:通过单片机原理与应用课程设计,掌握单片机及其扩展系统设计的方法和设计原则及相应的硬件调试的方法。进一步加深单片机及其扩展系统设计和应用的理解。1.2 课程设计内容:1)电子计时器综合系统设计有4位数码管显示,能按照分秒进制显示时间; 能正确手动复位;有上电指示灯;1.3 课程设计要求:1)独立设计原理图及相应的硬件电路。2)针对选择的设计题目,设计系统软件。软件要做到:操作方便,实用性强,稳定可靠。3)设计说明书格式规范,层次合理,重
29、点突出。并附上设计原理图及相应的源程序。1.4 电子时钟的简单介绍 1957年,ventura发明了世界第一台电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现在的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时清零。从而达到及时的功能,是人们日常生活中不可缺少的工具。现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,这种表具有时分秒显示时
30、间的功能,还可以进行时和分的校队,片选的灵活性好。 该电子钟由at89c51,button,八段数码管等构成,采用晶振电路作为驱动电路,有延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。有两个按键分别控制小时和分钟,当按下控制分钟的按键时,分钟加一,同理按控制小时的按键时,小时加一。1.5 单片机的相关知识1.5.1 单片机简介 单片机就是在一片半导体硅片上集成了中央处理器(cpu)、存储器(ramrom)、并行i/o口、定时器/计数器、中断系统系统时钟电路及系统总线的微型计算机。这样一块集成电路芯片具有一台微型计算机的属性,因而被称为
31、单片微型计算机,简称单片机。从应用领域来看,单片机主要用来控制,所以又称为微控制器(microcontroller unit)或嵌入式控制器。单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。单片机按照其用途可分为通用型和专用型两大类。1.5.2 单片机的发展史 第一阶段(1974年1976年):单片机初级阶段。因工艺限制,单片机采用双片的形式而且功能比较简单。1974年12月,仙童公司推出了8位的f8单片机,实际上只包括了8位cpu,64b ram和2个并行口。第二阶段(1976年1978年):低性能单片机阶段。1976年,intel公司推出的mcs-48单片机(8位单片机)极
32、大地促进了单片机的变革和发展;1977年,gi公司推出了pic1650,但这个阶段的单片机仍然处于低性能阶段。第三阶段(1978年1983年):高性能单片机阶段。1978年,zilog公司推出了z8单片机;1980年,intel公司在mcs-48的基础上推出了mcs-51系列,mortorola公司推出了6801单片机,这些产品使单片机的性能及应用跃上了一个新的台阶。此后各公司的8位单片机迅速发展起来。这个阶段推出的单片机普遍带有串行i/o口、多级中断系统、16位定时器/计时器、片内rom、ram容量增大,且寻址范围可达64kb,有的片内还带有a/d转换器。由于这类单片机的性能价格比高,是目前
33、应用数量最高的单片机。第四阶段(1983年现在):8位单片机巩固、发展及16位单片机、32位单片机推出阶段。16位单片机的典型产品为intel公司生产的mcs-96系列单片机。而32位单片机除了具有更高的集成度,其数据处理速度比16位单片机提高许多,性能比8位、16位单片机更加优越。20世纪90年代是单片机制造业大发展的时期,这个时期的mortorola、intel、atmel、德州仪器(ti)、三菱、日立、philips、lg等公司也开发了一大批性能优越的单片机,极大地推动了单片机的应用。近年来,又有不少新型的高集成度单片机产品涌现出来,出现了单片机产品丰富多彩的局面。目前,除了8位单片机得
34、到广泛应用之外,16位单片机、32位单片机也得到广大用户的青睐。第2章 控制系统的硬件设计2.1 单片机型号的选择 通过对多种单片机性能的分析,最终认为at89c51时最理想的电子时钟开发芯片。89c51时一种带4k字节闪烁可编程可擦除只读存储器的低电压,高性能cmos8位微处理器,器件采用atmel高密度非易失存储器制造技术制造,与工业标准的ncs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的89c51是一种高效微控制器,而且它与mcs-51兼容,且具有4k字节可编程闪烁存储器和1000写/擦循环,数据保留时间为10年等特点,是最好的选择。2.
35、2 89c51单片机介绍 图1 at89c51vcc:电源gnd:接地p0口:p0口为一个8位漏极开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定能够以为数据/地址的第八位。在flash编程时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部上拉为低电平时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电
36、流,当p2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的原因。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高8位。在给出地址1时,它利用内部上拉优势,当对外部8位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入1时,它们被内部上拉位高电平,并用作输入。作为输入,由于外部上拉为低电平,p3口将输出电流(ill)这是由于上
37、拉的缘故。 p3口也可作为at89c51的一特殊功能口,如下所示: p3.0 rxd(串行数据输入口) p3.1 txd(串行数据输出口) p3.2 /int0(外部中断0输入) p3.3 /int1(外部中断1输入) p3.4 t0(定时器0外部计数输入) p3.5 t1(定时器1外部计数输入) p3.6 /wr(外部数据存储器写选通输出)p3.7 /rd(外部数据存储器读选通输出) p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时 ,地址锁存允许的输出电平用于锁存地址的低位字节
38、。在flash编程期间,次引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如果想禁止ale的输出可在sfr8eh地址上置0.此时,ale只有在执行movx,movc指令时ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置为无效。/psen:外部程序存储器的读选通信号,低电平有效。在由外部程序存储器取值期间,每个机器两次/psen有效,但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp
39、:/ea为该引脚的第一功能,即外部程序存储器访问控制允许端。当/ea为高电平时,在pc值不超过0ffffh时,单片机读片内程序存储器(4kb)中的程序;当pc值超出时,将自动转向片外60kb程序存储器空间中的程序。当/ea引脚为低电平时,只读取外部程序存储器中的内容。vpp为该引脚的第二功能,即在对片内flash进行编程时,vpp引脚接入编程电压。2.3 振荡电路 本次设计采用内部振荡电路,瓷片电容采用22pf,晶振采用12mhz。电路连接如图3所示 图2 震荡电路2.4 复位电路 单片机系统的复位电路在这里采用的是上电复位电路的形式,其中电阻r1采用10k的阻值,电容采用电容值为22pf的电
40、容。电路连接如图4所示 图3 复位电路2.5 键盘电路 该设计使用了两个键盘。该键盘可以实现小时和分钟的调节,当按下控制分钟的按键时,可以实现分钟的加一,每加一次分钟加一;同样按下控制小时的按键时,也实现同样的功能。达到调节时间的目的。 图4 键盘电路2.6 数码管显示工作原理 数码管是一个把多个led显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个led显示段的阳极接在一起,又称为公共端。共阴型就是把多个led显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数
41、码管又分为8段,即8个led显示段,这是为工程应用方便设计的,称为a、b、c、d、e、f、g、dp,其中dp是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的a段都会连在一起,其它的段也是如此,这是最实际的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,早同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示
42、就会清晰显示出来。 图5 共阴数码管 2.7 整个电路原理图图6 电路原理图2.8 pcb板图图7 pcb板图第3章 控制系统的软件设计3.1 程序流程图 本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整程序、延时程序四大模块。主程序流程图:second加1second=60吗?显示数据处理开始 秒按键识别成功否开中断,并允许t0中断th0,tl0装入初值计数单元清零second=0分按键识别成功否显示数据处理minit=0minite=60吗?minite加1时按键识别成功否hour加1hour=24吗?hour=0中断子程序流程图3.2 程序设计 见附录第4章 软件仿真4.1
43、proteus软件介绍 proteus软件是英国labcenter electronics公司出版的eda工具软件,是目前最好的模拟单片机外围器件的工具。可以仿真51系列、avr、pic等常用的mcu及其外围电路(如lcd、ram、rom、键盘、马达、led、ad/da,部分spi器件,部分iic器件等)。proteus是世界上著名的eda工具,从原理图布图、代码调试到单片机与外围设备协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件pcb设计软件和虚拟模型仿真软件三合一的设计平台。proteus具有原理布图、pcb自动或人工布线、spice电路仿
44、真的功能。4.2 仿真结果4.3 仿真结果分析 功能太过单调,只能实现时分秒的显示,设计比较简单。电路图的设计过于简单,用的器件太少,实现调节时间的按钮太少,不能很好的调节时间。在此时过程中,六位数码显示管只显示五位数字,有一位数字不亮,通过多次的修改程序并在proteus软件环境中进行仿真,最终解决了这个问题,也透漏出我在单片机电路设计和程序设计方面的不足。不过最后的仿真效果非常好,实现了预期的效果,比较令人满意。第5章 心得体会心得体会 随着日子一天天的流逝,课程设计也接近了尾声。经过两周的奋战,我的课程设计终于完成了。在没有做课程设计以前觉得课程设计只是对这学期所学单片机知识的单纯总结。
45、课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我明白了自己原来的知识还比较欠缺,自己要学习的知识还很多;以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作,生活中应该不断不得学习,努力提高自己知识和综合素质。这次对数字钟的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字钟的原理与设计理念。在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和具体的使用方法。通过自己画原理图和pcb板图,掌握了proteus软件的使用方法,增强了自己的动手能力。感谢
46、这两周来同学间的相互帮助和老师的指导。两周的锻炼,14天的不同感受,我有过对知识的掌握不足时的迷茫,也有过思路不清是的懊恼,但一路走来,我却收获了知识,收获的希望和努力后的成果。通过这次的课程设计加深了我对理论知识的理解,同时增强了我的逻辑思维能力,另一方面也是对课堂所学理论知识作一个总结和补充。在此我要感谢老师的孜孜教诲和同学的帮助,我相信这十几天的不懈努力回给我未来的学习带来很多的启发,我会在以后的工作生活中更好的理论联系实际,证明自己的能力参考文献1单片机原理及应用/张毅刚 彭喜元 彭宇主编.高等教育出版社,2010年5月第二版2单片机原理及应用/张毅刚高等教育出版社,20043mcs-
47、51系列单片机实用接口技术/李华主编北京:北京航空航天大学出版社,1993.8附录#include<reg51.h>#include<intrins.h>#define uchar unsigned char #define uint unsigned intuchar code dsy_code = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff ;uchar dsy_buffer = 0,0,0xbf,0,0,0xbf,0,0;uchar scan_bit;uchar dsy_idx;uchar key_
48、state;uchar h,m,s,s100;void delayms(uchar x) uchar i; while(x-) for( i = 0; i < 120; i+);void increase_hour() if(+h > 23) h = 0; dsy_buffer0 = dsy_codeh / 10; dsy_buffer1 = dsy_codeh % 10;void increase_minute() if(+m > 59) m = 0; increase_hour(); dsy_buffer3 = dsy_codem / 10; dsy_buffer4 =
49、dsy_codem % 10;void increase_second() if(+s > 59) s = 0; increase_minute(); dsy_buffer6 = dsy_codes / 10; dsy_buffer7 = dsy_codes % 10;void t0_int() interrupt 1 th0 = (65536 - 1000) / 256; tl0 = (65536 - 1000) % 256; p3 = scan_bit; p0 = dsy_bufferdsy_idx; scan_bit = _crol_(scan_bit,1); dsy_idx =
50、(dsy_idx + 1) % 8;void t1_int() interrupt 3 th1 = (65536 - 50000) / 256; tl1 = (65536 - 50000) % 256;if( +s100 = 20) s100 = 0; increase_second(); void main() p0 = p3 = 0xff; tmod = 0x11; th0 = (65536 - 1000) / 256; tl0 = (65536 - 1000) % 256; th1 = 0xdc; tl1 = 0; tcon = 0x01; ea = 1; et0 = 1; et1 =
51、1; h = 0; m = s = s100 = 0; dsy_buffer0 = dsy_codeh / 10; dsy_buffer1 = dsy_codeh % 10; dsy_buffer3 = dsy_codem / 10; dsy_buffer4 = dsy_codem % 10; dsy_buffer6 = dsy_codes / 10; dsy_buffer7 = dsy_codes % 10; scan_bit = 0xfe; dsy_idx = 0; tr0 = tr1 = 1; key_state = 0xff; while(1) if ( p1 key_state) d
52、elayms(10); if ( p1 key_state) key_state = p1; ea = 0;if(key_state & 0x01) =0) increase_hour();else if(key_state & 0x02) =0) m = (m + 1) % 60; dsy_buffer3 = dsy_codem / 10; dsy_buffer4 = dsy_codem % 10;ea = 1; c51 compiler v9.00 时_? 07/29/2011 15:38:04 page 1 c51 compiler v9.00, compilation
53、of module 时_?object module placed in 时钟.objcompiler invoked by: e:c51binc51.exe 时钟.c browse debug objectextendline level source 1 #include<reg51.h> 2 #include<intrins.h> 3 #define uchar unsigned char 4 #define uint unsigned int 5 uchar code dsy_code = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0
54、xf8,0x80,0x90,0xff ; 6 uchar dsy_buffer = 0,0,0xbf,0,0,0xbf,0,0; 7 uchar scan_bit; 8 uchar dsy_idx; 9 uchar key_state; 10 uchar h,m,s,s100; 11 void delayms(uchar x) 12 13 1 uchar i; 14 1 while(x-) for( i = 0; i < 120; i+); 15 1 16 void increase_hour() 17 18 1 if(+h > 23) h = 0; 19 1 dsy_buffer0 = dsy_codeh / 10; 20 1 dsy_buffer1 = dsy_codeh % 10; 21 1 22 void increase_minute() 23 24 1 if(+m > 59) 25 1 26 2 m = 0; increase_hour(); 27 2 28 1 dsy_buffer3 = dsy_codem / 10; 29 1 dsy_buffer4 = dsy_codem % 10; 30 1 31 void increase_second() 32 33 1 if(+s > 59) 34 1 35 2 s = 0; incr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国农业发展银行北京市分行纪委办公室审查调查专业人才社会招聘1人备考题库(历年真题)附答案详解
- 2026台州天台县事业单位选聘8人考前冲刺试卷带答案详解(研优卷)
- 2026广东湛江市旅游投资集团有限公司招聘考前冲刺试卷附完整答案详解(易错题)
- 2026广东阳江阳西县人事考试中心就业见习岗位招聘1人模拟试卷及答案详解(夺冠)
- 2026贵州黔东南州三穗县教育系统公开招聘社会化服务教师及保育员228人备考题库含答案详解【基础题】
- 2026广西桂林城乡建设控股集团有限公司招聘4人备考题库含完整答案详解(考点梳理)
- 2026蜀山教育集团招聘幼儿园教师63人考前冲刺试卷附参考答案详解【典型题】
- 乐山市犍为县2026年增量政策性岗位人员招募(30人)笔试题库及参考答案详解(完整版)
- 2026福建三明医学科技职业学院公开招聘助理岗位工作人员的(二)备考题库附完整答案详解(名校卷)
- 2026福建三明市中共永安市委社会工作部关于公开招聘编外聘用人员1人备考题库带答案详解(培优B卷)
- 人工智能算力平台服务管理规范
- 2026广东江门市台山博达企业管理有限公司招聘8人笔试备考试题及答案详解
- 2026年甘肃省中小学教师招聘考试试卷含答案
- 人形机器人与具身智能标准体系2026版标准化组织运作模式解读
- T∕AOPA 0085-2025 T∕CMSA 0057-2025 低空飞行管理运行平台气象信息服务指南
- 2026年4月自考08680欧洲文化入门试题试题及答案
- (2026年)如何早期识别儿童危重症
- 雨课堂学堂在线学堂云《人工智能与创新(南开)》单元测试考核答案
- 2026上半年四川成都职业技术学院编制外(考试)招聘30人笔试参考试题及答案解析
- GA/T 2336-2025法医临床学人体体表损伤检验规范
- 2026年西藏高考化学真题试卷(新课标卷)(+答案)
评论
0/150
提交评论