数码管万年历实习报告

时间:2019-05-14 20:12:52下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《数码管万年历实习报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《数码管万年历实习报告》。

第一篇:数码管万年历实习报告

河南机电高等专科学校

综合实训报告

系 部: 专 业: 班 级: 学生姓名: 学 号:

2013年 6月 28日

实训任务书

1.时间:2013年6月15日~2013年6月28日 2.实训单位:河南机电高等专科学校 3.实训目的:深入学习电子产品设计制作的全过程 4.实训任务:

①加深学习电路图绘制软件的相关常识及其特点; ②以51单片机为核心设计出一个LED万年历;

③万年历具有年份、月、日、时、分、秒、周、温度、整点报时等功能; ④自己独立完成设计电路图,生成PCB,转印、腐蚀电路板,焊接等硬件制作工作;

⑤会使用keil软件编写程序,并完成烧写过程; ⑥学会调试程序,敢于发现问题,解决问题; ⑦参考相关的的书籍、资料,认真完成实训报告。

综合实训报告

前言:

万年历是我们经常见到和使用的计时工具,使用方便,功能多。但自己做一个让人满意的万年历,就不一定有那么轻而易举了,本次实训的任务就是自己亲手做一个万年历。利用本学期学过的单片机知识,设计出具有显示年、月、日、时、分、秒、周、温度功能,同时有整点报时的功能的万年历。

一、实训器件

1.温度传感器DS18B20 采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以避免A/D模数转换模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。因此,本设计DS18B20温度传感器作为温度采集模块。

2.时钟芯片DS1302 采用DS1302时钟芯片实现时钟,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。具有主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。因此,本设计中采用DS1302提供时钟。

3.74LS154 74LS154 为 4 线-16 线译码器,其主要电特性的典型值如下:

当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。若将G1和G2中的一个作为数据输入端,由ABCD对输出寻址,54/74154 还可作4线-16线数据分配器。

引出端符号: A、B、C、D 译码地址输入端(低电平有效)G1、G2 选通端(低电平有效)0-15 输出端(低电平有效)可用此种芯片作为数码管的选址芯片。4.74HC573 74HC573是八进制3态非反转透明锁存器,是高性能硅门CMOS器件。当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。输出能直接接到 CMOS,NMOS和 TTL接口上操作电压范围:2.0V~6.0V×低输入电流: 1.0uA。本实训采用此芯片作为数码管的驱动芯片。

5.数码管

本实训使用共阴极数码管作为显示器件,采用 LED 数码管动态扫描,LED 数 主电路PCB: 码管价格适中,对于显示数字也最合适。

综上各模块的选择方案与论证,确定最后的主要硬件资源如下:采用AT89S51作为主控制系统;DS1302提供时钟;DS18B20作为数字式温度传感器;74LS154作为选址芯片;74HC573作为数码管的驱动芯片;共阴极数码管显示数字;S8550驱动扬声器。

二、实训原理

为了使万年历在包装美化时简单化及布线的方便,我将万年历分为两部分,一部分是主体部分含有年份、月、日、时、分、秒,另一部分是小模块包含周、温度。

电路图如下:

主电路图:

***9485*********2930******203919343338***61635***33212*********6545516251724***1 周,温度电路图: 周,温度PCB:

***061

三、程序编写

使用Keil软件编写程序。程序包括主函数、时间显示函数、温度显示函数、时间调整函数、DS18B20模块、DS1302模块和周计算函数等。

程序的编写使我熟练的掌握了Keil软件的应用。具体程序见附录。

四、程序的烧写与调试

程序烧写需要用专用的烧写软件将Keil软件声生成的.hex文件写进单片机里。经过多次的程序的改写与调试,最终制作出比较满意的成品。

五、成品展示:

心得体会: 经过此次实训我学到了很多,刚开始以为做万年历很难,着手开始做这个产品没有一点头绪,经过上网查资料,产生了最初的制作框架,然后就开始找芯片,查芯片资料,设计电路图,又请同学帮忙指点,修改原理图。接着买元器件,做封装,生成PCB,制作电路板,焊接元器件,最后完成了整个硬件部分的制作。完成了硬件制作后,我又编了测试软件测试硬件是否有问题,发现数码管不亮,经过问题排查及资料查询,发现单片机P0口缺少了上拉电阻,接上后,解决了问题。

编程也是比较困难的,由于掌握的知识不够多,借鉴了别人的程序,并加入自己的想法,经过调试,程序编写成功。最终完成了产品的制作。在实习的过程中我得到了别人的帮助,同时也主动帮助别人,得到了很多经验,为以后学习提供了方便。实习就是学习的过程,本次实习是最成功的一次,也是学到最多的一次。参考文献:

《单片机C51程序设计教程与实验》 北京航空航天大学出版社 《单片机原理及应用(C51语言)》 清华大学出版社 《数字电子技术》 黄河水利出版社 《Protel DXP 2004电路设计与仿真教程》 北京航空航天大学出版社 附录: 程序

万年历.c #include #include #define uchar unsigned char #define uint unsigned int uchar code digit[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39,0x00};

uchar mode,TH,TL,TN,seconds,minutes,hours,years,months,days,WEEK,n;

uchar count=0;sbit SET=P3^4;

sbit ADD=P3^5;//增加

sbit RED=P3^6;//减小

sbit CANL=P3^7;sbit le=P2^6;sbit oe=P2^7;sbit en=P1^4;

sbit beep=P2^4;

uchar GetWeekFromDay(uchar years,uchar months,uchar days);

void WriteSet1302(uchar cmd,uchar date);

uchar ReadSet1302(uchar cmd);

void ReadyreadDS18B20(void);

uchar ReadDS18B20(void);void IntDS1302(void);

void delay1ms(uint x){ uchar i,j;for(i=x;i>0;i--)for(j=124;j>0;j--);} void delaynus(uchar n)//延时若干微秒

{

while(n--);} void display_Year(year)//显示年

{

uchar i,j;i=year/10;j=year%10;P0=digit[2];P1=8;delay1ms(2);P0=digit[0];P1=9;delay1ms(2);P0=digit[i];P1=10;delay1ms(2);P0=digit[j];P1=11;delay1ms(1);} void display_Month(month)//显示月

{ uchar i,j;i=month/10;j=month%10;P0=digit[i];P1=6;delay1ms(2);P0=digit[j];P1=7;delay1ms(1);} void display_Day(day)//显示日

{ uchar i,j;i=day/10;j=day%10;P0=digit[i];P1=4;delay1ms(2);

P0=digit[j];P1=5;delay1ms(1);} void display_Hour(hour)//显示时

