基于stc89c58的万年历设计
电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用STC90C516RD+单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本设计是基于51系列的单片机进行的电子万年历设计,可以显示公历、农历、时、分、秒、周、温度、生肖等信息,具有可调整日期和时间功能,并具有设置闹钟的功能(具有掉电保护功能)。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。在编写程序过程中发现以现有的相关知识要独自完成编写任务困难重重,在老师和同学的帮助下才完成了程序部分的编写。
万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由STC90C516RD+单片机,DS18B20温度采集,DS1302时钟电路,LCD12864显示电路,以及调时按键电路及蜂鸣器提示电路等组成。在单片机的选择上本人使用了STC90C516RD+单片机,该单片机具有61KB的FLASH适合于程序较大的设计中。显示器使用LCD12864液晶屏。软件方面主要包括日历程序、时间调整程序,公历转阴历程序,显示程序等。程序采用C语言编写,以便更简单地实现调整时间及阴历显示功能
一、设计要求与方案论证
1.1 设计要求:
(1)基本要求
① 具有显示年、月、日、星期、时、分、秒等功能;
② 时间与阴、阳历能够自动关联;
③ 具备年、月、日、星期、时、分、秒校准功能;
( 2 ) 创新要求
② 具有闹钟功能;
② 具有室内温度显示功能;
3.能够根据输入的日期自动计算出农历的日期。
1.2 系统基本方案选择和论证
1.2.1单片机芯片的选择方案和论证:
方案一:
采用89C52芯片作为硬件核心,具有8k字节Flash,512字节RAM,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容。
方案二:
采用STC90C516RD+系列单片机,该芯片宏晶科技推出的新一代超高速/高速/低功耗的单片机,具有61K用户应用程序空间,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,内部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地。
综合上述和实际中万年历的程序量巨大的特点,所以选择采用STC90C516RD+作为主控制系统.

1.2.2 显示模块选择方案和论证:
方案一:
采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。但是对于显示中文或一些复杂的字符不能完成,所以本设计中不采用数码管显示。
方案二:
采用LCD1602液晶显示屏,液晶显示屏的显示功能强大,可显示2*16个字符(包括字母,数字,符号,自定义字符),价格适中,但是本次设计的万年历中我们需要能够显示中文,而却需要显示的内容丰富,这是这款液晶屏无法做到的。所以在此设计中不采用LED1602液晶显示屏.
方案三:
采用LCD12864液晶显示屏,该液晶屏显示功能巨大,具有自带字库,可以显示中文,字符,而却可以显示四行八个中文,并且可以通过画图使得显示界面更加的美观,相对本次设计这个显示内容可以达到我们的要求。
所以综合以上我们采用了LCD12864液晶屏作为显示。

1.2.3时钟芯片的选择方案和论证:
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。
方案二:
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.

1.2.4温度传感器的选择方案与论证:
方案一:
使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。。此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。
方案二:
采用模拟温度传感器AD590,该传感器的输出电流会随温度的变化而变化,从而需要设计电路转换成电压的变化,进而通过A/D转换后接到单片机中,这种方法固然麻烦,而却费用比较高,而却在电流电压转换和A/D转换中会产生误差。
方案三:
采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。
所以最终我们采用数字型DS18B20作为温度采集芯片。
1.3 电路设计最终方案决定
综上各方案所述,对此次作品的方案选定: 采用STC90C516RD+作为主控制系统; DS1302提供时钟;数字型DS18B20温度传感器;LCD12864液晶屏作为显示。

二.系统的硬件设计与实现
2.1 电路设计框图

2.2 系统硬件概述
本电路是由STC90C516RD+单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成;显示部份由自带字库并且具有画图能力的LCD12864液晶屏作为显示。

2.3 主要单元电路的设计
2.3.1单片机主控制模块的设计

STC90C516RD+单片机为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引脚为电源端. 如图-1 所示

图-1 主控制系统

2.3.2时钟电路模块的设计

图-2示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768KHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。中有在SCLK 为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。

            图-2 DS1302的引脚图

2.3.3温度采集模块设计
如图-3所示。采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。

                图-3 DS18B20温度采集

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.0~5.5v;零待机功耗;温度以9或12位二进制数字表示;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚TO-92封装或8脚SO或µSOP封装,其其封装形式如图2-2所示。

图2-2 DS18B20的封装形式
DS18B20的64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM。高速暂存RAM的结构为8字节的存储器,结构如图2-3所示。

