导航:首页 > 操作系统 > 单片机课程设计电子钟

单片机课程设计电子钟

发布时间:2025-09-06 02:36:10

1. 求单片机简易数字钟的课程设计 :要求自制一个单片机最小系统,包括串口下载、复位电路,采用内部定时器计

下面的程序配合这个电路运行就是对的

这个是完整的程序,电路图如下

#include<reg52.h>

//定义共阳极字型码0123456789-

unsignedcharcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsignedchartime[]={0,0,0,0};//用来储存分秒

unsignedchardate[]={0,0,0,0};//用来储存日时

unsignedcharyear[]={0,0,0,0};//用来储存年月

typedefstruct__SYSTEMTIME__

{

unsignedcharSecond;

unsignedcharMinute;

unsignedcharHour;

unsignedcharWeek;

unsignedcharDay;

unsignedcharMonth;

unsignedcharYear;

unsignedcharDateString[9];

unsignedcharTimeString[9];

}SYSTEMTIME; //定义的时间类型

SYSTEMTIMEtime1;

sbitDS1302_CLK=P1^6;//实时时钟时钟线引脚

sbitDS1302_IO=P1^7;//实时时钟数据线引脚

sbitDS1302_RST=P1^5;//实时时钟复位线引脚

sbitACC0=ACC^0;

sbitACC7=ACC^7;

sbitP10=P1^0;

sbitP11=P1^1;

sbitP12=P1^2;

sbitP13=P1^3;

sbitP14=P1^4;

//#defineAM(X) X

//#definePM(X) (X+12) //转成24小时制

#defineDS1302_SECOND 0x80//秒寄存器

#defineDS1302_MINUTE 0x82//分寄存器

#defineDS1302_HOUR 0x84

#defineDS1302_WEEK 0x8A

#defineDS1302_DAY 0x86

#defineDS1302_MONTH 0x88

#defineDS1302_YEAR 0x8C

#defineDS1302_RAM(X) (0xC0+(X)*2) //用于计算DS1302_RAM地址的宏

voidDS1302InputByte(unsignedchard) //实时时钟写入一字节(内部函数)

{

unsignedchari;

ACC=d;

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

{

DS1302_IO=ACC0; //相当于汇编中的RRC

DS1302_CLK=1;

DS1302_CLK=0;//发一个高跳变到低的脉冲

ACC=ACC>>1;

}

}

unsignedcharDS1302OutputByte(void) //实时时钟读取一字节(内部函数)

{

unsignedchari;

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

{

ACC=ACC>>1; //相当于汇编中的RRC

ACC7=DS1302_IO;

DS1302_CLK=1;

DS1302_CLK=0;//发一个高跳变到低的脉冲

}

return(ACC);

}

voidWrite1302(unsignedcharucAddr,unsignedcharucDa) //ucAddr:DS1302地址,ucData:要写的数据

{

DS1302_RST=0;

DS1302_CLK=0;

DS1302_RST=1;

DS1302InputByte(ucAddr); //地址,命令

DS1302InputByte(ucDa); //写1Byte数据

DS1302_CLK=1;

DS1302_RST=0;//RST0->1->0,CLK0->1

}

unsignedcharRead1302(unsignedcharucAddr) //读取DS1302某地址的数据

{

unsignedcharucData;

DS1302_RST=0;

DS1302_CLK=0;

DS1302_RST=1;//enable

DS1302InputByte(ucAddr|0x01);//地址,命令

ucData=DS1302OutputByte();//读1Byte数据

DS1302_CLK=1;//RST0->1->0,CLK0->1

DS1302_RST=0;

return(ucData);

}

voidDS1302_SetProtect(bitflag)//是否写保护

{

if(flag)

Write1302(0x8E,0x10);//WP=1,不能写入

else

Write1302(0x8E,0x00);//WP=0,可以写入

}

voidDS1302_SetTime(unsignedcharAddress,unsignedcharValue)//设置时间函数

{

DS1302_SetProtect(0);

Write1302(Address,((Value/10)<<4|(Value%10)));//高4位为十位,低4位为个位

}

