多功能万年历组装与调试
一、实训目的与要求:
(1)、学会基本电子元器件的识别,熟悉一些常用电子器件的功能与作用。
(2)、掌握液晶显示电子万年历的组成和工作原理,学会分析基本的电路原理图。
(3)、学会利用电路原理图检查、处理电路故障、调试。
二、实训内容:
(1)、掌握电烙铁的正确使用方法和基本的焊接技术,学会识别不同的元器件及其安装方法。
(2)、掌握液晶显示电子万年历的工作原理,学会识别电路原理图与印刷图、电容、电阻的识别与测试,进一步掌握和熟练焊接技术。
(3)、测试各元件的好坏,安装元件到电路板上,焊接断电并测试。
整机调试与验收。
三、软件和硬件设计:
3、1 软件调试平台
Keil for C51是美国Keil Software公司出品的C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,Keil C51软件还提供了丰富的库函数和功能强大的集成开发调试工具,生成的目标代码效率非常高,且容易理解。
C51开发中除了必要的硬件外,同样离不开软件,我们写的源程序要变为C51可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,但现在已极少使用手工汇编。
Keil提供了包括C编译器、宏汇编、连接线、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision2)将这些部分组合在一起。
如图下图所示。
3、2 系统软件程序
(1)LCD1602液晶显示程序
#include<reg51.h>
sbit rs=P1^2;
sbit rw=P1^1;
sbit en=P1^0;
sbit s1=P3^4;
sbit s2=P3^5;
sbit s3=P3^6;
char miao,shi,fen;
unsigned char code tab[]=" 2012-10-19 MON";
unsigned char code tab1[]=" 00:00:00";
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=0;y<150;y++);
}
void write_com(unsigned char cmd)
{
rs=0;
rw=0;
en=1;
P2=cmd;
en=0;
delay(2);//当不检测忙标志信号时,每次至少需要2ms }
void write_data(unsigned char dat)
{
rs=1;
rw=0;
en=1;
P2=dat;
en=0;
delay(2);//当不检测忙标志信号时,每次至少需要2ms }
void init()
{
unsigned char num;
write_com(0x38);
write_com(0x08);
write_com(0x01);
write_com(0x0f);
write_com(0x06);
write_com(0x80);
for(num=0;num<16;num++)
{
write_data(tab[num]);
}
write_com(0x80+0x42);
for(num=0;num<13;num++)
{
write_data(tab1[num]);
}
TMOD=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
while(1);
}
3、3 系统硬件设计
(1)LCD1602液晶显示
四、LCD1602介绍:
4、1 LCD1602引脚功能
4、2 LCD1602硬件应用图
4、3 LCD1602操作时序
4、5 LCD1602内部RAM地址
4、6LCD1602读/写操作时序图
五、电子万年历功能状态说明:
5、1 整点闹铃设置
在正常时间状态下,按住“UP”键2秒以上将切换整点闹铃的关与开;注意低于2秒将显示年份。
5、2 时间调整说明
(1)、正常时间调整
在正常时间状态下,按住“SET(℃/℉)”键2秒后,年份闪烁,按“UP”或“DOWN”键调整该项;此后没按一次此键(低于2秒)屏幕将依次闪烁:月→日→时→分→退回正常时间状态,在任一项目闪烁时,可按“UP”或“DOWN”调整该项。
(2)、闹铃时间调整
在闹铃时间状态下,按住“SET(℃/℉)”键2秒后,“OF”闪烁,按“UP”或“DOWN”调整该项;此后没按一次此键(低于2秒)屏幕将依次闪烁:时→分→退回正常时间状态,在任一项目闪烁时,可按“UP”或“DOWN”调整该项。
注意:“OF”表示闹铃关,“ON”表示闹铃开。
5、3 闹铃铃声选择
在闹铃时间状态下,按住“UP”键可选择闹铃响闹时的铃声,共有六种铃声选择。
六、心得体会:
通过一个星期的学习,使我对电子工艺的理论有了初步的系统了解。
不仅是对我们课本所学知识的考查,更是对我们的自学能力和收集资料能力及动手能力的考验,本次实训使我们对一个项目整体设计有了初步认识。
再有对电路板的制作有了一定的了解。
并学会了使用keil软件设计。
本次实训使我们意识到实验的更重要性,在硬件制作和软件调试过程中,出现了很多问题,最终都是通过实验的方法来解决的。
还有以前对程序只是一个模糊的概念。
通过这次实训极大的锻炼了我们的思考和分析问题能力。
并对单片机有利益更深的认识。
总之,实训过程中,无论是对学习方法还是理论知识,我们都有了新的认识。
受益匪浅。
这将激励我们今后再接再励,不断完善自己的理论知识提高实践运作能力。
万年历组装实训报告
—實訓報告—(单片机实训报告)学院系别:机电工程学院专业班级:电信BK31901设计学生:张欢指导老师:陈老师、阎老师设计时间:2012年10月19日万年历组装与调试及单片机实训报告2012-10-219| 电信BK31901班张欢一、实习时间:2012年10月15日至2012年10月19日二、实习地点:机电实训楼三、实习目的与要求:1熟练C语言中if语句、for语句、while语句的使用。
2.掌握万年历的基本原理,学会分析基本的电路原理图。
3.学会利用Keil软件和proteus软件进行设计。
四、实习内容:1.利用Keil软件对数码管(秒表)液晶(时钟)编程,并进行编译和链接。
2.掌握AT89C51芯片I/O口的功能及作用。
3.灵活运用C语言对中断、定时计数器及数码管进行编程设计。
4认真掌握proteus仿真软件,并用proteus画出电路图软件进行仿真。
5.掌握万年历的工作原理,学会贴片电容,贴片电阻,晶振集成块的识别与测试,进一步掌握和熟练焊接技术。
五、运用Keil软件对数码管及液晶进行编程设计并用proteus仿真1.用数码管显示0—60的源程序:#include<reg51.h>#define uint unsigned char#define uchar unsigned intsbit K1=P3^7;uchar i,Second_Counts,Key_Flag_Idx;bit Key_State;uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void DelayMS(uint x){ uchar t;while(x--)for(t=0;t<500;t++);}void Key_Byent_Handle(){ if(Key_State==0){Key_Flag_Idx=(Key_Flag_Idx+1)%3;switch(Key_Flag_Idx){case 1:EA=1;ET0=1;TR0=1;break;case 2:EA=0;ET0=0;TR0=0;break;case 0:P0=0x3f;P2=0x3f;i=0;Second_Counts=0; }}} void main(){P0=0x3f;P2=0x3f;i=0;Second_Counts=0;Key_Flag_Idx=0;Key_State=1;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;while(1){if(Key_State!=K1){DelayMS(10);//开关消抖Key_State=K1;Key_Byent_Handle();}}}void DSY_keyfresh() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;if(++i==2){i=0;Second_Counts++;P0=DSY_CODE[Second_Counts/10];P2=DSY_CODE[Second_Counts%10];if(Second_Counts==60)Second_Counts=0;}}2.用液晶显示年、月、日、字符串的源程序:#include<reg52.h>unsigned char code tab[]="welcome BK31901"; unsigned char code tab1[] ="2012-10-19"; unsigned char num;sbit RS=P1^2;sbit RW=P1^1;sbit E =P1^0;void delay(unsigned int z){unsigned int x,y;for(x=z;x>0;x--)for(y=0;y<150;y++);}void write_com(unsigned char cmd){RS=0;RW=0;E=1;P2=cmd;E=0;delay(2);}void write_data(unsigned char dat){RS=1;RW=0;E=0;P2=dat;E=0;delay(2);}void init(){write_com(0x38);write_com(0x08);write_com(0x01);write_com(0x0f);write_com(0x06);}int main(){init();write_com(0x80);for(num=0;num<17;num++){write_data(tab[num]);}write_com(0x80-0x42);for(num=0;num<11;num++){ write_data(tab1[num]);}while(1);return 0;}3.用proteus画出电路图软件进行仿真六、作品实物图片七、心得体会在本次单片机实训中,我们从焊接贴片电阻、贴片电容、电子元器件开始,到组装、调试、检验合格,完成了万年历的整个过程。
电子万年历组装实训报告
一、实训目的本次实训旨在通过实际操作,让学生掌握电子万年历的组装流程,熟悉电子元器件的识别与使用,了解电路原理图的阅读与理解,以及电子产品的调试与故障排除。
通过本次实训,提高学生的动手能力、实践能力和团队协作精神,为后续相关课程的学习打下坚实基础。
二、实训内容1. 实训时间:2023年X月X日至2023年X月X日2. 实训地点:XX职业学院电子实验室3. 指导老师:XXX老师4. 实训目的:(1)掌握电子万年历的组装流程。
(2)熟悉电子元器件的识别与使用。
(3)了解电路原理图的阅读与理解。
(4)学会电子产品的调试与故障排除。
(5)培养团队协作精神。
5. 实训内容:(1)电子万年历的组装1)准备所需材料:STC89C52RC单片机、DS1302时钟芯片、LCD1602液晶显示屏、电阻、电容、晶体振荡器、按键、电源模块等。
2)根据电路原理图,连接各个电子元器件,确保连接正确。
3)调试电路,检查电路是否正常工作。
(2)电子万年历的程序编写1)了解STC89C52RC单片机的编程环境,如Keil uVision。
2)学习C语言编程,编写电子万年历的程序。
3)将程序烧录到单片机中,调试程序,确保程序正常运行。
(3)电子万年历的调试与故障排除1)观察电子万年历的显示效果,确保显示日期、星期、时间等无误。
2)检查电路连接是否牢固,排除虚焊、短路等故障。
3)优化程序,提高电子万年历的稳定性和可靠性。
三、实训过程1. 组装电子万年历(1)按照电路原理图,将各个电子元器件连接到单片机上。
(2)检查电路连接是否正确,确保没有短路、虚焊等故障。
(3)通电测试电路,确认电路正常工作。
2. 编写程序(1)学习C语言编程,了解电子万年历的程序结构。
(2)编写程序,实现日期、星期、时间的显示。
(3)调试程序,确保程序正常运行。
3. 调试与故障排除(1)观察电子万年历的显示效果,确保显示日期、星期、时间等无误。
(2)检查电路连接是否牢固,排除虚焊、短路等故障。
数字万年历组装实训报告
一、实训背景随着科技的发展,电子产品在我们的日常生活中扮演着越来越重要的角色。
为了提高学生的动手能力和实际操作技能,同时也为了加深对数字电路知识的理解,我们选择了数字万年历的组装作为实训项目。
数字万年历是一种具有日历、星期、日期、农历、节假日等多种功能的电子设备,它集成了数字电路、微控制器、液晶显示屏等元件,能够直观地显示日期和时间信息。
二、实训目的1. 通过组装数字万年历,使学生掌握数字电路的基本原理和实际应用。
2. 培养学生的动手能力、团队协作能力和创新意识。
3. 加深对微控制器、液晶显示屏等电子元件的理解和认识。
4. 学会使用电子工具和仪器,提高实际操作技能。
三、实训内容1. 硬件准备:数字万年历的硬件主要包括微控制器、液晶显示屏、时钟模块、按键、电源模块等。
2. 元件识别:学习各种电子元件的外观、符号、规格等,了解它们在电路中的作用。
3. 电路设计:根据数字万年历的功能要求,设计电路图,包括电路元件的连接方式和电路参数。
4. 电路焊接:按照电路图,将各个电子元件焊接在一起,确保电路的连通性。
5. 软件编程:编写微控制器的程序,实现万年历的各项功能,如时间显示、日期设置、农历查询等。
6. 系统调试:检查万年历的各项功能是否正常,对出现的问题进行调试和修复。
四、实训过程1. 硬件准备:首先,我们准备了一套数字万年历的组装套件,包括微控制器、液晶显示屏、时钟模块、按键、电源模块等。
2. 元件识别:在指导老师的讲解下,我们学习了各种电子元件的外观、符号、规格等,了解了它们在电路中的作用。
3. 电路设计:根据数字万年历的功能要求,我们设计了电路图,包括电路元件的连接方式和电路参数。
电路图设计完成后,我们将其打印出来,作为焊接的依据。
4. 电路焊接:按照电路图,我们将各个电子元件焊接在一起。
在焊接过程中,我们注意以下几点:a. 焊接前,检查元件的规格和引脚是否正确;b. 焊接时,控制好焊接时间,避免过热损坏元件;c. 焊接完成后,检查焊接点是否牢固,是否有虚焊现象。
项目二 数字万年历电路的组装与调试
项目一 调频收音机、对讲机的组装与调试 1. 识读电路原理图、装配图、印制板图
Байду номын сангаас2.根据电路图安装电路
1)核对元器件
2)检测元器件
(2)安装电路
(2)安装电路
(3)整机装配
• • • • • • • • •
• •
• •
3.调试电路 (1)通电前对电路板进行安全检测。 1)根据安装图检查是否有漏装的元器件或连接导线。 2)根据安装图或原理图检查三极管、耦合电容的极性安装是否正确。 3)检测信号源、12V直流电源是否正常。 4)测量直流稳压电源电路12V 直流电源连接点之间的电阻值。 5)完成以上检查后,接好信号源、12V直流电源即可进行测试。 (2)电路故障检测与分析 按信号流程顺序检测各个功能单元电路的输入信号、输出信号。若输 入信号正常,输出信号不正常说明该单元有故障。(检测信号电压或 波形) (3)示波器检测 首先检测直流电源、信号源工作是否正常。放大电路输入端有信号, 输出端无信号说明放大电路不工作。 (4)万用表检测 用万用表检测三极管发射极、基极、集电极的电位值,检测发射结、 集电极与发射机之间的电压,检测集电极电流。
数字万年历的焊接、安装3
及课时
学习内容
学生活动
教师活动
考评方法与
考评要素
教学活动1
下发工作任务,收集装配调试相关资料:
根据电子技术工艺基础完成稳压电源的制作
1.电子元器件分类
2.收集资料
①电子装配的准备工艺②手工焊接工艺③焊接质量检查
④电子线路的检测方法
3.准备工作
①工具,材料,图纸
②仪器,仪表
明确工作任务
查找电子技术工艺相关资料
3.检查焊接质量:目视检查,手触检查
4.整体外观检查,并修整:有无漏焊、错焊
5.电子线路检查:使用万用表测量各元器件连接性
6.通电检测,调试:有无输出,输出是否可调
7.清理现场
根据工作计划和工艺要求完成安装焊接。
检查焊接质量,检查电路是否正确,无安全隐患
在教师指导下通电检查,调试
工作完成后各小组安排清理现场
2.制定工作计划
3.进行装配、调试
4.成品验收、展示
5.总结与评价
作业布置
根据已完成的电路与原理图对照,复习工作原理,反思整体工作过程,加以改进
课后反思
在观察学生焊接工艺,其焊接手法与技巧还不熟练,没有达到预想的效果,训练不足。电子元器件安装有些学生不符合要求。学生对收集的资料和实操理解不够,需要在以后的工作中纠正和加强。
指导学生演示成品
根据学生展示,叙述的情况给予评价
教学活动5
总结与评价
1.各组总结工作过程,计划实施情况。
2.各组提出问题或改进意见
3.评价
小组成员讨论并总结工作
提问题,或者自己在工作中解决了哪些未考虑到的问题
自评、互评
听取学生总结,互相讨论评价
多功能万年历组装与调试
一、实训目的与要求:(1)、学会基本电子元器件的识别,熟悉一些常用电子器件的功能与作用。
(2)、掌握液晶显示电子万年历的组成和工作原理,学会分析基本的电路原理图。
(3)、学会利用电路原理图检查、处理电路故障、调试。
二、实训内容:(1)、掌握电烙铁的正确使用方法和基本的焊接技术,学会识别不同的元器件及其安装方法。
(2)、掌握液晶显示电子万年历的工作原理,学会识别电路原理图与印刷图、电容、电阻的识别与测试,进一步掌握和熟练焊接技术。
(3)、测试各元件的好坏,安装元件到电路板上,焊接断电并测试。
整机调试与验收。
三、软件和硬件设计:3、1 软件调试平台Keil for C51是美国Keil Software公司出品的C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,Keil C51软件还提供了丰富的库函数和功能强大的集成开发调试工具,生成的目标代码效率非常高,且容易理解。
C51开发中除了必要的硬件外,同样离不开软件,我们写的源程序要变为C51可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,但现在已极少使用手工汇编。
Keil提供了包括C编译器、宏汇编、连接线、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision2)将这些部分组合在一起。
如图下图所示。
3、2 系统软件程序(1)LCD1602液晶显示程序#include<reg51.h>sbit rs=P1^2;sbit rw=P1^1;sbit en=P1^0;sbit s1=P3^4;sbit s2=P3^5;sbit s3=P3^6;char miao,shi,fen;unsigned char code tab[]=" 2012-10-19 MON";unsigned char code tab1[]=" 00:00:00";void delay(unsigned int z){unsigned int x,y;for(x=z;x>0;x--)for(y=0;y<150;y++);}void write_com(unsigned char cmd){rs=0;rw=0;en=1;P2=cmd;en=0;delay(2);//当不检测忙标志信号时,每次至少需要2ms }void write_data(unsigned char dat){rs=1;rw=0;en=1;P2=dat;en=0;delay(2);//当不检测忙标志信号时,每次至少需要2ms }void init(){unsigned char num;write_com(0x38);write_com(0x08);write_com(0x01);write_com(0x0f);write_com(0x06);write_com(0x80);for(num=0;num<16;num++){write_data(tab[num]);}write_com(0x80+0x42);for(num=0;num<13;num++){write_data(tab1[num]);}TMOD=0X01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;}void main(){init();while(1);}3、3 系统硬件设计(1)LCD1602液晶显示四、LCD1602介绍:4、1 LCD1602引脚功能4、2 LCD1602硬件应用图4、3 LCD1602操作时序4、5 LCD1602内部RAM地址4、6LCD1602读/写操作时序图五、电子万年历功能状态说明:5、1 整点闹铃设置在正常时间状态下,按住“UP”键2秒以上将切换整点闹铃的关与开;注意低于2秒将显示年份。
数字万年历安装与调试
数字万年历安装与调试数字万年历安装与调试正确插件、良好焊接,优质元件、成熟电路是组装成功的保障。
1.安装顺序与要求:首先安装43只电阻和7个二极管,用剪下来的电阻或二极管的脚制作15条过线并焊接在板上,再焊圆片电容、三极管、数码管……;三只电解电容器和三端稳压器(7805)这四个件不能高过数码管的高度,所以应让这四个件平躺在电路板上焊接。
最后焊CPU芯片,焊CPU芯片时最好是断电焊接。
以防感应电压击穿CPU。
2.连接:①大板与小板用5P线连接,注意大、小板之间的连线要1连1、2连2……②用两条细线连大板与喇叭。
③变压器副边的两条线焊在标有AC12V的两个焊盘上,原边与电源线连接好,并用胶布包好确保安全。
3.通电调试:焊接完毕后,先不要装入机壳,平放在桌面上,将圆片电池推入电池卡,注意正极和电池卡连接,负极与其下边的一条过线连接。
接通电源,这时数码管显示出时间、喇叭也会给您播放一曲。
但是所显示的时间不是当时的时间,很可能显示:03年月日……。
这时按小板上的设置键,会看到“年份”闪烁,再按修改键,将年份调到当时的年份。
再按设置键,“月份”闪烁,按修改键将月份调正确。
再按设置键,“日期”闪烁,按修改键将日期调正确。
再按设置键,“小时”闪烁,按修改键将小时调正确。
再按设置键,“分钟”闪烁,按修改键将分钟调正确。
再按一下设置键,即时间调整完毕。
这时中间的两个发光管闪烁,即秒闪。
农历和星期自动跟踪。
4.定闹设定:按定闹键进入定闹设定状态,这时按设置键“小时”闪烁,按修改键设定小时。
再按设置键“分钟”闪烁,按修改键设定分钟,再按退出键恢复正常显示这时定闹指示灯常亮即定闹设置完毕。
5.取消定闹:按定闹键显示设定的定闹时间,这时连续按修改键直到时间显示“-:--”再按退出键定闹指示灯熄灭即定闹被取消恢复正常显示。
6.整点报时:在正常状态下按修改键,整点指示灯亮,表示整点报时已设定完毕。
再按一下修改键整点指示灯熄灭表示整点报时被取消。
多功能液晶显示万年历、温度计
实验报告实验名称:多功能液晶显示万年历、温度计的制作所在专业:测控技术与仪器学生姓名:班级学号:任课教师:陆婷2014 /2015 学年第一学期摘要:多功能液晶显示万年历、温度计具有造型美观、经济实用,性能稳定、耗电少等优点。
实验内容为学习PCB板的设计和绘制方法,完成一个多功能万年历、温度计的装配及调试。
一、设计目的:1. 了解并掌握多功能液晶显示万年历、温度计的主要工作原理,更好的理解和掌握平时所学的电子电路理论知识;2.认识贴片元件,学习贴片元件的装配方法和PCB板的设计和绘制方法;2.通过自己亲自动手装配,锻炼动手能力,提高学生解决实际电路问题的能力。
还能激发学生的好奇心。
二、基本功能说明:(1)液晶同屏显示年、月、日、星期、时、分、秒,正常走时状态下,外围电路设有一LED秒指示灯,每秒闪烁一次。
(2)开机画面显示3秒,显示相关制作信息3秒,清屏后进入正常走时状态。
(3)整点报时功能,早8点到晚10点,多首歌曲在整点时刻循环播放,每首歌曲的长度均控制在一分钟以内。
(4)公历和农历所有的节日提醒,均在屏幕最下面一行显示。
如果当天是某个节日,则显示相关节日信息,若当天无任何节日,则可显示当天的各个时段信息,如:凌晨、早晨、上午、中午、下午、晚上、夜里、深夜等。
(5)实时温度显示,精确到小数点后一位。
(6)时间调整:在正常走时状态下,按SET键进入时间调整界面,可以依次调节年、月、日、星期、时、分等信息,按CLK键退出当前的调整状态,恢复正常走时。
(7)闹钟调整:在正常走时状态下,按CLK键,进入闹钟设置界面,可以依次调节闹钟小时、闹钟分、闹钟开启和闹钟关闭。
当想要设置闹钟时,设置好小时、分之后,再按此键至闹钟开启,按SET键即可退出闹钟设定界面,闹钟设置完成,若不想使用闹钟,就按CLK 键至闹钟关闭状态时,再按SET键退出界面,则闹钟被关闭。
(8)外部电路设有扬声器开关,用户可根据需要自行开关扬声器。
多功能电子万年历的设计与实现
多功能电子万年历的设计与实现
随着科技的不断发展,电子产品的功能也越来越丰富,电子万年历也不例外。
在这篇文章中,我将介绍一款多功能电子万年历的设计与实现。
首先,我们需要确定这款电子万年历的主要功能,包括日期显示、时间显示、闹钟、倒计时器、计时器、温度计、天气预报等功能。
在确定主要功能后,我们需要选择合适的电子元件,并进行电路设计。
电路设计完成后,我们需要进行电路布局,并将电路板进行制造。
制造完成后,我们需要将电子元件焊接到电路板上,并进行测试,确保电子万年历的各项功能正常运行。
接下来,我们需要对电子万年历进行外壳设计。
在外壳设计中,我们需要考虑到电子万年历的外观、材质、尺寸等因素。
我建议选择轻质、坚固的材料制作外壳,并在外部加上透明塑料保护层,以防止碰撞和刮伤。
另外,我们还可以在外壳上添加按钮、开关等控制元素,使电子万年历更加易于使用。
最后,我们需要对电子万年历进行软件设计。
在软件设计中,我们需要实现日期、时间的显示,以及闹钟、倒计时器、计时器、温度计、天气预报等功能。
在软件设计中,我们需要考虑到用户的使用习惯,设计出简单易用、功能强大的界面,并加入音乐、提示等元素,以方便用户使用电子万年历。
总的来说,多功能电子万年历的设计与实现需要进行电路设计、外壳设计、软件设计等多个环节,并需要选择合适的电子元件、
材料等。
在设计过程中,我们需要不断地优化和改进,以满足用户的需求和期望。
最终,我们将获得一款外观精美、功能强大的多功能电子万年历。
万年历硬件软件调试
硬件调试:1:观察检查原理图和焊接实物是否相同,观察焊点有无短路现象。
2:空板测试在没有放置任何芯片的基础上(除焊接上去的),将万用表调到电阻档,先测量电源和地两个引脚之间的电阻(大约在千欧级别以上),若电阻很小则返回检查硬件电路有无问题软件仿真测试用PROTUES对其进行仿真,其效果和实物很接近。
在编写软件时,和搭积木一样。
先做人机接口,这样对程序的控制、流程走向、会出现的软件错误都会有个大概了解。
比如在做1602时,先在指定的位置显示自己想要的字符,再做成函数形式,可供其他函数调用。
18B20是一个对时序要求非常严格的器件,所以在编写18B20的时序时,参考了其数据手册,也参考了网上很多的程序,最终自己编写出比较合适的程序。
在指定的位置显示了当前的温度,也可以测负温度的,这个是网上很少有的。
DS1302也是一个对时序要求很严格的器件,也参考了数据手册和一定的源程序。
还有一个要注意的地方就是DS1302内存储的时间、日期都是二进制BCD码,为此需要编写二进制码和BCD码互相转换的函数。
加上3V备份电池后就可以掉电保护数据并按照指定的格式显示时间和日期。
后来也想在里面添加一个闹钟功能,也就在程序里加了这一块。
具体的要和按键模块连接起来。
3:软硬件联调通过下载器把软件下载到单片机中,并对进行检测,一开始在笔记本上还是很稳定的,不过后来用了手机充电器做了电源,发现时间乱码了,然后又拿到笔记本的USB口进行操作,一会儿稳定一会儿乱码。
想了很久都想不通,最后在网站论坛里发了帖子等待回复,最终在网友的提示下,突然发现仿真非常稳定,而实物有问题,然后把问题集中在DS1302上了,还是在找了很多网页的基础上,在DS1302的数据口加了10K的上拉电阻,然后用了手机充电器做电源,虽然1602显示的有点暗,不过数据非常稳定的在跳动。
就此,系统调试整机完成,剩下的就是对程序做一些更详细的注释,格式的调整。
看似简单的一个万年历,实现起来却费了好大的功夫,不仅是在硬件设计上,还是在软件设计与调试上,都有着很多的技巧在里面。