图2-3 DS18B20的高速暂存RAM的结构
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值,该字节各位的定义如表2-1所示。
表2-1:配置寄存器
D7 D6 D5 D4 D3 D2 D1 D0
TM R1 R0 1 1 1 1 1
配置寄存器的低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,“R1R0”为“00”是9位,“01”是10位,“10”是11位,“11”是12位。当DS18B20分辨率越高时,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位s=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。输出的二进制数的高5位是符号位,最后4位是温度小数点位,中间7位是温度整数位。表2-2是一部分温度值对应的二进制温度数据。
表2-2 DS18B20输出的温度值
温度值 二进制输出 十六进制输出
+125℃ 0000 0111 1101 0000 07D0h
+85℃ 0000 0101 0101 0000 0550h
+25.0625℃ 0000 0001 1001 0001 0191h
+10.125℃ 0000 0000 1010 0010 00A2h
+0.5℃ 0000 0000 0000 1000 0008h
0℃ 0000 0000 0000 0000 0000h
-0.5℃ 1111 1111 1111 1000 FFF8h
-10.125℃ 1111 1111 0101 1110 FF5Eh
-25.0625℃ 1111 1110 0110 1111 FF6Fh
-55℃ 1111 1100 1001 0000 FC90h
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。

2.3.4 电路原理及说明
(1) 时钟芯片DS1302的工作原理:
DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。图5为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表6为DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”
是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。

(2) DS1302的控制字节
DS1302的控制字如表-1所示。控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出

(3) 数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图-4所示

(4) DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表-2。

此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

2.3.5显示模块的设计
如图-5所示,采用LCD12864作为显示。带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192 个1616 点汉字,和128 个168 点ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机互图形界面。可以显示8×4 行16×16 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。

图-5 LCD12864显示
(1)控制器接口信号说明:
1、RS,R/W 的配合选择决定控制界面的4 种模式:
RS R/W 功能说明
L L MPU写指令到指令暂存器(IR)
L H 读出忙标志(BF)及地址记数器(AC)的状态
H L MPU写入数据到数据暂存器(DR)
H H MPU从数据暂存器(DR)中读出数据
2、E 信号
E状态 执行动作 结果
高—>低I/O 缓冲—>DR 配合/W 进行写数据或指令
高DR—>I/O 缓冲 配合R 进行读数据或指令
低/低—>高 无动作
● 忙标志:BF BF 标志提供内部工作情况.BF=1 表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0 时,模块为准备状态,随时可接受外部指令和数据.利用STATUS RD 指令,可以将BF 读到DB7 总线,从而检验模块之工作状态.
● 字型产生ROM(CGROM) 字型产生ROM(CGROM)提供8192 个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY ON),DDRAM 的内容就显示在屏幕上,DFF=0 为关显示(DISPLAY OFF)。DFF 的状态是指令DISPLAY ON/OFF和RST 信号控制的。
● 显示数据RAM(DDRAM)模块内部显示数据RAM 提供64×2 个位元组的空间,最多可控制4 行16 字(64 个字)的中文字型显示,当写入显示数据RAM 时,可分别显示CGROM 与CGRAM 的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM 字型及CGROM 的中文字型,三种字型的选择,由在DDRAM 中写入的编码选择,在0000H—0006H 的编码中(其代码分别是0000、0002、0004、0006 共4 个)将选择CGRAM 的自定义字型,02H—7FH 的编码中将选择半角英数字的字型,至于A1 以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140—D75F),GB(A1A0-F7FFH)。
● 字型产生RAM(CGRAM) 字型产生RAM 提供图象定义(造字)功能, 可以提供四组16×16 点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM 中,便可和CGROM 中的定义一样地通过DDRAM 显示在屏幕中。
● 地址计数器AC 地址计数器是用来贮存DDRAM/CGRAM 之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM 的值时,地址计数器的值就会自动加一,当RS 为“0”时而R/W 为“1”时,地址计数器的值会被读取到DB6——DB0 中。
光标/闪烁控制电路
此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM 中的光标或闪烁位置。
(2)应用举例
1、使用前的准备:先给模块加上工作电压,再按照下图的连接方法调节LCD 的对比度,使其显示出黑色的底影。此过程亦可以初步检测LCD 有无缺段现象。
2、字符显示:带中文字库的128X64-0402B 每屏可显示4 行8 列共32 个16×16 点阵的汉字,每个显示RAM 可显示1 个中文字符或2 个16×8 点阵全高ASCII 码字符,即每屏最多可实现32 个中文字符或64 个ASCII 码字符的显示。带中文字库的128X64-0402B 内部提供128×2 字节的字符显示RAM 缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM 实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII 码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:0000~0006H(其代码分别是0000、0002、0004、0006共4 个)显示自定义字型,02H~7FH 显示半宽ASCII 码字符,A1A0H~F7FFH 显示8192 种GB2312 中文字库字形。字符显示RAM 在液晶模块中的地址80H~9FH。字符显示的RAM 的地址与32 个字符显示区域有着一一对应的关系,其对应关系如下表所示。
80H 81H 82H 83H 84H 85H 86H 87H
90H 91H 92H 93H 94H 95H 96H 97H
88H 89H 8AH 8BH 8CH 8DH 8EH 8FH
98H 99H 9AH 9BH 9CH 9DH 9EH 9FH
3 、图形显示
先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址)
垂直地址范围AC5…AC0
水平地址范围AC3…AC0
绘图RAM 的地址计数器(AC)只会对水平地址(X 轴)自动加一,当水平地址=0FH 时会重新设为00H 但并不会对垂直地址
做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需重新设定。GDRAM 的坐标地址与资料排列顺
序如下图:
(3)使用说明
用带中文字库的128X64 显示模块时应注意以下几点:
①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入文字符编码。
②显示ASCII 字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1 指向下一个字符位置,否则,显示的字符中将会有一个空ASCII 字符位置。
③当字符编码为2 字节时,应先写入高位字节,再写入低位字节。
④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF 标志时BF 需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF 标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。⑤“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用同指令集时,无需每次均重设“RE”位
3.2 子程序的设计
四. 系统测试
4.1硬件测试
电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺被带有包皮的导线,则会对电路造成短路现象。
在本成电子万年历的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:
(1)接通电源后LCD12864没有正确显示内容。在不通电状态下用万用表检测电路是否正常连接正常,并且程序都是通过开发板测试是正确的,通过查阅LCD12864手册发现是由于第三引脚接的电位器没有调节好。于是调节了一下正常显示。
(2)DS1302时钟发现时间不走。原本以为是芯片坏了,便换一个还是一样情况。我开始怀疑是否程序读写时序没有写正确,所以查找数据手册时序图,并对应自己的程序,发现程序并未出现错误,后来我觉得可能是硬件没有设计好,仔细检查了下板子发现晶振引脚虚焊,通过对引脚进行重新焊接后时间开始走了。
4.2软件测试
电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:
1.再设计中为了让界面更加美观友好,所以想采用画图的方式显示内容,但是一直没有实现。
解决:首先仔细查看LCD12864的数据手册时序图,对应着自己的程序,发现在画图时序中出现了一点错误,在写画图起始地址时应该先写垂直地址在写水平地址。
2.修改时间、日期时没有农历没有自动对应上。
解决:把不相关的程序暂时屏蔽,地农历的子程序独立调试,发现在调用农历自动更新时,对十进制和十六进制处理不好,所以会造成错乱。最后把相应的十进制进行修改,使得可以与十六进制对应,最后解决了此问题。
实物图如下:

原理图如下:

12864带字库液晶1
9
15万用板1
Dc3.5接口
1
USB3.5数据线1
焊锡
1
跳线1捆
Stc89c58
1
40P芯片插座1
晶振11.0592
1
30P电容2
10K排阻
1
10K电位器1
10K电阻
5
1k电阻1
纽扣电池
1
纽扣电池座1
三极管8550
1
蜂鸣器1
按键
5
温湿度传感器dht111
排针
2
排母2
电源开关
1
32768晶振1
Ds1302时钟芯片
1
芯片插座8p1
4.7k电阻
1

焊接过程中遇到的问题和解决办法:
问:在焊接过程中不小心焊锡用多了导致了焊点那边有一坨,影响到附近信号的排列。
答:此时用焊锡抢对准那一坨焊点,用电烙铁融化后按住焊锡抢开关就能把多余的焊锡去掉。

问:有些信号线没办法排列过去,或者用焊锡铺的线绕不到对应的焊接点,
答:采用跳线的方式进行焊接,焊接过程中尽量小的减少跳线,容易影响信号的走路和干扰。

调试过程遇到的问题和解决办法:
问:在下载程序的时候,程序经常下载不进去或者下载超时失败
答: 1、检查电源和地是否在电路中形成回路,可能是电路焊接过程粗心大意导致芯片没有供电。
2、检查晶振电路上是否电容有焊接,晶振是否插好,或者电容和晶振有没有短路。
3、在软件下载端芯片的型号是否与使用的型号匹配。

问: 在调试程序中,显示器的亮度太暗或者没有显示。
答:调节显示的限流电阻,看是否正常,若排除硬件焊接问题后,显示器正常亮度但字仍然没有显示则是程序上问题,重新在程序上找问题。

相关传感器读取的数据错误、失败或者不正常:
问:传感器发数据读取失败
答:查看相关传感器的规格书,严格按照里面的时序和读取方法进行采集,如信号线和数据线的处理,每一个脉冲波的电平持续时间是否达到标准要求

问:传感器数据错误或者不正常
答:读取完传感器采集的数据需要进行相应的数学计算,由于每一个传感器本身的质量和误差,需要不断的检验计算数值,使得数值最准确。