voidDS1302_GetTime(SYSTEMTIME*Time)

{

unsignedcharReadValue;

ReadValue=Read1302(DS1302_SECOND);

Time->Second=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);//转换成10进制的秒

ReadValue=Read1302(DS1302_MINUTE);

Time->Minute=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_HOUR);

Time->Hour=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_DAY);

Time->Day=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_WEEK);

Time->Week=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_MONTH);

Time->Month=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_YEAR);

Time->Year=((ReadValue&0xf0)>>4)*10+(ReadValue&0x0F);

}

voidInitial_DS1302(void)

{

unsignedcharSecond=Read1302(DS1302_SECOND);

if(Second&0x80)//如果第七为1(表明没有启动),则启动时钟

DS1302_SetTime(DS1302_SECOND,0);

}

voiddelay(unsignedchari)//延时子程序

{

unsignedcharj;

while((i--)!=0)

{

for(j=625;j>0;j--);

}

}

/*unsignedcharbutton_time(n,x,y)//时钟调整子程序

unsignedcharn,x,y;

{

if(P1^7==0)

{

delay(50);

if(P1^7==0)

{

n++;

if(n==x)

n=0;

while(P1^7==0);

}

}

if(P1^1==0)

{

delay(50);

if(P1^1==0)

{

if(n==0)

n=y;

else

n--;

while(P1^1==0);

}

}

returnn;

}

*/

/*unsignedcharbutton_date(n,x,y)//日期调整子程序

unsignedcharn,x,y;

{

if(P1^7==0)

{

delay(50);

if(P1^7==0)

{

n++;

if(n==x)

n=1;

while(P1^7==0);

}

}

if(P1^1==0)

{

delay(50);

if(P1^1==0)

{

if(n==1)

n=y;

else

n--;

while(P1^1==0);

}

}

returnn;

}*/

voiddisplay1(minute10,minute1,second10,second1) //显示第一页分秒子程序

//unsignedcharsecond10,second1,minute10,minute1;

{

P2=0x08;

P0=dispcode[second1];//显示秒的个位

delay(1);

P2=0x04;

P0=dispcode[second10]; //显示秒的十位

delay(1);

P2=0x02;

P0=dispcode[minute1]; //显示分的个位

delay(1);

P2=0x01;

P0=dispcode[minute10];//显示分的十位

delay(1);

}

voiddisplay2(data10,data1,hour10,hour1) //显示第二页天时子程序

//unsignedchardata10,data1,hour10,hour1;

{

P2=0xf8;

P0=dispcode[data1];//显示天的个位

delay(1);

P2=0xf4;

P0=dispcode[data10]; //显示天的十位

delay(1);

P2=0xf2;

P0=dispcode[hour1]; //显示时的个位

delay(1);

P2=0xf1;

P0=dispcode[hour10];//显示时的十位

delay(1);

}

voiddisplay3(year10,year1,month10,month1) //显示第三页年月子程序

//unsignedcharyear10,year1,month10,month1;

{

P2=0xf2;

P0=dispcode[month1];//显示月的个位

delay(1);

P2=0xf1;

P0=dispcode[month10]; //显示月的十位

delay(1);

P2=0xf8;

P0=dispcode[year1]; //显示月的个位

delay(1);

P2=0xf4;

P0=dispcode[year10];//显示月的十位

delay(1);

}

voidmain()