{ uchar i,j;

i=hour/10;j=hour%10;P0=digit[i];P1=2;delay1ms(2);P0=digit[j]+n*0x80;P1=3;delay1ms(1);}

void display_Minute(minute)//显示分

{ uchar i,j;i=minute/10;j=minute%10;P0=digit[i];P1=0;delay1ms(2);P0=digit[j];P1=1;delay1ms(1);} void display_Week(void)//显示周{ WEEK=GetWeekFromDay(years,months,days);

P1=12;switch(WEEK){

case 1:P0=digit[1];

delay1ms(2);

break;

case 2:P0=digit[2];

delay1ms(2);

break;

case 3:P0=digit[3];

delay1ms(2);

break;

case 4:P0=digit[4];

delay1ms(2);

break;

case 5:P0=digit[5];

delay1ms(2);

break;

case 6:P0=digit[6];

delay1ms(2);

break;

case 7:P0=digit[8];

delay1ms(2);

break;

} }

void display_Time(void)//显示实时时间

{ uchar value;value=ReadSet1302(0x83);minutes=(((value&0x70)>>4)*10+(value&0x0f));display_Minute(minutes);value=ReadSet1302(0x85);hours=(((value&0x70)>>4)*10+(value&0x0f));display_Hour(hours);value=ReadSet1302(0x87);days=(((value&0x70)>>4)*10+(value&0x0f));display_Day(days);value=ReadSet1302(0x89);months=(((value&0x70)>>4)*10+(value&0x0f));display_Month(months);value=ReadSet1302(0x8D);years=(((value&0xf0)>>4)*10+(value&0x0f));display_Year(years);display_Week();} /*****************时间调整部分*********************/

void hourset(void)//调时

{ uchar timevalue,hour;

delay1ms(500);//防止多次触发

WriteSet1302(0x8e,0x00);//将写保护去掉,确保能正常将调整后的数值写入DS1302

timevalue=ReadSet1302(0x85);//读取此时的数值

hour=(((timevalue&0x70)>>4)*10+(timevalue&0x0f));while(1){

if(ADD==0)

{

delay1ms(20);

if(ADD==0)

{

hour++;

delay1ms(100);

while(ADD==0);

}

}

if(RED==0)

{

delay1ms(20);

if(RED==0)

{

hour--;

delay1ms(100);

if(hour==0)hour=23;

while(RED==0);

}

}

if(hour>=24)hour=0;

timevalue=(((hour)/10)<<4|(hour%10));

WriteSet1302(0x84,timevalue);

delay1ms(2);

display_Hour(hour);

delay1ms(10);

if(CANL==0)

{

mode=0;

break;

}

if(SET==0)break;} WriteSet1302(0x8e,0x80);} void minuteset(void)

//调分

{ uchar timevalue,minute;delay1ms(500);WriteSet1302(0x8e,0x00);timevalue=ReadSet1302(0x83);minute=(((timevalue&0x70)>>4)*10+(timevalue&0x0f));while(1){

if(ADD==0)

{

delay1ms(20);

if(ADD==0)

{

minute++;

if(minute>=60)timevalue=0;

while(ADD==0);

}

}

if(RED==0)

{

delay1ms(10);

if(RED==0)

{

minute--;

if(minute==0)minute=59;

delay1ms(300);

while(RED==0);

}

}

if(minute>=60)minute=0;

timevalue=((minute/10)<<4|(minute%10));

WriteSet1302(0x82,timevalue);

delay1ms(2);

display_Minute(minute);

delay1ms(10);

if(CANL==0)

{

mode=0;

break;

}

if(SET==0)break;} WriteSet1302(0x8e,0x80);}

void yearset(void)

//调年

{ uchar datevalue,year;delay1ms(500);WriteSet1302(0x8e,0x00);datevalue=ReadSet1302(0x8d);year=(((datevalue&0x70)>>4)*10+(datevalue&0x0f));while(1){

if(ADD==0)

{

delay1ms(20);

if(ADD==0)

{

year++;

while(ADD==0);

}

}

if(RED==0)

{

delay1ms(20);

if(RED==0)

{

year--;

delay1ms(100);

while(RED==0);

}

}

datevalue=((year/10)<<4|(year%10));

WriteSet1302(0x8c,datevalue);

delay1ms(5);

display_Year(year);

delay1ms(5);

if(CANL==0)

{

mode=0;

break;

}

if(SET==0)break;} WriteSet1302(0x8e,0x80);} void monthset(void)

//调月

{ uchar datevalue,month;delay1ms(500);WriteSet1302(0x8e,0x00);datevalue=ReadSet1302(0x89);month=(((datevalue&0x70)>>4)*10+(datevalue&0x0f));while(1){

if(ADD==0)

{

delay1ms(20);

if(ADD==0)

{

month++;

if(month>12)month=1;

while(ADD==0);

}

}

if(RED==0)

{

delay1ms(20);

if(RED==0)

{

month--;

delay1ms(100);

if(month==0)month=12;

while(RED==0);

}

}

datevalue=((month/10)<<4|(month%10));

WriteSet1302(0x88,datevalue);

delay1ms(5);

display_Month(month);

delay1ms(5);

if(CANL==0)

{

mode=0;

break;

}

if(SET==0)break;} WriteSet1302(0x8e,0x80);} void dayset(void)

//调日

{ uchar datevalue,day;delay1ms(500);WriteSet1302(0x8e,0x00);datevalue=ReadSet1302(0x87);day=(((datevalue&0x70)>>4)*10+(datevalue&0x0f));while(1){

if(ADD==0)

{

delay1ms(10);

if(ADD==0)

{

day++;

if(day>31)day=1;

while(ADD==0);

}

}

if(RED==0)

{

delay1ms(10);

if(RED==0)

{

if(day==0)day=31;

day--;

delay1ms(300);

while(RED==0);

}

}

datevalue=((day/10)<<4|(day%10));

WriteSet1302(0x86,datevalue);

delay1ms(5);

display_Day(day);

delay1ms(5);

if(CANL==0)

{

mode=0;

break;

}

if(SET==0)break;} WriteSet1302(0x8e,0x80);} void TimeSet(void)

//时间调整函数

