基于stc89c52单片机的电子时钟日历---单片机课程设计报告附代码内容摘要:
计过程 设计电路图,并根据所设计电路图 和单片机工作原理,为实现电子钟附带日历及复位功能,在书上查找资料程序,并自己进行编程。 经反复调试 和修改,最终编译通过, proteus 仿真成功, LCD 显示器能根据 程序要求来显示时间并可通过开关进行显示位的选择和时间的加减,而且按复位键可以回到初始设置,即程序中设计的 2020518 WED 23:59:20。 将所编程序置入单片机内,并按照所设计电路图在面包板上连线。 经反复连线、检查元件、检查线路、检验程序,最终终于演示通过。 按照电路图,将各元器件焊接在电路板上,再 用万用表检验线路 是否有空焊、短路等情况,进一步处理。 显示器正常显示 时间 , 并能达到预期目标。 课程设计完成。 个人主要工作及遇到问题 在本次课程设计中 我主要负责 软件方面的程序的查找修改和硬件方面的焊接工作。 过程中遇到了各种问题。 程序的主体是查找资料得出的,中间加入了自己的修改。 但是在改动过程中,几次运行不成功。 经多次检查和修改,向同学请教,最终编译通过。 Proteus 仿真过程是另一同学完成的。 在硬件方面,另一同学负责排线布局,我负责手工焊接。 在面包板上几次调试都不成功,显示器亮的却不显示数字。 曾怀疑线路连错、元器件有损坏、背光没有调好等问题,后经一一排除。 接着就用万用表测每条线路是否正常,终于发现有些应该是高电平却不是,经过分析讨论 ,认为可能是有接触不良。 后借了其他组的面包板尝试,几经波折,终于演示成功。 焊接过程也是很容易出错。 焊好后 接通电源 ,显示屏不亮,经检查,发现有 一 处短路。 稍作处理后,我们 努力了 12 一个星期的 电子时钟 就成功了。 成果展示 ( 焊接工艺与排线布局) 13 七、 课程设计总结思考与致谢 我们进行了 为期 两周 的课程设计 成功结束了 ,时间虽短, 但收获颇多。 这次的课程设计,是一个 崭新 的体验, 是一个学习的平台,是一次兴趣的启迪, 是尝试着自己 动手实践 的开始, 是现实与需求之间差距的体现,也是一个认识与改变的过程。 安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。 尤其是观察、分析和解决问题的实际工作能力。 作为整个学习体系的有机组成部分,课程设计虽然安排在两周进行,但并不具有绝对独立的意义。 它的一个重要功能,在于运用学习成果,检验学习成果。 运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对 性的建议和设想。 检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。 对于我们理工类的本科生来说,实践能力如何是至关重要的。 而这种能力在课堂上是学习不到的,必须从书本走向实践。 无论课本上的原理如何经典,课文中的描述如何生动,我们都只能理解,只能想象。 可是这次的课程设计让我们拥有了一个全新的体验,与课堂完全不同,是一种耳目一新的感觉。 许多人见看那些小小的元器件会说出:“原来这就是电容啊”“原来电阻这么小” “原来这又四十 个引脚的小芯片就是我们所学的单片机啊”。 有人说兴趣是最好的老师。 那么我想,在那一刻,许多人的兴趣都被激发出来了。 课程设计 过程中 ,我们也 遇到了各种 各样 问题,在面包板上几次调试都不成功,显示器亮的却不显示数字。 曾怀疑 线路连错、元器件有损坏、背光没有调好等问题,后经一一排除。 接着 用万用表测每条线路是否正常,终于发现有些应该是高电平却不是, 有些该有电压差却没有, 经过分析讨论,认为可能是有接触不良。 后借了其他组的面包板尝试,几经波折,终于演示成功。 在设计中我主要负责的是硬件布线、焊接工作。 无论是布线还是焊接都是精 细的活,且他们的重要性是相当的。 布线布的好,焊接起来不但整体布局美观, 14 同时能省时省力,而且减少空焊 、落焊的几率。 焊接确实要精中有细。 在其他的组中都是男生在焊接,因为也许他们认为拿着烙铁焊东西不适合女生做,我却不这么认为。 男生粗手粗脚,不细心,这样的活交给他们很可能会焊成一片,在我的自告奋勇下,带着组员的信任,我把事先布好的导线与引脚一个一个的焊好。 不只要细,还要精、稳,每次焊接结束时抬手要果断迅速。 我觉得只要心细、手稳,焊接一点都不难。 焊好后接电源,起初不亮,经检查有一处短路,稍作处理,我们的显示就 正常了。 成功的心情自然愉快,我焊好的板子在班级里几乎是最漂亮、问题最少的,为此我也窃喜了一下。 课程设计达到了专业学习的预期目的。 在一 个 多 星期的课程设计之后,我们普遍感到不仅实际动手能力有所提高, 而且 掌握单片机开发编程设计的基本流程,了解 Keil 及 Proteus 软件的基本使用,了解 LCD 的基本使用,并且学习了单片机硬件制作。 在课程实际和制作过程中 进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。 通过这次课程设计,我们也看到了自身状况与现实需要的差距,有了这样的认识, 便于我们在今后的学习中及时补充和调整。 我相信这次课程设计会对我以后的工作会有很大程度的益处,在此还要 感谢学院为我们提供这次机会,感谢 王子涵 老师的用心指导。 八、参考文献 15 附录 1:(程序) include define uchar unsigned char void write_hms(uchar,uchar)。 void time_setup()。 uchar a,count,hh,mm,ss,year,year0=20,year1=11,mon=5,day=18,flagy,flagw=3,flagk。 uchar code table0[]= 20200518 WED。 uchar code table1[]= 00:00:00。 sbit RS=P2^0。 // 数据 /命令选择端 (H/L) sbit LE=P2^1。 // 使能信号 sbit kfun=P2^2。 //功能键 sbit kadd=P2^3。 //增加 sbit ksub=P2^4。 //减少 void delay(uchar z) {uchar x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } void write_(uchar ) {RS=0。 //写命令 P0=。 delay(5)。 LE=1。 delay(5)。 LE=0。 } void write_data(uchar Data) {RS=1。 //写数据 P0=Data。 delay(5)。 LE=1。 delay(5)。 LE=0。 } void init() {LE=0。 //初始化使能信号 write_(0x38)。 //设置显示模式 write_(0x0c)。 //显示开关、光标设置 write_(0x06)。 //屏幕移动操作 write_(0x80)。 //写入数据地址 16 write_(0x01)。 //清屏 //写入初始化显示值 write_(0x80)。 for(a=0。 a15。 a++) {write_data(table0[a])。 delay(5)。 } write_(0x80+0x40)。 for(a=0。 a12。 a++) {write_data(table1[a])。 delay(5)。 } TMOD=0x01。 //开启定时器 T0 中断 TH0=(6553650000)/256。 TL0=(6553650000)%256。 EA=1。 ET0=1。 TR0=1。 hh=23。 mm=58。 ss=56。 year=year0*100+year1。 flagy=(year%4==0amp。 amp。 year%100!=0)||(year%400==0)。 write_hms(0x40+3,hh)。 write_hms(0x40+6,mm)。 write_hms(0x40+9,ss)。 } void write_hms(uchar addr,uchar Data) //显示:年、月、日、十、分、秒 {uchar shi,ge。 shi=Data/10。 ge=Data%10。 write_(0x80+addr)。 write_data(0x30+shi)。 write_data(0x30+ge)。 write_(0x80+addr)。 }。基于stc89c52单片机的电子时钟日历---单片机课程设计报告附代码
相关推荐
智能控制的人工神经网络控制方向上,基于人工神经网络和模糊逻辑有机结合的神经模糊技术,已成为近年来的一个热门课题。 国内外智能照明发展概况 “智能建筑”是综合计算机、信息通信等方面最先进 的技术,使建筑物内的电力、空调、照明、防灾、防盗、运输设备等,实现建筑物综合管理自动化、远程通信和办公自动化的有效运作,并使这三种功能结合起来的建筑。 人工智能技术在建筑与照明中的应用趋势不断扩大。 正如英国的
液晶模块内部的控制器共有 11 条控制指令,丰富的指令可以完成液晶的时序控制、工作方式设置和数据显示等。 采用的 LCD1602 液晶模块是标准 16 针插座,接口电路如图 26 所示,及各引脚说明如表 26 所示。 11 61 51 41 31 21 11 098675432V S SER / WR SV LV D DD 2D 1D 0D 7D 6D 5D 4D 3B L KB L A1 6
15 int new_fd,sockfd1。 struct sockaddr_in client_addr。 sockfd1=*((int *)fd)。 int sin_size=sizeof(struct sockaddr_in)。 //循环接收连接 while(1){ new_fd=my_accept(sockfd1,(struct sockaddr *)amp。 client_addr
运行。 MCGS嵌入版组态软件分为人机界面组态和控制流程组态两部分,用户可以根据实际情况裁减所需内容。 其中人机界面组态与通用版类似,可以组态出动画窗口、曲线、报表,并可以设置用户权限,安全级别等等。 控制流程组态是嵌入式组态系统特有的功能,主要用于组态实现各种控制流程和控制逻辑。 系统提供了丰富的功能模块和控制逻辑,来帮助用户快速的实现各种控制功能,是构成用户应用系统实时控制的核心。
给水要求还有一定难度。 但国外 EDI技术已经应用在大型火力发电厂、核电厂,而且运行的出水水质、稳定性都能满足生产运行的需要。 因而,作为一种环保 、清洁、可以连续再生运行的纯水处理技术, EDI代表了水处理技术未来的一种发展趋势,具有广阔的应用前景。 主要设备的组成及控制方式 系统的设备组成如表。 表 设备组成 设备名称 数量 增压泵 3 高压泵 2 多介质过滤器 1 活性炭过滤器 1
mp) { flag=1。 _BIC_SR_IRQ(LPM2_bits)。 } } pragma vector=PORT1_VECTOR __interrupt void port1(void) { P1IFGamp。 =~BIT3。 keydownflag=1。 _DINT()。 //关闭总中断 _BIC_SR_IRQ(LPM2_bits)。 } pragma