{

unsignedcharflag=0;

Initial_DS1302(); //初始化DS1302这个时钟芯片,

P10=0;//点亮测试灯

while(1)

{

DS1302_GetTime(&time1); //读取时间参数

time[3]=(time1.Second)%10; //把秒的个位数据存入time[3]

time[2]=(time1.Second)/10; //把秒的十位数据存入time[2]

time[1]=(time1.Minute)%10; //把分的个位数据存入time[1]

time[0]=(time1.Minute)/10; //把分的十位数据存入time[0]

date[3]=(time1.Day)%10;

date[2]=(time1.Day)/10;

date[1]=(time1.Hour)%10;

date[0]=(time1.Hour)/10;

year[3]=(time1.Year)%10;

year[2]=(time1.Year)/10;

year[1]=(time1.Month)%10;

year[0]=(time1.Month)/10;

//display1(time[0],time[1],time[2],time[3]);

if(P11==0)

{

delay(50);

if(P11==0)

{

flag++;

if(flag>2)//flag:1显示第二页日时;2显示第三页年月0:显示第一页分秒

{

flag=0;

}

}

while(P11==0);

}

/*if(P1^6==0) //如果按下TimeSet键一下,开始显示日期,再按一下进入日期跟时钟的调节模式

{

delay(50);

if(P1^6==0)

{

flag++;

if(flag>6)

{

flag=0;

}

}

while(P1^6==0);

}*/

switch(flag)

{

case0:display1(time[0],time[1],time[2],time[3]); //调用子函数display,把存入数组time的数据给显示出来

break;

case1:display2(date[0],date[1],date[2],date[3]); //调用子函数display,把存入数组date的数据给显示出来

break;

case2:display3(year[0],year[1],year[2],year[3]);

break;

/* case3:time1.Month=button_date(time1.Month,13,12); //调整月

DS1302_SetTime(0x88,time1.Month);

display(10,10,date[2],date[3]);

break;

case4:time1.Day=button_date(time1.Day,32,31); //调整日

DS1302_SetTime(0x86,time1.Day);

display(10,10,date[4],date[5]);

break;

case5:time1.Minute=button_time(time1.Minute,60,59); //调整分

DS1302_SetTime(0x82,time1.Minute);

display(time[2],time[3],10,10);

break;

case6:time1.Second=button_time(time1.Second,60,59); //调整秒

DS1302_SetTime(0x80,time1.Second);

display(10,10,time[4],time[5]);

break;*/

}

}

}

2. 单片机89c51的电子时钟课程设计

#include <reg52.h>

#include<stddef.h>

#define uchar unsigned char

#define uint unsigned int

#define LCD1602_FLAG

#define LCD1602_PORT P0


sbit lcd1602_rs=P2^0;

sbit lcd1602_e=P2^2;

sbit lcd1602_rw=P2^1;

sbit lcd1602_busy=P0^7;

sbit key_ch=P3^5;

sbit key_add=P3^6;

sbit key_minus=P3^7;


uchar i,sec,min,h,date,month,flag;

uint year;

uchar *chgstr[7]={" ","sec","min","hour","date","min","year"};

uchar j,k,m,n,o,p;

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

uchar timestr[10],datestr[10];

void init();

void delay(uint);

void time_display();

void date_display();

void control();

void time();

/*

************************************

* 函数名称:lcd1602_CheckBusy()

* 函数功能:状态查询

************************************

*/


void lcd1602_CheckBusy()

{

do

{

lcd1602_busy=1;

lcd1602_rs=0;

lcd1602_rw=1;

lcd1602_e=0;

lcd1602_e=1;

}

while(lcd1602_busy);

}


/*

***************************************

* 函数名称: lcd1602_WriteCmd()

* 函数功能:写命令

* 入口参数:命令字

* 出口参数:无

***************************************

*/


void lcd1602_WriteCmd(const uchar cmd)

{

lcd1602_CheckBusy();

lcd1602_rs=0;

lcd1602_rw=0;

lcd1602_e=1;

LCD1602_PORT=cmd;

lcd1602_e=0;

}


/*

*******************************************

* 函数名称:lcd1602_WriteData()

* 函数功能:写数据

* 入口参数:c--待写数据

* 出口参数:无

*********************************************

*/


void lcd1602_WriteData(const uchar c)

{

lcd1602_CheckBusy();

lcd1602_rs=1;

lcd1602_rw=0;

lcd1602_e=1;

LCD1602_PORT=c;

lcd1602_e=0;

}


/*

***********************************************

* 函数名称:lcd1602_Init()

* 函数功能:初始化LCD

* 入口参数:无

* 出口参数:无

***********************************************

*/