{ if(SET==0){

delay1ms(20);

if(SET==0)

{ while(!SET);

mode++;

delay1ms(20);

switch(mode)

{

case 1:{yearset();delay1ms(20);}

break;

case 2:{monthset();delay1ms(20);} break;

case 3:{dayset();delay1ms(20);}

break;

case 4:{hourset();delay1ms(20);} break;

case 5:{minuteset();delay1ms(20);} break;

}

if(mode==5)mode=0;

} } } /***************显示温度模块********************/ uchar flag;/*********************显示温度整数部分*************************/ void Display_Integer(unsigned char x){

uchar s,g;s=x%100/10;g=x%10;P0=digit[s];P1=13;delay1ms(3);P0=digit[g]+0x80;P1=14;delay1ms(3);P0=digit[10];P1=15;delay1ms(1);}

void display_Temperature(void){

ReadyreadDS18B20();

TL=ReadDS18B20();

TH=ReadDS18B20();

if((TH&0XF8)!=0X00)

{

flag=1;

TL=~TL;

TH=~TH;

TL+=1;

if(TL>255)TH+=1;

TN=TH*16+TL/16;

}

TN=TH*16+TL/16;

Display_Integer(TN);} /**************** 设置模块 ******************/

void Set(void){ if(SET==0){

delay1ms(5);

if(SET==0)

{

delay1ms(50);

while(1)

{

TimeSet();

if(CANL==0)

{

break;

}

}

} } } void InitTimer0(void){

TMOD = 0x01;

TH0 = 0x3C;

TL0 = 0x0B0;

EA = 1;

ET0 = 1;

TR0 = 1;} /***************主函数**********************/

void main(){ int i;P0=0;InitTimer0();IntDS1302();

//初始化DS1302 delay1ms(5);le=1;oe=0;en=0;delay1ms(200);beep=1;while(1){

for(i=1000;i>0;i--)

{

Set();

display_Time();

Display_Integer(TN);

if(hours==7||hours==8||hours==9||hours==10||hours==11||hours==12

||hours==14||hours==15||hours==16||hours==17||hours==18||hours==19

||hours==20||hours==21||hours==22)

{

if(minutes==0x00)

{

uchar value,w,k;

value=ReadSet1302(0x81);

seconds=(((value&0x70)>>4)*10+(value&0x0f));

if(seconds>0&&seconds<2)

{

for(k=5;k>=0;k--)

{

for(w=100;w>0;w--)

{

beep=0;

delay1ms(3);

beep=1;

delay1ms(3);

}

delay1ms(1000);

}

}

else beep=1;

}

}

}

display_Temperature();

}

} void t0()interrupt 1 { TH0 = 0x3C;

TL0 = 0x0B0;count++;

if(count==10){n=0;

} if(count==20){ count=0;

n=1;

} } /*******DS1302模块*************/ sbit SCLK=P2^0;//DS1302时钟输入

sbit DATE=P2^1;//DS1302数据输入

sbit REST=P2^2;//DS1302复位端口

void Write1302(uchar date)//向1302写数据 {

uchar i;SCLK=0;delaynus(2);for(i=0;i<8;i++){

DATE=date&0x01;

SCLK=1;

delaynus(2);

SCLK=0;

delaynus(2);

date>>=1;} } void WriteSet1302(uchar cmd,uchar date)//根据相应的命令输入相应的数据

{

REST=0;

SCLK=0;

REST=1;

Write1302(cmd);

delaynus(5);

Write1302(date);

SCLK=1;

REST=0;} uchar Read1302(void)//读取1302数据

{

uchar i,date;delaynus(2);for(i=0;i<8;i++){

date>>=1;

if(DATE==1)

date|=0x80;

SCLK=1;

delaynus(2);

SCLK=0;

delaynus(2);} return date;

} uchar ReadSet1302(uchar cmd)//根据命令读取1302相应的值 { uchar date;REST=0;SCLK=0;REST=1;Write1302(cmd);delaynus(2);date=Read1302();SCLK=1;REST=0;return date;} void IntDS1302(void)//DS1302初始化 {

uchar flag;

flag= ReadSet1302(0x81);if(flag&0x80)

//判断时钟芯片是否关闭

{

WriteSet1302(0x8E,0x00);

//根据写状态寄存器命令字,写入不保护指令

WriteSet1302(0x80,((0/10)<<4|(0%10)));

//根据写秒寄存器命令字,写入秒的初始值

WriteSet1302(0x82,((0/10)<<4|(0%10)));

//根据写分寄存器命令字,写入分的初始值

WriteSet1302(0x84,((0/10)<<4|(0%10)));//根据写小时寄存器命令字,写入小时的初始值

WriteSet1302(0x86,((0/10)<<4|(0%10)));//根据写日寄存器命令字,写入日的初始值

WriteSet1302(0x88,((0/10)<<4|(0%10)));//根据写月寄存器命令字,写入月的初始值

WriteSet1302(0x8c,((10/10)<<4|(10%10)));//根据写年寄存器命令字,写入年的初始值

WriteSet1302(0x90,0xa5);

//打开充电功能 选择2K电阻充电方式

WriteSet1302(0x8E,0x80);

//根据写状态寄存器命令字,写入保护指令

} } /**********************操作DS18B20模块***************************/ sbit DQ=P2^3;

uchar time;void delayms(uchar x){ uchar i,j;for(i=x;i>0;i--)for(j=124;j>0;j--);} /**********************DS18B20初始化****************************/ bit IntDS18B20(void){ bit temp;DQ=1;for(time=0;time<2;time++);DQ=0;for(time=0;time<200;time++);DQ=1;for(time=0;time<10;time++);temp=DQ;for(time=0;time<200;time++);return temp;} /**************************读DS18B20**********************/ uchar ReadDS18B20(void){ uchar dat,i;for(i=0;i<8;i++){

DQ=1;

_nop_();

DQ=0;

_nop_();

DQ=1;

for(time=0;time<2;time++);

dat>>=1;

if(DQ==1)

dat=dat|0x80;

else

dat=dat|0x00;

for(time=0;time<10;time++);} return dat;} /*********************向DS18B20写数据**************************/ void WriteDS18B20(uchar date){

uchar i;for(i=0;i<8;i++){

DQ=1;

_nop_();

DQ=0;

DQ=date&0x01;

for(time=0;time<10;time++);

DQ=1;

for(time=0;time<1;time++);

date>>=1;

} for(time=0;time<4;time++);} /*******************为读取温度做好准备************************/ void ReadyreadDS18B20(void){ IntDS18B20();WriteDS18B20(0XCC);WriteDS18B20(0X44);IntDS18B20();WriteDS18B20(0XCC);WriteDS18B20(0XBE);} // 计算2000~2099年任一天星期几

// year

: 00-99 // month: 01-12 // day

