




已阅读5页,还剩130页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
39基于AT89S52单片机和DS1302的多功能万年历设计 摘 要随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用35V电压供电。综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。本电路为实现电子万年历的功能,采用单片机AT89S52,辅助以必要的外围电路,用C语言编写程序,并进行模块化设计而成的电子万年历系统.它通过LCD12864能正确显示阴阳历星期和时分秒,具有功能稳定,精确度高和可调的特点。关键词: 万年历,单片机AT89S52,DS1302,LCD12864,DS18B2039目 录1 前言41.1课题的背景41.2课题的主要工作42 单片机的概述62.1单片机的定义和特点62.2单片机的发展趋势62.3编程语言的选择73 设计要求和方案83.1 设计要求83.2 时钟芯片选择83.3 键盘选择:93.4 显示模块选择104 主要硬件描述124.1 89C52模块124.2 显示模块LCD12864134.3 芯片DS1302简介144.4 芯片DS18B20简介145 硬件设计与实现156 系统软件设计与实现186.1主要算法流程图描述186.2 LCM16824子程序的实现236.2 DS1302子程序的实现246.3 DS18B20子程序的实现256.4 键盘子程序的实现266.5 主程序的实现267 系统调试287.1 软件调试287.2 硬件电路307.3 硬件检测327.4 测试结果分析:337.5 测试总结:33总 结39参考文献40致 谢41附录I程序源代码421 前言1.1课题的背景万年历是我国古代传说中最古老的一部太阳历。为纪念历法编撰者万年的功绩,便将这部历法命名为“万年历”。而现在所使用的万年历,实际上就是记录一定时间范围内(比如100 年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。单片机的应用已经渗透到工业控制、家用电器、通信设备、信息处理、尖端武器等各个领域。而随着单片机的发展,人类用于计时的工具也在不断发展更新,单片机技术使得万年历有了新的发展方向。目前世界上单片机年产量已达十多亿片,通常是当年微处理器产量的4-5 倍以上。用最少的芯片就能实现最强大的功能,这是将来电子产品的主流方向,它将无可置疑地一步步取代其它同类产品,其数量之大和应用面之广,是其它任何类型的计算机所无法比拟的。以基于单片机的万年历作为设计的课题,因为它有很好的开放性和可发挥性,对本人我单片机的水平对应的要求比较高,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。另外液晶显示的万年历已经越来越流行,特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用,它具有显示清晰直观、走时准确、可以进行夜视等功能,并且还可以扩展出其它多种功能,同时将其制成一份精致的成品可作实用的展品。所以,电子万年历作为设计课题很有价值。1.2课题的主要工作本论文主要研究基于单片机的万年历设计。当程序执行后,LCM12864 显示即时时间、年月日、星期、天干地支、温度等。设置4 个操作键:KEY1,设置键;KEY2,跳出键;KEY3,上调键;KEY4,下调键。本设计的主要内容:1、了解单片机技术的发展现状,熟悉万年历各模块的工作原理;2、选择适当的芯片和元器件,确定系统电路,绘制电路原理图,尤其是各接口电路;3、熟悉单片机使用方法和C 语言的编程规则,编写出相应模块的应用程序。1.2.1 课题的设计目标设计目标:使基于STC89C52 单片机的万年历实现以下三个功能:1、具有年、月、日、星期、时、分、秒等功能;2、具备年、月、日、星期、时、分、秒校准功能;3、具有与即时时间同步的功能;4、具有显示温度的功能;5整点报时。1.2.2 论文章节安排1、前言部分主要介绍了基于STC89C52 单片机的万年历研究的课题背景,重点阐述了本设计的研究内容和研究工作。2、单片机的概述主要阐述了单片机系统的定义以及单片机系统的发展现状和发展趋势。因为只有对单片机有了更深入的了解,才能设计出更好的单片机控制系统。本章的结尾是对单片机C 语言编程的介绍。3、设计要求和方案主要介绍了设计要求和课题器件选择的论证方案。4、系统的硬件设计中主要描述了万年历的各个模块的硬件设计方案,并结合各个元器件和相应的硬件原理图进行分析,最后展示为了实现研究目标所需要的全部硬件基础。5、系统的软件设计主要罗列了实现万年历各个功能的C 语言程序的流程图,并分别对其进行了解释和分析,最后把各个C 语言子程序在巧妙结合在一起,共同控制整个系统,也就形成了实现研究目标所需要的所有软件基础。6、结束语主要是对本次实验研究的总结,提出本次实验的不足之处以及相应的改进方法,以便后人继续深入研究。2 单片机的概述目前单片机渗透到了我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。我们常用的数码产品,如MP3、MP4、手机、数码相机、录像机、摄像机,导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC 卡,民用豪华轿车的安全保障系统,空调、冰箱、全自动洗衣机的控制,以及远程控制玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域中的机器人、智能仪表、医疗器械了。单片机具有结构简单、控制功能强、可靠性高、体积小、价格低等优点,因而在许多行业都得到了广泛应用,并且在诸多领域中都发挥了无可比拟的巨大作用。2.1单片机的定义和特点2.1.1 单片机的定义单片机也被称为微控制器(Microcontroller),是以一个大规模集成电路为主组成的微型计算机,在一个芯片内含有计算机的基本功能部件:中央处理器CPU、存储器和I/O 接口,CPU 通过内部的总线和存储器、I/O 接口相连。2.1.2 单片机的特点单片机以其卓越的性能,得到了广泛的应用,已深入到各个领域。单片机应用在控制领域中,具有如下特点:单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,成本低,可靠性高,种类多,型号全,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。最重要的是可以采用C 语言开发环境,具有友好的人机互交环境。大多数单片机都提供基于C 语言开发平台,并提供大量的函数供使用,这使产品的开发周期、代码可读性、可移植性都大为提高。2.2单片机的发展趋势单片机的发展趋势:低功耗CMOS 化;微型单片化;主流与多品种共存;单片机从8位、16 位到32 位,数不胜数,应有尽有,有与主流C51 系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1)低功耗CMOS 化MCS-51 系列的8051 推出时的功耗达630mW,而现在的单片机普遍都在100mW 左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。像8051 就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。2)微型单片化现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。3)主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍以80C51 为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS 公司的产品,ATMEL 公司的产品和中国的STC 单片机。所以8051 为核心的单片机占据了半壁江山。而Microchip 公司的PIC 精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK 公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA 公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。2.3编程语言的选择在1972 年,美国贝尔实验室的D.M.Ritchie 在B 语言的基础上最终设计出了一种新的语言,他取了BCPL 的第二个字母作为这种语言的名字,这就是C 语言。在众多的程序设计语言中,C 语言简洁紧凑,语言表达能力强,其结构化的流程控制有助于编制结构良好的程序。C 语言程序经编译后生成的目标程序代码效率高,几乎可以与汇编语言媲美。C 语言既具备高级语言使用方便、接近自然语言和数学语言的特性,同时也具备对计算机硬件系统的良好操纵和控制能力,用C 语言开发产品可以大大缩短开发周期。C 语言可移植性好,一个C 语言源程序可以不做改动,或者稍加改动,就可以从一种型号的计算机移转到另外一种型号的计算机上编译运行。因此,C 语言被广泛应用于各类系统软件和应用软件的开发。所以本系统以C 语言进行软件设计,增加了程序的可读性和可移植性,便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁了。3 设计要求和方案3.1 设计要求1、具有年、月、日、星期、时、分、秒等功能;2、具备年、月、日、星期、时、分、秒校准功能;3、具有与即时时间同步的功能;4、具有显示温度的功能;5整点报时。3.2 时钟芯片选择方案一:不使用芯片,采用单片机的定时计数器 这种方法原理是利用单片机芯片的定时器来产生固定的时间,模拟时钟的时, 分,秒.如:利用AT80C52芯片,定时器用工作方式1,每50ms产生一个中断,循环20次,即1s周期.每一个周期加1,那么1min为60个周期,1h就是60*60=3600个周期,一天就是3600*24=86400个周期。此方法优点是可以省去一些外围的芯片,但这种方法只能适用于一些要求不是十分精确,不做长期保留的场合。 方案二:并行接口时钟芯片 DS12887 特点:采和单片机应用系统并行总线(三总线)扩展的接口电路,采用这种接口电路具有操 作速度快,编程方便的优点。但是对于80C52单片机来说,低位地址线要通过锁存器输出,还要地址译码器,而且并行口芯片的体积相对较大。方案三:串行接口时钟芯片DS1302芯片主特性:实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力 还有闰年调整的能力31 8 位暂存数据存储RAM串行 I/O 口方式使得管脚数量最少宽范围工作电压2.0 5.5V工作电流 2.0V 时,小于300nA读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配简单 3 线接口与 TTL 兼容Vcc=5V可选工业级温度范围-40 +85 优点:串行接口的日历时钟芯片,使用简单,接口容易,与微型计算机连线较少等特点,在单片机系统尤其是手持式信息设备中己得到了广泛的应用。 因次,我选择了串行时钟芯片DS1302。3.3 键盘选择:方案一: 阵列式键盘(如图) 阵列式键盘: 行列式键盘的原理就是每一行线与每一列线的交叉地方不相通,而是接上一个按键,通过按键来接通。特点: 以省出不少的I/O 口资源,程序编写相对复杂点,适用于键数比较多的情况。方案二: 独立式键盘(如图)独立式键盘: 指各个按键相互独立地连接到各自的单片机的I/O 口,I/O口只需要做输入口就能读到所有的按键。特点: 电路简单,程序容易写,适用于按键数较少的情况。因此我选择,独立式键盘。3.4 显示模块选择方案一:LED数码管显示 特点:数码管显示比较常用的是采用CD4511和74LS138实现数码转换数码显示分动态显示和静态显示,静态显示具有锁存功能,可以使数据显示得很清楚,但浪费了一些资源。目前单片机数码管普通采用动态显示,编程简单,但只能显示数字,不能显示中文。方案二:LCD1602 特点:能够显示英文和数字。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号。方案三:LCD16824作为一种输出方式,液晶显示最大的特点就是能够实现友好的人机界面,它己经广泛应用于现代工业控制和智能化仪器仪表等领域,它己经成为单片机就用开发领域典型模块之一。能够方便的显示文字和数字。因此我选择LCD16824作为显示模块。4 主要硬件描述4.1 89C52模块Mcs51单片机的硬件结构(如图) 1)一个8位的微处理器(CPU)2)片内数据存储器RAM(128B/256B)3)片内程序存储器ROM/EPROM(4kB/8kB)4)4个8位并行I/O拉口P0-P3,每个口既可以作输入,也可以作输出5)2个16位定时器/计数器6)5个中断源的中断控制系统7)1个全双工的串行I/O接口片内时钟振荡器4.2 显示模块LCD12864一.概述该小组作品采用FG12864J显示模块,它 是一种图形点阵液晶显示器。它主要采用动态驱动原理由行驱动控制器和列驱动器两部分组成了128(列)64(行)的全点阵液晶显示。二.特性:1.工作电压为+5V10% ,可自带驱动 LCD 所需的负电压。2.全屏幕点阵,点阵数为128(列)64(行),可显示8(/行)4(行)个(1616 点阵)汉字,也可完成图形,字符的显示。3.与 CPU 接口采用5 条位控制总线和8 位并行数据总线输入输出,适配M6800 系列时序。4.内部有显示数据锁存器5.简单的操作指令 显示开关设置,显示起始行设置,地址指针设置和数据读/写等指令。4.3 芯片DS1302简介DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。管脚描述:X1 X2 32.768KHz 晶振管脚GND 地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚4.4 芯片DS18B20简介DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强.对电子爱好者来说,DS18B20是我们开发温度相关的首选小产品。 DS18B20引脚功能:GND 电压地 DQ 单数据总线 VDD 电源电压 NC 空引脚5 硬件设计与实现 MCU8952DS18B20温度采样LCD16824显示DATADATADS1302时钟芯片ControlDATAControl键盘DS1302时钟芯片Control单片机主控制模块的设计: AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。单片机主控制模块的设计(图):时钟电路模块(图): 温度采集模块设计(图):如下图所示。采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。 DS18B20温度采集 12864显示模块设计(图): 12864与单片机的硬件连接图电路总线路(图):6 系统软件设计与实现6.1主要算法流程图描述软件流程图:以80C52为核心,处理外转电路传进来的信号,实现时钟数据的读取,保存,显示其及键盘操作。流程图如下所示: 主程序流程图 初始变量初始化化 控制器发送ROM指令复位端产生一个高电平写1302地址延时向地址写数据据地址增加复位端产生一个高电平数据是否写完?写1302地址延时将该地址的数据读出地址增加数据是否读完?YYNN 显示数据 计算阳历和时分秒流程图 计算阴历程序流程图 Set键有效,退出等待按键程序设置分设置时 退出Set键有效,设置闹铃退出分减1分加1Out 键Up键Down键等待按键程序Set键有效,分调整退出时减1时加1UpDownOut 键等待按键程序Set键有效,时调整退出年减1年加1OutDownUp键等待按键程序Set键有效,日调整月加1月减1退出UpDownOut键等待按键程序Set键有效,月调整退出年减1年加1OutDownUp键等待按键程序Set键有效进入年调整开 始判 断时间调整程序流程图 S=A+B+C+DD=月校正数A=公历日期B=公历年份+100C=所过闰年数闰年是否到3月份W=(S-1)%7(S-1W=S%7(S-1 计算星期算法文字描述:星期=(日期年份+所过闰年数+月校正数)%7如果是在闰年又不到3月份上述之和要减一天再除7 其1到12月的校正数据为 6 2 2 5 0 3 5 1 4 6 2 4 该程序中采用1 个字节表示年份闰年数也只计算1900 年以后的闰年数6.2 LCM16824子程序的实现 读写时序图主要函数模块:函数:void lcd_init(void) 显示初始化程序.函数:Void GUI_init() 该函数用于初始化显示界面,把一些固定不需要刷新的文字固定下来.函数:void lw(uchar x, uchar y, uchar dd)用来写数据的子程序.函数: void display(uchar xx, uchar yy, uchar n, uchar fb,uchar hz) 用于显示汉字,每个汉字为16*16的点阵函数: void shownum(uchar xx,uchar yy,uchar n,uchar fb,uchar num) 用于显示数字,每个数字为8*16的点阵.6.2 DS1302子程序的实现DS1302读写时序图定义结构体数组SYSTEMTIME的时间类型.结构体数组如下:typedef struct _SYSTEMTIME_unsigned char Second;unsigned char Minute;unsigned char Hour;unsigned char Week;unsigned char Day;unsigned char Month;unsigned char Year;SYSTEMTIME主要函数模块:函数: void Initial_DS1302(void)描述:时钟芯片初始化函数: void Write1302(unsigned char ucAddr, unsigned char ucDa)描述:把某个数据写进某个地址函数: unsigned char Read1302(unsigned char ucAddr)描述:从芯片内某地址读取数据函数: void DS1302_GetTime(SYSTEMTIME *Time)描述: 获取时钟芯片的时钟数据到自定义的结构型数组函数: void DS1302InputByte(unsigned char d)描述: 往时钟写入一字节函数: unsigned char DS1302OutputByte(void)描述:从时间内读取一个字节6.3 DS18B20子程序的实现 复位 存在脉冲 控制器发送ROM指令 控制器发送存储器操作指令执行或数据读写 简要流程图主要函数描述:函数: void Init_DS18B20(void)描述:单总线传输初始化函数.函数: void WriteOneChar(uchar dat) 描述:往芯片内部地址写入一个字节,有写数据和写指令之分。函数: void ReadTemp(void)描述:读取芯片的温度.函数: void delay_18B20(unsigned int i)描述:延时函数6.4 键盘子程序的实现主要函数模块:函 数 名: void key_count()功能描述:设置状态转换函数,根据变量count的不同值,对应不同的设置状态按下设置键,自动切换设置位函 数 名: void key_out()功能描述:跳出设置模式.函 数 名: uchar key_up(int temp,int max,int min)功能描述: 按键加函数,在最大值与最小值之间变化函 数 名: uchar key_down(int temp,int max,int min)功能描述: 按键减函数,在最大值与最小值之间变化函 数 名:void set_year(); void set_month(); void set_day(); void set_hour();void set_minute(); 功能描述: 分别是用来设置 年 月 日 时 分 秒函 数 名: void key_al01()功能描述:设置定时报警功能.6.5 主程序的实现 主要函数模块:函 数 名: Init_GUI()功能描述:进行界面初始化.例如固定的年、星期、农历。函 数 名: void Show_NL()功能描述:根据算法,得出阴历, 包括天干地支月日。函 数 名: void Show_YL()功能描述:根据算法,从时钟芯片读出阳历数据,显示出来。函 数 名: LCD_ShowWNL()功能描述:根据算法,显示电子万年历,其中时钟的”秒”位为每次循环刷新一次,”分”为在普通模式时每分钟刷新一次,在设置模式时每次循环刷新一次,”时”为在普通模式时每小时刷新一次,在设置模式时每次循环刷新一次,公历农历的年、月、日、星期、温度,设置模式每次循环刷新一次。函数名:void LCD_showalarm()功能描述:显示定时报警的时间。函 数 名: void mian()功能描述:显示万年历,循环读取时间,并通过程序进行键盘检测。7 系统调试系统调试包括软件调试和硬件调试。硬件调试的任务是排除所焊接电路故障。软件调试是利用开发工具进行在线仿真调试。调试的一般过程如下所示:系统调试的一般过程是上电运行后观察其运行状态,数码管是否点亮等。软件调试先是各个模块、各个子程序分别调试,最后进行系统联机调试。7.1 软件调试7.1.1 编程工具C51语言8051单片机的应用程序设计,使用C51语言进行程序设计虽然相对于汇编语言代码效率有所下降,但可以方便地实现程序设计模块化,代码结构清晰、可读性强,易于维护、更新和移植,适合较大规模的单片机程序设计。近年来,随着C51语言的编译器性能的不断提高,在绝大多数应用环境下,C51程序的执行效率已经非常接近汇编语言,因此,使用C51进行单片机程序设计已经成为单片机程序设计的主流选择之一。7.1.2 程序调试工具KEIL本设计的软件都是在 Keil Vision 7.5上进行编写,编译,调试以及运行操作。7.1.3 单片机仿真软件在线调试PROTEUS1.打开Proteus软件。2.选择file菜单下的 open design选项,找到所需的元器件,元器件上单击右键选中,再单击左键对其进行命名和赋值,接着在编辑器左边的一栏中,找出并绘制设计所要的各种元器件,按照电路图连接后并保存。3.将用keil编译产生的hex文件下载到单片机中:双击51单片机,在对话框中把保存过的hex文件打开,再单击确定。 4.单击左下角运行按钮,进行软件仿真调试,直到出现正确的结果。下图为软件的仿真窗口图:7.2 硬件电路设计的目的是做出实用的实物,设计PCB板并焊接元器件。7.2.1 PCB图纸设计再设计PCB图之前要先画出原理图。再确认原理图无误后,进入PCB界面,进行环境设置,规划好电路板大小,尺寸,以及元器件的位置摆放。然后手动将各元器件连接起来。7.2.2 元件的焊接方法手工焊接是传统的的焊接方法,虽然批量电子产品生产已较少采用手工焊接了,但在电子产品的维修、调试中不可避免地还会用到手工焊接。焊接质量的好坏直接影响到维修效果。手工焊接是一项实践性很强的技能,在了解一般方法后,要多练;多实践,才能有较好的焊接质量。一、手工焊接一般分四步骤进行准备焊接:清洁被焊元件处的积尘及油污,再将被焊元器件周围的元器件左右掰一掰,让电烙铁头可以触到被焊元器件的焊锡处,以免烙铁头伸向焊接处时烫坏其他元器件。焊接新的元器件时,应对元器件的引线镀锡。加热焊接:将沾有少许焊锡和松香的电烙铁头接触被焊元器件约几秒钟。若是要拆下印刷板上的元器件,则待烙铁头加热后,用手或镊子轻轻拉动元器件,看是否可以取下。清理焊接面:若所焊部位焊锡过多,可将烙铁头上的焊锡甩掉(注意不要烫伤皮肤,也不要甩到印刷电路板上!),用光烙锡头沾些焊锡出来。若焊点焊锡过少、不圆滑时,可以用电烙铁头蘸些焊锡对焊点进行补焊。检查焊点:看焊点是否圆润、光亮、牢固,是否有与周围元器件连焊的现象。 二、焊接质量不高的原因 手工焊接对焊点的要求是:电连接性能良好;有一定的机械强度;光滑圆润。 造成焊接质量不高的常见原因是:焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹(如同豆腐渣一样!)。夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。若夹杂加热不足的松香,则焊点下有一层黄褐色松香膜;若加热温度太高,则焊点下有一层碳化松香的黑色膜。对于有加热不足的松香膜的情况,可以用烙铁进行补焊。对于已形成黑膜的,则要吃净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器件及细小印刷电路板进行焊接时要尤为注意。焊剂过量,焊点周围松香残渣很多。当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。焊点表面的焊锡形成尖锐的突尖。这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当造成的。三、易损元器件的焊接 易损元器件是指在安装焊接过程中,受热或接触电烙铁时容易造成损坏的元器件,例如,有机铸塑元器件、MOS集成电路等。易损元器件在焊接前要认真作好表面清洁、镀锡等准备工作,焊接时切忌长时间反复烫焊,烙铁头及烙铁温度要选择适当,确保一次焊接成功。此外,要少用焊剂,防止焊剂侵入元器件的电接触点(例如继电器的触点)。焊接MOS集成电路最好使用储能式电烙铁,以防止由于电烙铁的微弱漏电而损坏集成电路。由于集成电路引线间距很小,要选择合适的烙铁头及温度,防止引线间连锡。焊接集成电路最好先焊接地端、输出端、电源端,再焊输入端。对于那些对温度特别敏感的元器件,可以用镊子夹上蘸有元水乙醇(酒精)的棉球保护元器件根部,使热量尽量少传到元器件上。焊接过程要遵循以下原则:焊接原则是先焊接小的元件,再焊接大的。焊接过程要掌握烙铁的温度,以免温度过高损坏元器件。焊接过程中要特别注意的几点:(1)在焊接多引脚元件时最好焊接一个底座,这样可以避免器件烧坏。(2)51单片机引脚较多,它与外围电路连接时,要特别注意,以免连焊、虚焊。(3)有极性的电解电容,要注意其极性。(4)焊接前先弄清各芯片引脚排列方式。7.3 硬件检测设计的过程中,对硬件的检测和对软件的测试都不能忽略,因为在系统的仿真过程中。各元件都是理想的,而在设计实际电路时,就需要多方面考虑。要先对元件进行检测,然后进行调试。例如如果在设计中不加任何驱动,在仿真软件中仍然可以正常计价,但是在具体硬件焊接时,需要考虑电路的驱动能力。 在已经焊接好的电路板上,要对其各个元器件进行检查。一般情况下,集成电路不会出现故障。在本设计中采用了先焊接插槽的方法,这可以避免一些元件在焊接的过程中被烧坏。另外在焊接数码管时,要先排线,再焊接以免线路混乱。元件在选购时需要多备选元件,元件的型号较多,产品质量没有可靠保证,就避免不了我买的元器件是损坏的,再加上焊接是在万能板上焊接的。就有可能发生虚焊,短路等情况的发生。所以,在焊接好每个元件后都要进行检测,以保证焊接无误。焊接好电路板,把相应的芯片插到对应的插槽中,再检一次,看芯片是否与插槽接触良好。 显示部分检测的目的是看数码管是否能够正常显示。如果不该亮的字段点亮,检测是因否有短路的情况;如果数码管不显示,说明位选端可能没有焊好;如果显示不够亮,则应该检查驱动电路。晶振部分使用示波器查看波形。如果出现看不到12MHZ的正弦波形的现象,说明此部分电路不正常。7.4 测试结果分析: (1)在测试中遇到LCD16824不显示分析:首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏.再接着研究程序的时序图是否正确.最后发现在制作PCB板时的失误使其在液晶屏与上拉电阻的公共端出现断路情况,使用飞线解决问题。同时程序上存在一点小问题。 (2)测试中遇到调时间调到2079年后跳到2000年分析:认真研究时钟芯片的Datasheet发现,对年的读取,读出后是BCD码转换成十制显示时算法不正确。 (3)按键调整时,不是按单位递增和递减分析:在键盘程序中,按键一次,向芯片写入一个新的数字,在写入数字后必须有一定延时才再写入另一个数字。 (4)烧写程序进单片机里面时,有时会在显示屏上显示烂码分析:用电压表检查.最后检测出USB下载线的端口电压不够.换条新线就可以把问题解决。7.5 测试总结: 经过多次的反复测试与分析,掌握了硬件的设计与分析的能力, 学会看英文版的Datashee,同时在软件的编程方面得到更到的提高,对编程能力得到加强.对所学的知识得到很大的提高与巩固.最终实现功能: (1)能显示阳历年、月、日、星期、小时、分、秒。(2)显示模块采用LCD液晶显示,要求能用按键调整时间。(3)能显示阴历月、日,在显示阴历时间时能标明是否为闰年。(4)具有定时报警功能,能够进行整点和半点语音报时。我的扩展部分:能够准确在LCD上显示室温,在显示农历时通过算法能够把天干地去也显示出来。总 结三周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程。“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次模具设计,本人在多方面都有所提高。通过这次万年历的设计,综合运用本专业所学课程的理论和实验课知识进行一次多功能万年历设计工作的实际训练,从而培养和提高学生独立工作能力,巩固与扩充了对单片机课程、C语言编译等课程所学的内容。掌握制作一份完整的课程设计的方法和步骤,怎样确定工艺方案,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。这次课程设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。通过自身的努力以及相关图书资料的帮助,逐渐熟悉了KEIL、PROTEUS和C语言等软件的使用以及硬件焊接与检测过程中的一些小技巧。本次设计我学习到不少单片机的知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题。所焊实物尚有许多不足,个别预期功能还不能很好的实现,主要原因是考虑问题不周全,电路设计经验少,实际动手能力不足。恳请各位老师批评指正,以使我在以后的学习和实践中加以改进和提高。参考文献1 周兴华,等.手把手教你学单片机C程序设计,北京:北京航空航天大学出版社,20072 侯玉宝,等.基于Proteus的51系列单片机设计与仿真,北京:电子工业出版社,20083 张义和,等.例说51单片机(C语言),北京:人民邮电出版社,20084 杜洋,等.愛上單片機(第2版),人民郵電出版社,2011致 谢在此感谢我们的郑翔老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次课程设计的原理图、PCB制作以及每一步进行,都离不开老师您的细心指导。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。特别是小组长刘邓同学,无论在我元器件的采购上的细心和之后在硬件错误中的排故都一直在鼓励我完成这次课程设计。由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。附录I程序源代码万年历.c#include#include /更改管脚#include#include#include#include#include#include#define uchar unsigned char#define uint unsigned intSYSTEMTIME sys;uchar c_sun,year_sun,month_sun,day_sun;uchar year_moon,month_moon,day_moon,week; uchar alarm=0,al_hour=0,al_min=0;sbit beep=P04;/蜂鸣器管脚void Beep_Delay(char num)while(num-) ;void Beep_Half(void)unsigned char a;char i;beep=0;for(a=0;a100;a+)for(i=0;i0;a-)beep = beep;Beep_Delay(50);beep=1;void Beep_Hour(void)unsigned char a;char i;beep=0;for(a=0;a50;a+)for(i=0;i4)*10 + (day_moon&0x0F);month_moon=(month_moon&0x70)4)*10 + (month_moon&0x0F);year_moon=(year_moon&0xF0)4)*10 + (year_moon&0x0F); */if(month_moon=1)display(8,4,12,0,ch1616);/显示“正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工地安全培训全览
- 2025年小程序开发平台口碑排行哪个平台更靠谱
- 保安知识专业培训课件
- 中国南方航空数字化和双中台方案
- 2026届吉林省德惠市九校化学高三上期末质量检测试题含解析
- 九年级语文下册第五单元19善待家园省公开课一等奖新课获奖课件
- 办事大厅重建方案(3篇)
- 餐厅单机经营方案(3篇)
- 清水家装改造方案(3篇)
- 银行生活垃圾管理方案(3篇)
- 过敏性休克课件
- JT-T-864-2013吸油拖栏行业标准
- 知识题库-人社劳动知识竞赛测试题及答案(十三)
- 城中村综合整治总体规划
- 人工智能实验学校申报材料
- 复杂网络上的演化博弈及其学习机制与演化动态综述
- 2024年江苏省成考(专升本)大学政治考试真题含解析
- 四年级数学(四则混合运算带括号)计算题与答案
- 2023年新高考全国Ⅱ卷英语试题真题及答案详解(含作文范文)
- 消毒隔离技术
- 2023年中国邮轮游船游艇行业发展报告
评论
0/150
提交评论