void lcd1602_Init()

{

lcd1602_WriteCmd(0x38); //显示模式为8位2行5*7点阵

lcd1602_WriteCmd(0x0c); //display enable,flag enable,flash enable,

lcd1602_WriteCmd(0x06); //flag move to right,screen don't move

lcd1602_WriteCmd(0x01); //clear screen

}


/*

************************************************

* 函数名称:lcd1602_Display()

* 函数功能: 字符显示

* 入口参数:ptr--字符或字符串指针

* 出口参数:无

* 说 明:用户可通过以下方式来调用:

* 1)lcd1602_Display("Hello,world!");

* 2) INT8U 存储类型 txt[]="要显示的字符串";

* 或者 INT8U 存储类型 txt[]={'t','x','t',..,''};

* INT8U *ptr;

* ptr=&txt;

* lcd1602_Display(ptr);

* 或 lcd1602_Display(txt);

* 或 lcd1602_Display(&txt);

************************************************

*/


void lcd1602_Display(const uchar *ptr,uchar line,uchar xaddr)

{

uchar data i=0;

uchar *data q;


q=ptr;

switch(line)

{

case 0:

lcd1602_WriteCmd(0x80+xaddr);

while(q!=NULL && (*q!='') && i<16)

{

lcd1602_WriteData(*q);

q++;

i++;

}

break;

case 1:

lcd1602_WriteCmd(0xc0+xaddr);

while(q!=NULL && (*q!='') && i<16)

{

lcd1602_WriteData(*q);

q++;

i++;

}

break;

}

}



void main()

{

lcd1602_Init();

init();

while(1)

{

time_display();

date_display();

control();

}

}

void init()

{

i=0;

sec=0;

min=30;

h=7;

date=17;

month=10;

year=2017;

flag=0;

EA=1;

ET0=1;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void time_display()

{

timestr[7]=0x30+sec%10;

timestr[6]=0x30+sec/10;

timestr[5]=':';

timestr[4]=0x30+min%10;

timestr[3]=0x30+min/10;

timestr[2]=':';

timestr[1]=0x30+h%10;

timestr[0]=0x30+h/10;

timestr[8]=0;

lcd1602_Display(timestr,1,3);

}

void date_display()

{

datestr[9]=0x30+date%10;

datestr[8]=0x30+date/10;

datestr[7]=':';

datestr[6]=0x30+month%10;

datestr[5]=0x30+month/10;

datestr[4]=':';

datestr[3]=0x30+year%10;

datestr[2]=0x30+year/10%10;

datestr[1]=0x30+year/100%10;

datestr[0]=0x30+year/1000;

lcd1602_Display(datestr,0,2);

}

void control()

{

if(!key_ch)

{

delay(5);

if(!key_ch)

{

flag++;

TR0=0;

if(flag==7)

{flag=0;TR0=1;lcd1602_Init();}

lcd1602_Display(chgstr[flag],1,12);

}

}

while(!key_ch);

if(flag==1&&key_add==0)

{

while(!key_add);

sec++;

if(sec==60)

sec=0;

}

if(flag==1&&key_minus==0)

{

while(!key_minus);

sec--;

if(sec==-1)

sec=59;

}


if(flag==2&&key_add==0)

{

while(!key_add);

min++;

if(min==60)

min=0;

}

if(flag==2&&key_minus==0)

{

while(!key_minus);

min--;

if(min==-1)

min=59;

}


if(flag==3&&key_add==0)

{

while(!key_add);

h++;

if(h==24)

h=0;

}

if(flag==3&&key_minus==0)

{

while(!key_minus);

h--;

if(h==-1)

h=23;

}


if(flag==4&&key_add==0)

{

while(!key_add);

date++;

if(date==29)

if((year%4!=0)&&(month==2))

date=1;

if(date==30)

if((year%4==0)&&(month==2))

date=1;

if(date==31)

if((month==4)||(month==6)||(month==9)||(month==11))

date=1;

if(date==32)

if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))

date=1;

}