: 01-31

uchar GetWeekFromDay(uchar years,uchar months,uchar days){

if(months == 1 || months == 2)

{

months+=12;

if(years> 0)

years--;

else

years;

}

return(1+((days + 2*months + 3*(months+1)/5 + years + years/4)%7));//(星期一用1表示,而星期天用7表示)}

// 返回星期几

第二篇:LED数码管车间实习报告

LED数码管生产车间实习报告

2011年1月4日至1月11日至LED电子生产车间学习,主要学习生产工艺流程以及熟悉车间。

我进入车间的第一步就是了解产品生产工艺流程,工艺流程一共有五个工序,以下是工艺流程。

a零部件组装→固芯→压焊→封装→总测、包装

零部件组装及清洗:

组装:根据配送单到材料部领零件组装,即把pin针装入PC板中,并进行压板。压板完成后,品管部按比例抽检产品,抽检合格后,送到清洗部门去清洗。

清洗:利用洗洁精和超声波进行清洁,主要去除灰尘,油污,然后烘干1小时,再进行抽检。

零部件组装有自动和手工的两种。

b固芯:把芯片和银胶固定在pc板中。材料:银胶,芯片,模。固芯有手动和自动化。

固芯之前首先要进行扩晶,把密密麻麻的芯片分开一点以便于后续的固晶。接下来就是固芯,手动固芯是利用显微镜把芯片放置在PC板上。

固芯之后送入烘烤间烘烤,目的让芯片固定在PC板中,以便压丝。

c压焊:把丝线固定在芯片上,一边固定在芯片上,一边固定在PC板上。压焊之后在进行初测,检验指示灯亮否,不亮则进行返工。

d封装:把PC板放入有胶水的塑料盒中,并送入烘烤机烘烤

e总测,包装:总测是检测产品的质量,包装则是进行最后一步。然后送入仓库。

在了解了工艺流程之后,我就一些网上搜集到的问题向车间的同事请教,从零部件的组装到封装的过程中会出现的问题。

首先是零部件组装,易出现的问题有以下几个:

1、PC板的pin针装

2、漏针

3、表面污点:影响发光亮度以及压丝等后续工艺

4、黑针:影响产品外观

其次在固芯过程中,如果银胶过少,则压丝时芯片会跳出,要返工车间;如果银胶过多则会漏电。

在压焊过程中,容易出现:

1、机器丝线跳不出来

2、断丝

在压焊以后,进行初次检测,产品不合格的原因有以下几个:

1、断丝,易造成短路,不亮

2、管芯漏电:管芯本身质量问题,或者银胶过多

3、线路板断层

4、银胶过多,导致短路

在包装过程中:易出现弯角。防止弯脚措施:由塑料包装改为盒装,防止弯脚;箱子上下都加倍牢固,防止运输途中的震动,导致产品的损坏。

在车间学习的过程中,除了了解产品的生产工艺流程,还了解到了一些关于产品的基本参数,例如一些参数的含义,17.8P指的是pin脚的长度,SM453001D/44指的是该产品使用的是44个芯片,D芯片的单位数码管等等。

在车间的学习中得到了很多车间同事的帮助,其中零部件以及封装我都动手亲自组装了一些,得到了他们的热心帮助和指点。

第三篇:万年历单片机课程设计报告

课程设计报告 任务和设计要求

首先要学会安装软件,要熟悉会使用。系统设计 系统框图 硬件设计 3.1 电路原理图

课程设计报告

课程设计报告

课程设计报告

3.2 主要单元电路

3.3 元件清单 软件设计 4.1 程序流程图

课程设计报告

4.2程序清单

TIME_WEEK DATA 52H TIME_YEAR DATA 5DH TIME_MONTH DATA 5EH TIME_DATA DATA 5FH YEARH DATA 36H YEAR DATA 35H MONTH DATA 34H DAY DATA 33H HOUR DATA 32H MINUTE DATA 31H SEC DATA 30H

课程设计报告

AAA BIT P3.0 BBB BIT P3.1 AA BIT P3.3 BB BIT P3.4 CC BIT P3.5 BL BIT P3.2 BZ1 BIT 21H.0 TIMES DATA

20H COM

DATA

P1 ORG

0000H LJMP

START ORG

0003H RETI ORG

000BH LJMP INTT0 ORG

0013H RETI ORG

001BH RETI ORG

0023H RETI START:

课程设计报告

MOV

R0,#30H MOV

R7,#9 CLEETE: MOV

@R0,#00H INC

R0 DJNZ

R7,CLEETE MOV

TIMES,#00H MOV

TMOD,#01H MOV

TL0,#0C0H MOV

TH0,#63H MOV

SEC,#0 MOV

MINUTE,#0H MOV

HOUR,#0H MOV

DAY,#01H MOV

MONTH,#01H MOV

YEAR,#01H MOV

YEARH,#20H SETB

EA SETB

ET0 SETB

TR0 MOV

R4,#19 START1:

课程设计报告

CALL

DISP JNB

AA,SETMM1 JMP

START1 SETMM1: CALL

SETMM JMP START1 SETMM: CALL

DISP CALL

DISP JB AA,SETMM0 SETMM2: JNB AA,SETMM3 CLR ET0 CLR TR0 MOV

SEC,#0 MOV

TIMES,#01H MOV

R0,#MINUTE SETMM4: NOP INC22: CALL

OFFL CALL

INC11

课程设计报告

CALL

DISP JB AA,INC22 CALL DISP JB AA,INC22 INC R0 MOV A,TIMES RL A MOV TIMES,A JNB

TIMES.5, SETMM4 SETMM12: JNB AA , SETMM11 SETMM0: SETB

TR0 SETB

ET0 RET SETMM11: CALL DISP JMP

SETMM12 SETMM3: CALL

DISP JMP

SETMM2 INC11:

课程设计报告

MOV

R3,#40 INC111: MOV A,@R0 JB

BB,INC17 ADD

A,#1 DA A CALL INC000 INC13: JNB BB , INC14 INC17: MOV

@R0,A CALL

DISP DJNZ R3,INC111 RET INC14: CALL

DISP JMP

INC13 OFFL: MOV

22H,@R0 MOV

R6,#10 OFF1: MOV

R7,#10

课程设计报告

OFF2: MOV

@ R0, # 0AAH CALL

DISP DJNZ R7 , OFF2 DJNZ R6 , OFF1 MOV

@ R0 , 22H RET INC000: JB

TIMES.0, INC001 JB

TIMES.1, INC002 JB

TIMES.2, INC003 JB

TIMES.3, INC004 JB

TIMES.4, INC005 JMP

INCOUT INC005: CJNE A, #99H, INCOUT MOV

A,#00H JMP

INCOUT INC004: CJNE A, # 13H, INCOUT MOV

A,#01H JMP

INCOUT

课程设计报告

INC003: CJNE A,# 32H ,INCOUT MOV

A,#01H JMP

INCOUT INC002: CJNE A,#24H,INCOUT MOV

A,#00H JMP

INCOUT INC001: CJNE A,# 60H , INCOUT MOV

A,#00H INCOUT: RET INTT0: PUSH

ACC PUSH

PSW ORL TL0,#0C0H MOV

TH0,#63H DJNZ R4 , CLKE111 JMP

LOOP11 CLKE111: JMP

CLKE

课程设计报告

LOOP11: MOV

R4,#19H MOV

A,SEC ADD

A,#1 DA A MOV

SEC,A CJNE A, #60H , CLKE99 MOV

SEC,#0 MOV

A,MINUTE ADD

A,#1 DA A MOV

MINUTE,A CLK0: CJNE A, # 60H, CLKE MOV

MINUTE,#0 MOV

A,HOUR ADD

A,#1 DA

A MOV

HOUR,A CJNE A, # 24H, CLKE MOV

HOUR,#0 MOV

A,DAY

课程设计报告

ADD

A,#1 DA A MOV

DAY,A MOV

A,MONTH INC

A MOVC A, @A + PC SJMP

CLK1 DB

31H,28H,31H DB

30H,31H,30H DB

31H,31H,30H DB

00H,00H,00H DB

00H,00H,00H DB

31H,30H,31H CLK1: CLR C SUBB A,DAY JNC

CLKE MOV

A,MONTH CJNE A,#2,CLK3 MOV

A,YEAR ANL A,#13H JNB

ACC.4,CLK2

课程设计报告

ADD

A,#2 CLK2: ANL A,#3 JNZ

CLK3 MOV

A,DAY XRL A,#29H JZ

CLKE CLK3: MOV

DAY,#1 MOV

A,MONTH ADD

A,#1 DA

A MOV

MONTH,A CJNE A,#13H,CLKE MOV

MONTH,#1 MOV

A,YEAR ADD

A,#1 DA

A MOV

YEAR,A CLKE99: CALL

CONVERT CLKE:

课程设计报告

POP

PSW POP

ACC RETI DISP: PUSH

PSW PUSH

ACC MOV

23H,R0 DISP99: MOV

R1,#40H MOV

R0,#30H MOV

R2,#9 DISP1: MOV A,@R0 ANL A,#0FH MOV @R1,A MOV A,@R0 SWAP A ANL A,#0FH INC R1 MOV @R1,A DJNZ R2,DISP2 CALL DISPLAY

课程设计报告

MOV R0,23H POP ACC POP PSW RET DISP2: INC R1 INC R0 JMP DISP1 DISPLAY: MOV R1,#40H MOV R5,#19 SETB AAA PLAY: SETB BBB NOP CLR BBB CLR AAA MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV COM,A CALL DL1MS

课程设计报告

MOV COM,#0FFH DJNZ R5,PLAY1 CLR BBB SETB AAA RET PLAY1: INC R1 JMP PLAY TAB: DB 0C0H,0F9H,0A4H, 0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0A3H,8EH,0ABH DL1MS: MOV 25H,R7 MOV 24H,R6 MOV R7,#20 DS1: MOV R6,#10 DJNZ R6,$ DJNZ R7,DS1 MOV R7,25H MOV R6,24H RET

课程设计报告

START_YEAR EQU 01 CONVERT_YEAR DATA 5CH CONVERT_MONTH DATA 38H CONVERT_DATE DATA 37H TEMP_BYTE1 DATA 57H TEMP_BYTE2 DATA 58H TEMP_BYTE3 DATA 59H TEMP_BYTE4 DATA 5AH TEMP_BYTE5 DATA 5BH CONVERT: MOV A, YEAR MOV TIME_YEAR,A MOV A,MONTH MOV TIME_MONTH,A MOV A,DAY MOV TIME_DATA,A MOV A,TIME_YEAR MOV B,#16 DIV AB MOV CONVERT_YEAR,B MOV B,#10 MUL AB

课程设计报告

ADD A,CONVERT_YEAR MOV CONVERT_YEAR,A MOV A,TIME_MONTH JNB ACC.4,CON_02 CLR ACC.4 ADD A,#10 CON_02:MOV CONVERT_MONTH,A MOV A,TIME_DATA MOV B,#16 DIV AB MOV CONVERT_DATE,B MOV B,#10 MUL AB ADD A,CONVERT_DATE MOV CONVERT_DATE,A MOV DPTR,#MONTH_DATA MOV A,CONVERT_YEAR CON_06:CLR C SUBB A,#START_YEAR MOV B,#3 MUL AB ADD A,DPL

课程设计报告

MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A MOV A, #2 MOVC A, @A+DPTR CLR ACC.7 MOV B, #32 DIV AB MOV TEMP_BYTE1,A MOV TEMP_BYTE2,B MOV TEMP_BYTE3,#0 MOV A,CONVERT_MONTH CJNE A,#10,CON_08 CON_08:JC CON_09 MOV TEMP_BYTE3,#1 CON_09:MOV A,CONVERT_YEAR ANL A,#03H JNZ CON_10 MOV A,CONVERT_MONTH LCALL GET_RUN_DAYS_LOW SJMP CON_12

课程设计报告

CON_10:MOV A,CONVERT_MONTH LCALL GET_DAYS_LOW CON_12:MOV B,CONVERT_DATE DEC B ADD A,B MOV TEMP_BYTE4,A JNC CON_14 INC TEMP_BYTE3 CON_14:MOV A,TEMP_BYTE1 LCALL GET_DAYS_LOW DEC A ADD A,TEMP_BYTE2 MOV TEMP_BYTE5,A MOV A,CONVERT_MONTH CJNE A,TEMP_BYTE1,CON_20 MOV A,CONVERT_DATE CJNE A,TEMP_BYTE2,CON_20 CON_20:JC CON_22 LJMP CON_60 CON_22:MOV A,CONVERT_YEAR JNZ CON_24 MOV A,#100

课程设计报告

CON_24:DEC A MOV CONVERT_YEAR,A MOV A,DPL CLR C SUBB A,#3 MOV DPL,A JNC CON_26 DEC DPH CON_26:MOV A,TEMP_BYTE5 CLR C SUBB A,TEMP_BYTE4 MOV TEMP_BYTE3,A MOV CONVERT_MONTH,#12 CLR F0 CLR A MOVC A,@A+DPTR ANL A,#0F0H SWAP A;MOV TEMP_BYTE4,A JZ CON_30 MOV A, #2 MOVC A , @A+DPTR

课程设计报告

MOV C, ACC.7 MOV A, #1 MOVC A, @A+DPTR RLC A SJMP CON_34 CON_30:MOV A, #1 MOVC A, @A+DPTR CON_34:MOV TEMP_BYTE5, A CON_40:MOV A, TEMP_BYTE5 RRC A MOV TEMP_BYTE5, A JC CON_42 MOV B, #29 SJMP CON_44 CON_42:MOV B, #30 CON_44:MOV A, TEMP_BYTE3 CLR C SUBB A, B JZ CON_46 JNC CON_50 CPL A INC A

课程设计报告

CON_46: INC A MOV B, #10 DIV AB SWAP A ORL A, B MOV CONVERT_DATE, A MOV A, CONVERT_MONTH MOV B, #10 DIV AB SWAP A ORL A, B MOV CONVERT_MONTH, A MOV A, CONVERT_YEAR MOV B, #10 DIV AB SWAP A ORL A, B MOV CONVERT_YEAR, A CALL WEEK RET CON_50:MOV TEMP_BYTE3, A JB F0, CON_52

课程设计报告

DEC CONVERT_MONTH CON_52:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE4, CON_54 CPL F0 CON_54:SJMP CON_40 CON_60:MOV A, TEMP_BYTE4 CLR C SUBB A, TEMP_BYTE5 MOV TEMP_BYTE4, A JNC CON_62 DEC TEMP_BYTE3 CON_62:MOV CONVERT_MONTH, #1 CLR A MOVC A, @A+DPTR MOV TEMP_BYTE5, A ANL A, #0F0H SWAP A XCH A, TEMP_BYTE5 CLR F0 ANL A, #0FH MOV TEMP_BYTE1, A MOV A, #1

课程设计报告

MOVC A, @A+DPTR MOV TEMP_BYTE2, A ANL A, #0F0H ORL A, TEMP_BYTE1 SWAP A MOV TEMP_BYTE1, A MOV A, #2 MOVC A, @A+DPTR MOV C, ACC.7 MOV A, TEMP_BYTE2 ANL A, # 0FH SWAP A MOV ACC.3, C MOV TEMP_BYTE2, A CON_70:MOV A, TEMP_BYTE2 RLC A MOV TEMP_BYTE2, A MOV A, TEMP_BYTE1 RLC A MOV TEMP_BYTE1, A JC CON_72 MOV B, #29

课程设计报告

SJMP CON_74 CON_72:MOV B, #30 CON_74:MOV A, TEMP_BYTE4 CLR C SUBB A,B JNC CON_78 MOV B, A MOV A, TEMP_BYTE3 JZ CON_76 DEC TEMP_BYTE3 MOV TEMP_BYTE4, B SJMP CON_80 CON_76:MOV A, TEMP_BYTE4 LJMP CON_46

CON_78:MOV TEMP_BYTE4, A CON_80:MOV A, CONVERT_MONTH CJNE A, TEMP_BYTE5, CON_82 CPL F0 JNB F0, CON_82 SJMP CON_70 CON_82:INC CONVERT_MONTH SJMP CON_70

课程设计报告

GET_DAYS_LOW: MOVC A, @A+PC RET DB 0,31,59,90,120,151,181,212,243,17,48,78 GET_RUN_DAYS_LOW: MOVC A, @A+PC RET DB 0,31,60,91,121,152,182,213,244,18,49,79 MONTH_DATA:

DB 04DH,04AH,0B8H;2001 DB 00DH,04AH,04CH;2002 DB 00DH,0A5H,041H;2003 DB 025H,0AAH,0B6H;2004 DB 005H,06AH,049H;2005 DB 07AH,0ADH,0BDH;2006 DB 002H,05DH,052H;2007 DB 009H,02DH,047H;2008 DB 05CH,095H,0BAH;2009 DB 00AH,095H,04EH;2010 DB 00BH,04AH,043H;2011

课程设计报告

DB 04BH,055H,037H;2012 DB 00AH,0D5H,04AH;2013 DB 095H,05AH,0BFH;2014 DB 004H,0BAH,053H;2015 DB 00AH,05BH,048H;2016 DB 065H,02BH,0BCH;2017 DB 005H,02BH,050H;2018 DB 00AH,093H,045H;2019 DB 047H,04AH,0B9H;2020 DB 006H,0AAH,04CH;2021 DB 00AH,0D5H,041H;2022 DB 024H,0DAH,0B6H;2023 DB 004H,0B6H,04AH;2024 DB 069H,057H,03DH;2025 DB 00AH,04EH,051H;2026 DB 00DH,026H,046H;2027 DB 05EH,093H,03AH;2028 DB 00DH,053H,04DH;2029 DB 005H,0AAH,043H;2030 DB 036H,0B5H,037H;2031 DB 009H,06DH,04BH;2032 DB 0B4H,0AEH,0BFH;2033

课程设计报告

DB 004H,0ADH,053H;2034 DB 00AH,04DH,048H;2035 DB 06DH,025H,0BCH;2036 DB 00DH,025H,04FH;2037 DB 00DH,052H,044H;2038 DB 05DH,0AAH,038H;2039 DB 00BH,05AH,04CH;2040 DB 005H,06DH,041H;2041 DB 024H,0ADH,0B6H;2042 DB 004H,09BH,04AH;2043 DB 07AH,04BH,0BEH;2044 DB 00AH,04BH,051H;2045 DB 00AH,0A5H,046H;2046 DB 05BH,052H,0BAH;2047 DB 006H,0D2H,04EH;2048 DB 00AH,0DAH,042H;2049 DB 035H,05BH,037H;2050 DB 009H,037H,04BH;2051 DB 084H,097H,0C1H;2052 DB 004H,097H,053H;2053 DB 006H,04BH,048H;2054 DB 066H,0A5H,03CH;2055

课程设计报告

DB 00EH,0A5H,04FH;2056 DB 006H,0B2H,044H;2057 DB 04AH,0B6H,038H;2058 DB 00AH,0AEH,04CH;2059 DB 009H,02EH,042H;2060 DB 03CH,097H,035H;2061 DB 00CH,096H,049H;2062 DB 07DH,04AH,0BDH;2063 DB 00DH,04AH,051H;2064 DB 00DH,0A5H,045H;2065 DB 055H,0AAH,0BAH;2066 DB 005H,06AH,04EH;2067 DB 00AH,06DH,043H;2068 DB 045H,02EH,0B7H;2069 DB 005H ,02DH, 04BH;2070 DB 08AH, 095H, 0BFH;2071 DB 00AH, 095H, 053H;2072 DB 00BH, 04AH, 047H;2073 DB 06BH, 055H, 03BH;2074 DB 00AH, 0D5H, 04FH;2075 DB 005H, 05AH, 045H;2076 DB 04AH, 05DH, 038H;2077

课程设计报告

DB 00AH, 05BH, 04CH;2078 DB 005H, 02BH, 042H;2079 DB 03AH, 093H, 0B6H;2080 DB 006H, 093H, 049H;2081 DB 077H, 029H, 0BDH;2082 DB 006H, 0AAH, 051H;2083 DB 00AH, 0D5H, 046H;2084 DB 054H, 0DAH, 0BAH;2085 DB 004H, 0B6H, 04EH;2086 DB 00AH, 057H, 043H;2087 DB 045H, 027H, 038H;2088 DB 00DH, 026H, 04AH;2089 DB 08EH, 093H, 03EH;2090 DB 00DH, 052H, 052H;2091 DB 00DH, 0AAH, 047H;2092 DB 066H, 0B5H, 03BH;2093 DB 005H, 06DH, 04FH;2094 DB 004H, 0AEH, 045H;2095 DB 04AH, 04EH, 0B9H;2096 DB 00AH, 04DH, 04CH;2097 DB 00DH, 015H, 041H;2098 DB 02DH, 092H, 0B5H;2090

课程设计报告

DB 00DH, 053H, 049H;2100 TIME_WEEK1 DATA 52H WEEK: MOV A, TIME_YEAR MOV B, #16 DIV AB MOV TEMP_BYTE1, B MOV B, #10 MUL AB ADD A, TEMP_BYTE1 MOV TEMP_BYTE1, A MOV A, TIME_MONTH JB ACC.7, GETW02 MOV A, #100 ADD A, TEMP_BYTE1 MOV TEMP_BYTE1, A MOV A, TIME_MONTH CLR ACC.7 GETW02: JNB ACC.4, GETW04 ADD A , #10 CLR ACC.4 GETW04: MOV TEMP_BYTE2,A

课程设计报告

MOV A, TIME_DATA MOV B, #16 DIV AB MOV TEMP_BYTE3, B MOV B, #10 MUL AB ADD A, TEMP_BYTE3 MOV TEMP_BYTE3, A MOV A ,TEMP_BYTE1 ANL A, #03H JNZ GETW10 MOV A, TEMP_BYTE2 CJNE A, #3,GETW06 GETW06: JNC GETW10 DEC TEMP_BYTE3 GETW10: MOV A,TEMP_BYTE2 LCALL GET_CORRECT ADD A, TEMP_BYTE1 MOV B, #7 DIV AB

MOV A, TEMP_BYTE1

课程设计报告

ANL A, #0FCH RR A RR A ADD A, B ADD A, TEMP_BYTE3 MOV B, #7 DIV AB MOV A, B CJNE A, #0,OUTOUT MOV B, #8 OUTOUT: MOV TIME_WEEK, B RET GET_CORRECT: MOVC A, @A+PC RET DB 0,3,3,6,1,4,6,2,5,0,3,5 END 系统仿真及调试

课程设计报告 仿真结果及分析

课程设计报告

上图为运行时的显示,左边两个数码管显示器显示的是年、月、日,中间的显示的是时、分、秒,右边显示的是农历日期以及星期。若想要调试时间,可通过右下方两个并联开关调试,左边开关调试数码管显示位置,右边的调试增1。此刻是2013年11月29日下午15:02,星期五,时间准确。训练体会

在整个单片机课程设计中,想要做出这个完整的设计过程,必须突破几个难点:

1、元件得找准却,6路驱动可以用74LS244代替。

2、连线不能连错,对应的输入输出端标上序号。

3、程序代码不能敲错。

4、由于单管显示的星期数不稳定,可以采用双管显示。参考文献:单片机课程设计指导。

第四篇:EDA万年历课程设计报告

《EDA技术及其应用》

实 训 报 告

班 级 姓 名 学 号 指导教师

目 录

一 设计要求......................................2

1.0 设计目的及意义.................................2 1.1 设计要求.......................................2

二 设计流程:....................................2

2.0 原理框图.......................................2 2.1 VHDL设计思路...................................3

三 VHDL程序......................................3

3.0 天计数模块......................................6 3.1 月计数模块.....................................7 3.2 年计数模块......................................9 3.3 调时控制模块..................................11 3.4 译码模块......................................12 3.5 扫描模块........................................12

四 心得体会.....................................14 4.0................................................14 五 附录...........................................15 5.0 顶层文件......................................15

一、设计目的及意义

1.0 设计目的及意义

在掌握EDA理论知识的基础上进一步了解EDA开发软件QuartusII的使

entity tian is port(clk:in std_logic;pan:in std_logic_vector(1 downto 0);T1:out std_logic_vector(6 downto 0);cout:out std_logic);end tian;

architecture one of tian is

signal q1:std_logic_vector(3 downto 0);signal q2:std_logic_vector(2 downto 0);signal ab:std_logic_vector(1 downto 0);begin

process(clk,pan)

begin

if clk'event and clk='1'

then q1<=q1+1;

if q1=9 then q1<=“0000”;q2<=q2+1;

end if;case pan is when “00”=> if q2=3 and q1=1 then q2<=“000”;q1<=“0001”;cout<='1';else cout<='0';

end if;when “01”=> if q2=3 and q1=0 then q2<=“000”;q1<=“0001”;cout<='1';else cout<='0';

end if;when “10”=> if q2=2 and q1=8 then q2<=“000”;q1<=“0001”;cout<='1';else cout<='0';

end if;when “11”=> if q2=2 and q1=9 then q2<=“000”;q1<=“0001”;cout<='1';else cout<='0';

end if;when others=>null;end case;end if;end process;T1(3 downto 0)<=q1;T1(6 downto 4)<=q2;end one;3.1 月计数模块

when others=>null;end case;end if;Y1(3 downto 0)<=q1;Y1(6 downto 4)<=q2;end process;end behav;

3.2 年计数模块

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity nian is port(clk :in std_logic;n1:out std_logic_vector(6 downto 0);

run:out std_logic);end entity;

architecture one of nian is signal q1,q3:std_logic_vector(3 downto 0);signal q2:std_logic_vector(2 downto 0);

begin process(clk)

begin if clk'event and clk='1' then

q1<=q1+1;q3<=q3+1;

if q1=9 then q2<=q2+1;q1<=“0000”;end if;if q3=3 then q3<=“0000”;run<='1';else run<='0';end if;

if q1=9 and q2<=7 then q1<=“0001”;q2<=“000”;end if;

end if;end process;

sel:out std_logic_vector(2 downto 0));end seltime;architecture fun of seltime is signal count:std_logic_vector(2 downto 0);begin sel<=count;process(clk1)begin if(clk1'event and clk1='1')then if(count>=“101”)then count<=“000”;else count<=count+1;end if;end if;case count is when “000”=>daout<=tian(3 downto 0);dp<='0';when“001”=>daout(3)<='0';daout(2 downto 0)<=tian(6 downto 4);dp<='0';when “010”=>daout<=yue(3 downto 0);dp<='1';when“011”=>daout(3)<='0';daout(2 downto 0)<=yue(6 downto 4);dp<='0';when “100”=>daout<=nian(3 downto 0);dp<='1';when others=>daout(3 downto 2)<=“00”;daout(2 downto 0)<=nian(6 downto 4);dp<='0';end case;end process;end fun;

3.5 译码模块

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity led is port(ledi:in std_logic_vector(3 downto 0);ledo:out std_logic_vector(6 downto 0));

次万年历实训我们是四个人作为一个团队,在实训过程中,有时候一个人在编写程序时出现一点很小的错误(例如:程序中少了一个分号或者少了一个字母)就会导致整个程序编译不能通过,而四个人在一起,出现错误时一起去寻找,总会有一个人及时发现错误的,发现后及时纠正错误,然后继续开展下面的工作。这样三个人互相协作,共同努力,各自发挥自身的优势,这样工作便能顺利的进行下去,如果是一个人单独去完成,在出现错误的时候自己要想发现错误便需要很长的时间才能发现,这样很浪费时间,浪费时间的结果就是直接导致工作效率低。而在如今的社会工作中,许多公司企业都要求应聘者要有很好的团队合作精神,工作时要有高效的工作效率。因此,在这次实训中我也切身体会到了团队合作的重要性。

实训是对每个学生综合能力的检验是让我们能够更好的巩固专业知识,积累工作经验,掌握工作技能。通过这次实训,让我深深的体会到要想做好每一件事情,除了自己平时要有一定的专业知识外,还需要一定的实践动手能力,操作能力,说实话,这次实训让我学到了很多东西,也明白了很多事情。在此还要感谢王老师耐心、认真的指导。谢谢薛老师!

五、附录

5.0 顶层文件

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity nianli is port(clk,clkdsp:in std_logic;k1,k2:in std_logic;dpout,d10,d20:out std_logic;ledout :out std_logic_vector(6 downto 0);sel1:out std_logic_vector(2 downto 0));

end entity;architecture one of nianli is component tian port(clk:in std_logic;pan:in std_logic_vector(1 downto 0);T1:out std_logic_vector(6 downto 0);cout:out std_logic);end component;component yue port(clk,run:in std_logic;cout:out std_logic;pan:out std_logic_vector(1 downto 0);

第五篇:中华万年历

第一,要做一个你自己真正想用、会用的东西。你自己的产品,自己都不用,成功的可能性就很小;第二,如果你真想学技术,就要做一个你周边朋友或同学都愿意用的东西;第三,如果你真想创业,做一个是人都会用的东西。这是我觉得每一位做产品的人都会经历的三个阶段。我自己也是这么走过来的,我大一时,因为经常翘课,做了一个自己想用的课程表,自己天天用,后来我把这个软件推荐给同学。再后来我们把中华万年历,做成了一个上亿人能用的东西。

最后,我还是感谢老朋友常亮,跟他认识已经5年多了。同时我的创业伙伴们大学时在一起的,今天还在一起,可能接下来10年还会在一起。我觉得这个圈子很小,大家要珍惜这样的机会,去建立接下来5年甚至10年自己的创业伙伴,在未来的路上,大家且行且珍惜,谢谢!

下载数码管万年历实习报告word格式文档
下载数码管万年历实习报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数码管简介

    (注:此文档内容均复制:数码管_百科名片,仅供下载方便。) 数码管 百科名片 数码管是一种半导体发光器件,其基本单元是发光二极管。 一 产品分类 数码管按段数分为七段数码管和八段......

    单片机万年历实训报告

    单片机万年历实训报告 系部:电气自动化系 班级:13电信2班姓名:周祝福 指导老师:黄丽英、侯聪玲 实训时间:2015年1月19日~23日 用AT89C51与LCD1602设计 的可调式电子日历时钟......

    万年历C语言课程设计报告

    程序实践报告 任务分配:1、头文件,定义常量,全局变量,自定义函数和打印输出模块。即1~50和140~290 2、功能控制模块和一部分日历显示模块,即50~140和290~400 3、一部分日历显示模......

    数码管简介[推荐阅读]

    (注:此文档内容均复制:数码管_百科名片,仅供下载方便。) 数码管 百科名片 数码管是一种半导体发光器件,其基本单元是发光二极管。 一 产品分类 数码管按段数分为七段数码管和八段......

    LED数码管介绍范文

    供应LED数码管 LED-3006 LED数码管 灯体尺寸:L1000*W50*H95MM mm 净重: 1.0 Kg 分类: LED数码管系列LED LED 光源:48红/48绿/48蓝 (1000mm long) 高度智能化产品,特别适应高楼......

    单片机课程设计-电子万年历

    单片机及接口技术综合实验 ——————电子万年日历系统 一、题目:电子实时时钟/万年日历系统 二、功能要求:1. 基本要求: ⑴ 显示准确的北京时间(时、分、秒),可用24小时制式; ⑵......

    《一位LED数码管显示0-9》大全

    成都理工大学工程技术学院 单片微机原理及应用课程设计 《一位LED数码管显示0-9》 学生姓名:学号:专业:班级:指导教师:完成日期: 目 录 一 实验目的与任务……………………………......

    单片机数码管显示实验

    实验一数码管实验 一、 实验目的 1. 了解数码管的显示原理;2. 掌握JXARM9-2440 中数码管显示编程方法 二、 实验仪器 JXARM9-2440教学实验箱、ADT1000仿真器和ADT IDE集成开......