基于stc89c58的万年历设计相关推荐

  1. java 万年历绪论,基于FPGA的万年历设计

    基于FPGA的万年历设计(论文15000字) 摘要:万年历在人们的生活中一直扮演着重要的角色,可随着时代的发展,传统的纸质万年历已经越来越无法满足人们对于时间精确度以及便捷性的要求.随着电子科学的不断 ...

  2. FPGA项目(12)——基于FPGA的万年历设计

    首先称述一下所实现的功能:可以显示年.月.日.时.分.秒,有闹钟设置功能,闹钟时间到时,蜂鸣器响,报警.用6位数码管进行显示,分三个显示页面,第一个页面显示年月日,第二个界面显示时分秒,第三个页面显示 ...

  3. 基于verilog的万年历设计

    万年历设计如下:(使用verilog语言) 适用于quartusII 或者 vivado 一 digital_clock设计需求 本设计采用FPGA,实现核心控制.利用独立按键当作输入,利用六位一体的 ...

  4. c语言编写闹钟主程序流程图,基于STC15W4K58S4单片机的电子万年历设计源码与报告(数码管显示)...

    基于STC15W4K58S4单片机的电子万年历(数码管显示)该压缩包包含源码TXT文件 源工程文件(Keil uVision4文件)和课程设计报告 电子时钟的设计 -单片机综合设计报告 目录 1  任 ...

  5. 基于C51单片机的万年历设计(LCD1602显示)

    C51单片机万年历设计 注:该程序基于普中科技C51 V2.2开发板设计,库函数和硬件资料均来自普中科技,侵删.main.c大部分为原创,如有雷同,纯属巧合. 名称:C51万年历. 硬件:以C51芯片 ...

  6. 基于51单片机的lcd1602万年历设计_温度+闹钟心得

    基于51单片机的lcd1602万年历设计_温度+闹钟心得 下载地址 https://download.csdn.net/download/weixin_44017446/10908985 当看到这个学 ...

  7. 万年历单片机课程设计百度文库_基于单片机的万年历课程设计.doc

    基于单片机的万年历课程设计.doc 还剩 26页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 27九.电路原理 ...

  8. 基于AT89C52单片机的万年历设计与仿真

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87777668?spm=1001.20 ...

  9. 基于单片机的电子万年历设计与实现

    基于单片机的电子万年历设计与实现 <嵌入式与单片机>课程设计报告 摘要 万年历作为日常生活中重要的时间显示设备,在人们的外出旅游和日常生活中都发挥了重要的作用.本文针对目前的万年历产品中存 ...

  10. 万年历设计单片机c语言,基于单片机的电子万年历设计(含电路图,Proteus仿真程序)...

    基于单片机的电子万年历设计(含电路图,Proteus仿真程序)(论文11000字,Proteus仿真程序) 摘    要 万年历作为日常生活中重要的时间显示设备,在人们的外出旅游和日常生活中都发挥了重 ...

最新文章

  1. 7个提升PyTorch性能的技巧
  2. 使用uni-app实现使用浏览器下载功能时,安卓端部分机型不兼容问题(小米/华为)
  3. 天翼云从业认证【考前半小时的30句话】
  4. jQuary的相关动画效果
  5. 数学建模 割平面算法求解整数规划基本原理与编程实现
  6. mysql添加用户权限报1064 - You have an error in your SQL syntax问题解决
  7. algorithm与numeric的一些常用函数
  8. textarea 在 Chrome Safari FireFox 浏览器中禁用拖动和固定大小
  9. MarkDown 符号大全
  10. VS2010编程助手
  11. psd导出jpg太大_保存技巧,完美解决PS导出文件过大的问题
  12. 000001 Kick off
  13. 分布式部署 Zabbix 监控平台
  14. 操作系统实践 job3
  15. 如何在Mac上使用QuickTime Player 录制影片?
  16. Entry name ‘assets/app.js‘ collided
  17. k3595参数_常用晶体管参数大全
  18. python-matplotlib-箱线图为不同的箱体设置不同颜色
  19. 飞腾arm服务器下的银河麒麟V10 yum 安装docker
  20. bios和boot menu的关系?

热门文章

  1. linux微信电脑版登录不了,默认Windows与Deepin系统下的微信电脑版目录
  2. 熊猫直播显示连接服务器失败,熊猫直播提示加载失败,请按“菜单键”刷新解决办法...
  3. 第七次人口普查数据可视化分析实战——基于pyecharts(含数据和源码)
  4. 1. Hadoop原理简述
  5. 报修管理系统微信小程序源码
  6. 谷歌浏览器设置护眼模式,全黑主题
  7. 不用 PLC与变频器通信程序 不用 三菱PLC与变频器通讯程序不经过 PLC与变频器通信
  8. Tcplistener服务端与tcpclient客户端使用
  9. 做手机APP测试,包括哪些测试要点?
  10. PDF免费压缩、在线压缩