if(flag==4&&key_minus==0)

{

while(!key_minus);

if(date>1)date--;

}


if(flag==5&&key_add==0)

{

while(!key_add);

month++;

if(month==13)

month=1;

}

if(flag==5&&key_minus==0)

{

while(!key_minus);

month--;

if(month==0)

month=12;

}


if(flag==6&&key_add==0)

{

while(!key_add);

year++;

if(year==99)

year=1;

}

if(flag==6&&key_minus==0)

{

while(!key_minus);

year--;

if(year==0)

year=99;

}

}


void T0_rpt() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

i++;

time();

}


void time()

{

if(i==20)

{

i=0;

sec++;

if(sec==60)

{

sec=0;

min++;

if(min==60)

{

min=0;

h++;

if(h==24)

{

h=0;

min=0;

sec=0;

date++;

if(date==29)

if((year%4!=0)&&(month==2))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

if(date==30)

if((year%4==0)&&(month==2))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

if(date==31)

if((month==4)||(month==6)||(month==9)||(month==11))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

if(date==32)

if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

}

}

}

}

}

3. 单片机课程设计的介绍

单片机课程设计,是很多高校,电子信息专业、自动化专业、通信专业等学生在校学习期间,必须完成的一项重要的动手实践活动,但现在很多高校的课程设计流于形式,是典型的欺软怕硬。凌阳教育根据对大学生整体动手能力和实践能力的培养要求,精心选择了单片机课程设计与工程应用实例,典型实例包括了单片机接口、A/D转换、D/A转换、道路交通灯控制、温度测量、微机通信、LED点阵字符显示、电子万年历、抢答器等。使学生在学习完后,能真正从事单片机或嵌入式的开发工作。包括项目概述、项目要求、系统设计、硬件设计、软件设计、系统仿真及调试,提供完整的程序清单和电路原理图。采了实际应用项目实例,力求理论和实践相结合,同时考虑培养学生解决工程实际问题和综合应用的能力。典型实例都来自实际工程应用,有助于学生动手能力的培养和锻炼。

4. 单片机课程设计!不要复制百度!高分悬赏!!

1.单片机控制的60s倒计时
这个太简单了,不用什么提示吧?硬件上只要单片机最小系统加上数码管两个,程序上只要设置好定时器就行.
2.
基于单片机的电子钟设计
这个要复杂一点.大概要单片机+数码管+实时时钟芯片如DS系列(ds1302加要电池)+存储芯片如24C02,当然驱动数码管的如译码器或锁存器也要有.
实在说你第一个设计网上能找到现成的,第二个设计网上也能找到现成的,不过要你自己使用keil、proteus软件综合调试仿真,这两个内容都有,自己动手网络一下吧,不要太依赖别人.毕竟这样才能提高一下你自己.

5. 跪求单片机课程设计 要完全呦

