欢迎来到天天文库
浏览记录
ID:55266095
大小:261.00 KB
页数:9页
时间:2020-05-08
《电子工艺实习总结报告 李建新.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电子工艺实习总结报告学院电子信息工程学院专业电子科学与技术课程名称电子工艺实习班级2班学号3009204037姓名李建新2011年11月17日自主实习题目、任务要求、技术指标自主实习题目:电子万年历的设计与制作任务要求:能显示年月日时分秒及星期,并且可以调节日期和时间的功能。技术指标:通过软件编程的方法实现了以24小时为一个周期同时显示小时,分钟和秒,DS1302提供时钟;LCD液晶显示屏作为显示。元器件测试序号名称标称值实测值序号名称标称值实测值1液晶显示屏2单片机AT89C513时钟芯片DS13024锁存器74HC3735与非门74HC00674HC047
2、晶振32.768KHz8普通电容22pf9有极电容10uf10电阻10K设计电路的工作原理简单的说系统主要由主控制器单片机,显示电路,时钟电路。本次设计利用时钟日历芯片DS12887的特性和AT89C51单片机的功能利用实现的。时钟芯片在电源的作用下向通过P2口向AT89C51单片机输入时间信号,AT89C51单片机在接受到时间信号后通过P0将信号送到单片机另一扩展芯片ULN2003,驱动液晶显示屏显示时间程序代码为#include/**********************ds1302与at89s52引脚连接***************
3、*****/sbitT_RST=P3^5;sbitT_CLK=P3^6;sbitT_IO=P3^7;sbitACC0=ACC^0;sbitACC7=ACC^7;unsignedcharseg[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};//0~~9段码/******************DS1302:写入操作(上升沿)********************/voidwrite_byte(unsignedcharda){unsignedchari;ACC=da;{for(i=8;i>0;i--)
4、T_IO=ACC0;T_CLK=0;T_CLK=1;ACC=ACC>>1;}}/******************DS1302:读取操作(下降沿)*****************/unsignedcharread_byte(void){unsignedchari;{for(i=0;i<8;i++)ACC=ACC>>1;T_CLK=1;T_CLK=0;ACC7=T_IO;}return(ACC);}/***********DS1302:写入数据(先送地址,再写数据)*************/voidwrite_1302(unsignedcharaddr,u
5、nsignedcharda){T_RST=0;//停止工作T_CLK=0;T_RST=1;//重新工作write_byte(addr);//写入地址write_byte(da);T_RST=0;T_CLK=1;}/************DS1302:读取数据(先送地址,再读数据)**************/unsignedcharread_1302(unsignedcharaddr){unsignedchartemp;T_RST=0;//停止工作T_CLK=0;T_RST=1;//重新工作write_byte(addr);//写入地址temp=read_b
6、yte();T_RST=0;T_CLK=1;//停止工作return(temp);}/*******************延时程序=a*1ms*****************************/voiddelay(unsignedchara){unsignedchari;while(a--!=0){for(i=0;i<125;i++);}}/***********************显示程序*******************************/voiddisplay_scan(ucharadd,uchardate){ucharsw,gw
7、;sw=date/10;gw=date%10;write_com(0x80+add,1);write_date(0x30+sw);write_date(0x30+gw);}voidweek_display(){ucharj;write_com(0x80+0x40+11,1);switch(xin){case1:for(j=0;j<3;j++){write_date(date1[j]);}break;case2:for(j=0;j<3;j++){write_date(date2[j]);}break;case3:for(j=0;j<3;j++){write_da
8、te(date3[j]);}break
此文档下载收益归作者所有