题 目:单片机课程设计报告
目 录
一、设计目的
二、程设计具体要求
三、单片机发展简史
四、8051单片机系统简介
五、8051单片机内部定时器/计数器简介
六、程序电路
七、程序流程
八、程序代码
九实验总结-要求写出完整的论文以及心得体会
十参考资料及小结
原 文 : 一.目的
1. 进一步熟悉和掌握8051单片机的结构及工作原理。
2. 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3. 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
4. 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5. 通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二.课程设计的体要求
a) 原理图设计。
1. 原理图设计要符合项目的工作原理,连线要正确,端了要不得有标号。
2. 图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。
3. 原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。
b) 程序调计
1. 根据要求,将总体项能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
2. 根据总体要求及分解的功能模块,确定各功能模块之间的关系,设直出完整的程序流程图。
c) 程序调试将设计完的程序输入,汇编,排除语法错误,生成*OBJ文件。
1. 按所设计的原理图,在实验平台上连线,检查无误。
2. 将汇编后生成的*OBJ文件传送到实验装置的,执行该程序,检查该程序、是否达到设计要求,若未达到,修改程序,直到达到要求为止,
d) 说明书
1. 原理图设计说明
简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。
2. 程序设计说明
对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。
3. 画出工作原理图,程序流程图并给出程序清单。
目前,单片机已广泛应用到图民经济建设和日常生活的许多领域,成为测控技术现代化必不可少的重要工具。下面介绍一本单片机课程设计的好书,介绍了很多实例有兴趣者可以去买哦,价格不贵【图书目录】 - 8051单片机课程设计实训教材
第1章 绪论
1.1 课程设计所需硬件工具
1.2 专题制作所需软件使用工具
1.3 8051程序开发测试平台
1.4 使用免费汇编编译
1.5 89CXX烧录模拟器操作实例
1.6 自制8051微电脑单板IO51
1.7 IO51操作实例
1.8 以Windows98 工作模式结合DOS模式来执行
第2章 8051单片机课程设计中的基本软硬件设计
2.1 8051各种基本的硬件设计
2.2 工作指示灯LED
2.3 8051延迟时间计算
2.4 基本按键设计
2.5 建立8051通信接口
2.6 简易8051调试界面
2.7 压电喇叭测试
2.8 键盘扫描
2.9 扫描控制七段显示器
2.10 LCD接口控制
2.11 8051定时器模式的工作
2.12 定时器模式0测试
2.13 定时器模式1测试
2.14 定时器模式2测试
2.15 以定时器产生各种频率的声音
2.16 以定时器演奏—段旋律
第3章 带单片机的LCD时钟
第4章 定时闹铃
第5章 定时闹铃LCD
第6章 音乐倒数定时器
第7章 密码锁控制
第8章 可存储式电子琴
第9章 8051八音盒
第10章 红外线遥控器研究
10.1 红外线遥控器动作原理
10.2 如何观察红外线遥控器信号
10.3 红外线遥控器译码功能说明
第11章 红外线家电遥控
第12章 8051伺服机控制
12.1 伺服机工作原理及改装
第1.3章 8051伺服车控制
13.1 功能说明
13.2 伺服车组装及实验
第14章 红外线遥控伺服车
14.1 功能说明
14.2 遥控伺服车组装及实验
14.3 控制电路
14.4 控制程序
第15章 无线电家电遥控
15.1 功能说明
15.2 遥控编码解码控制
第16章 8051声控设计
16.1 声控基本知识介绍
16.2 系统组成
16.3 声控模块介绍
16.4 基本控制电路
16.5 基本控制程序
16.6 声控课题设计

附录H 如何使用KEIL 8051开发系统汇编和编译程序及调试
附录I EPM89 890XX烧录模拟器特性
附录J 1051 8051 10控制板特性
附录K VCMM声控模块特性
附录L IO51控制板完整电路图
附录M 需要从网站下载的相关资料的使用说明
附录N 硬件接口板版权声明及如何订购
附录A 简易稳压电源制作
附录B 本书实验所需软硬件工具及零件
附录C 8051内部控制寄存器介绍
附录D 8051指令集
附录E 如何自制8051单板
附录F 课程设计报告参考内容
附录G IO51控制板窗口版驱动程序使用说明

阅读全文

与单片机课程设计电子钟相关的资料

热点内容
如何用命令方块整出效果 浏览:29
如何用u盘自制加密狗 浏览:174
笔记本上能安装什么编译器 浏览:685
程序员还是大龄剩女 浏览:95
android自定义view高度 浏览:215
开发一个软件app需要什么 浏览:38
如何查看服务器共享名字 浏览:565
linux重启mysql的命令行 浏览:368
fft算法c程序 浏览:187
编译出现时间标记 浏览:651
有什么读书的app 浏览:818
单片机可编程控制器 浏览:215
c语言编译怎么输入中文 浏览:898
小孩子学习编程的目的 浏览:927
中国人民保险车险app是什么 浏览:579
如何阻止服务器安装杀毒软件 浏览:567
谷歌清理加密货币 浏览:359
阿里云购买的云服务器可以退吗 浏览:687
程序员也很无奈啊你看懂了吗 浏览:516
手机如何开手游服务器 浏览:34