用单片机设计一个数字时钟

作者&投稿:於雅 (若有异议请与网页底部的电邮联系)
第一次弄单片机,想实现一个数字时钟~

做电子时钟,首先要设计电路啊,是用数码管显示,还是用LCD屏显示。要做实物还要焊接板子。这些电路做完了,才开始写程序的。没有电路是不好写程序的。
至于时钟就好写了,用定时器定时20ms,或50ms,采用中断方式,然后对中断计数,中断50次,或20次就是1秒。
有了1秒,就好办了,计60秒,为1分,计计60分,为1小时,计24小时,为1天。计时后再显示出来,就成了。

ORG 0000HAJMP MAIN // ;跳转到主程序 ORG 000BH // ;T0中断入口AJMP PTF0 // ;中断处理首地址 //主程序MAIN: MOV SP,#05FH MOV 30H,#0 // ;缓冲单元设置初值12:00:00 MOV 31H,#0 MOV 32H,#0 MOV 36H,#0FH // ; 设置4000次中断计数 MOV 37H,#0A0H MOV TMOD,#02H // ;定时器启动 MOV TL0,#6 MOV TH0,#6 SETB TR0 // 启动T0计时器 MOV IE,#82H MOV IP,#20H//数码管动态显示LED6: LCALL DISPLAY JNB P1.0,CLEAR //;判断键盘输入 JNB P1.1,SET_MINUTE JNB P1.2,SET_HOUR AJMP LED6CLEAR: LCALL DISPLAY JNB P1.0,CLEAR MOV 30H,#12H //;时钟显示复位 A键 MOV 31H,#0 MOV 32H,#0 SJMP LED6SET_MINUTE: LCALL DISPLAY JNB P1.1,SET_MINUTE MOV A,31H //;调节分加1 B键 CJNE A,#59H,MIN MOV 31H,#0 SJMP LED6SET_HOUR: LCALL DISPLAY JNB P1.2,SET_HOUR MOV R1,#30H //;调节时加1 C键 MOV A,@R1 CJNE A,#23H,HOUR // 比较立即数和A,不相等则转移 MOV 30H,#0MIN: ADD A ,#1 //将1加到累加器 DA A // 累加器十进制调整 MOV 31H,A LCALL DELAY1 AJMP LED6HOUR: ADD A,#1 DA A MOV 30H,A LCALL DELAY1 AJMP LED6DISPLAY: MOV DPTR,#TAB //;表的首地址给16位数据指针寄存器DPTR MOV A,30H // ;时为的十位显示 SWAP A // A的高四位和低四位互换 ANL A,#0FH // A与00001111相与 MOVC A,@A+DPTR // 程序存储器代码字节传送到累加器 MOV P2,#7FH MOV P0,A LCALL DELAY //调用延时子程序 MOV A,30H // ;时位的个位显示 ANL A,#0FH MOVC A,@A+DPTR MOV P2,#0BFH MOV P0,A LCALL DELAY MOV A,31H // ;分位的十位显示 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,#0EFH MOV P0,A LCALL DELAY MOV A,31H //;分位的个位显示 ANL A,#0FH MOVC A,@A+DPTR MOV P2,#0F7H MOV P0,A LCALL DELAY MOV A,32H // ;秒位的十位显示 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,#0FDH MOV P0,A LCALL DELAY MOV A,32H //;秒位的个位显示 ANL A,#0FH MOVC A,@A+DPTR MOV P2,#0FEH MOV P0,A LCALL DELAY RET//中断程序PTF0: PUSH PSW ;中断处理 PUSH ACC MOV PSW,#8 DJNZ 37H,PTF0R DJNZ 36H,PTF0R MOV 36H,#0FH MOV 37H,#0A0H MOV R0,#32H //;定时到一秒 MOV A,@R0 ADD A,#1 DA A MOV @R0,A CJNE A,#60H,PTF0R MOV @R0,0 DEC R0 MOV A,@R0 ADD A,#1 DA A MOV @R0,A CJNE A,#60H,PTF0R MOV @R0,#0 DEC R0 MOV A,@R0 ADD A,#1 DA A MOV @R0,A CJNE A,#24H,PTF0R MOV @R0,#0PTF0R: POP ACC // 保护现场 POP PSW RETI // 中断返回DELAY: MOV R6,#10 //;动态显示延时L0: MOV R7,#250 DJNZ R7,$ DJNZ R6,L0 // 寄存器减一,不为0则转移 RET // 子程序返回DELAY1: MOV R5,#1BH //;调整时、分显示延时L1: MOV R6,#9HL2: MOV R7,#19H DJNZ R7,$ DJNZ R6,L2 DJNZ R5,L1 RET //数码显示表TAB: DB 3FH,06H,5BH,4FH,66H // ; 0,1,2,3,4 DB 6DH,7DH,07H,7FH,6FH // ; 5,6,7,8,9 END

#include <REG51.H>#include <intrins.h> #define uint unsigned int#define uchar unsigned charsbit DS1302_CLK = P1^7; //实时时钟时钟线引脚 sbit DS1302_IO = P1^6; //实时时钟数据线引脚 sbit DS1302_RST = P1^5; //实时时钟复位线引脚sbit wireless_1 = P3^0;sbit wireless_2 = P3^1;sbit wireless_3 = P3^2;sbit wireless_4 = P3^3; //无线控制sbit ACC0 = ACC^0;sbit ACC7 = ACC^7;char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,时到日,月,年位闪的计数sbit Set = P2^0; //模式切换键sbit Up = P2^1; //加法按钮sbit Down = P2^2; //减法按钮sbit out = P2^3; //立刻跳出调整模式按钮sbit DQ = P1^0; //温度传送数据IO口char done,count,temp,flag,up_flag,down_flag;uchar temp_value; //温度值uchar TempBuffer[5],week_value[2]; void show_time(); //液晶显示程序/***********1602液晶显示部分子程序****************///Port Definitions**********************************************************sbit LcdRs = P2^5;sbit LcdRw = P2^6;sbit LcdEn = P2^7;sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口 //内部等待函数**************************************************************************unsigned char LCD_Wait(void){ LcdRs=0; LcdRw=1; _nop_(); LcdEn=1; _nop_(); LcdEn=0; return DBPort; }//向LCD写入命令或数据************************************************************#define LCD_COMMAND 0 // Command#define LCD_DATA 1 // Data#define LCD_CLEAR_SCREEN 0x01 // 清屏#define LCD_HOMING 0x02 // 光标返回原点void LCD_Write(bit style, unsigned char input){ LcdEn=0; LcdRs=style; LcdRw=0; _nop_(); DBPort=input; _nop_();//注意顺序 LcdEn=1; _nop_();//注意顺序 LcdEn=0; _nop_(); LCD_Wait(); } //设置显示模式************************************************************#define LCD_SHOW 0x04 //显示开#define LCD_HIDE 0x00 //显示关 #define LCD_CURSOR 0x02 //显示光标#define LCD_NO_CURSOR 0x00 //无光标 #define LCD_FLASH 0x01 //光标闪动#define LCD_NO_FLASH 0x00 //光标不闪动 void LCD_SetDisplay(unsigned char DisplayMode){ LCD_Write(LCD_COMMAND, 0x08|DisplayMode); } //设置输入模式************************************************************#define LCD_AC_UP 0x02#define LCD_AC_DOWN 0x00 // default #define LCD_MOVE 0x01 // 画面可平移#define LCD_NO_MOVE 0x00 //default void LCD_SetInput(unsigned char InputMode){ LCD_Write(LCD_COMMAND, 0x04|InputMode);} //初始化LCD************************************void LCD_Initial(){ LcdEn=0; LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵 LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动} //液晶字符输入的位置************************void GotoXY(unsigned char x, unsigned char y){ if(y==0) LCD_Write(LCD_COMMAND,0x80|x); if(y==1) LCD_Write(LCD_COMMAND,0x80|(x-0x40));} //将字符输出到液晶显示void Print(unsigned char *str){ while(*str!='\0') { LCD_Write(LCD_DATA,*str); str++; }} /***********DS1302时钟部分子程序******************/typedef struct __SYSTEMTIME__{ unsigned char Second; unsigned char Minute; unsigned char Hour; unsigned char Week; unsigned char Day; unsigned char Month; unsigned char Year; unsigned char DateString[11]; unsigned char TimeString[9];}SYSTEMTIME; //定义的时间类型SYSTEMTIME CurrentTime; #define AM(X) X#define PM(X) (X+12) // 转成24小时制#define DS1302_SECOND 0x80 //时钟芯片的寄存器位置,存放时间#define DS1302_MINUTE 0x82#define DS1302_HOUR 0x84 #define DS1302_WEEK 0x8A#define DS1302_DAY 0x86#define DS1302_MONTH 0x88#define DS1302_YEAR 0x8C void DS1302InputByte(unsigned char d) //实时时钟写入一字节(内部函数){ unsigned char i; ACC = d; for(i=8; i>0; i--) { DS1302_IO = ACC0; //相当于汇编中的 RRC DS1302_CLK = 1; DS1302_CLK = 0; ACC = ACC >> 1; } } unsigned char DS1302OutputByte(void) //实时时钟读取一字节(内部函数){ unsigned char i; for(i=8; i>0; i--) { ACC = ACC >>1; //相当于汇编中的 RRC ACC7 = DS1302_IO; DS1302_CLK = 1; DS1302_CLK = 0; } return(ACC); } void Write1302(unsigned char ucAddr, unsigned char ucDa) //ucAddr: DS1302地址, ucData: 要写的数据{ DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr); // 地址,命令 DS1302InputByte(ucDa); // 写1Byte数据 DS1302_CLK = 1; DS1302_RST = 0;} unsigned char Read1302(unsigned char ucAddr) //读取DS1302某地址的数据{ unsigned char ucData; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr|0x01); // 地址,命令 ucData = DS1302OutputByte(); // 读1Byte数据 DS1302_CLK = 1; DS1302_RST = 0; return(ucData);} void DS1302_GetTime(SYSTEMTIME *Time) //获取时钟芯片的时钟数据到自定义的结构型数组{ unsigned char ReadValue; ReadValue = Read1302(DS1302_SECOND); Time->Second = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); 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&0x70)>>4)*10 + (ReadValue&0x0F); } void DateToStr(SYSTEMTIME *Time) //将时间年,月,日,星期数据转换成液晶显示字符串,放到数组里DateString[]{ if(hide_year<2) //这里的if,else语句都是判断位闪烁,<2显示数据,>2就不显示,输出字符串为 2007/07/22 { Time->DateString[0] = '2'; Time->DateString[1] = '0'; Time->DateString[2] = Time->Year/10 + '0'; Time->DateString[3] = Time->Year%10 + '0'; } else { Time->DateString[0] = ' '; Time->DateString[1] = ' '; Time->DateString[2] = ' '; Time->DateString[3] = ' '; } Time->DateString[4] = '/'; if(hide_month<2) { Time->DateString[5] = Time->Month/10 + '0'; Time->DateString[6] = Time->Month%10 + '0'; } else { Time->DateString[5] = ' '; Time->DateString[6] = ' '; } Time->DateString[7] = '/'; if(hide_day<2) { Time->DateString[8] = Time->Day/10 + '0'; Time->DateString[9] = Time->Day%10 + '0'; } else { Time->DateString[8] = ' '; Time->DateString[9] = ' '; } if(hide_week<2) { week_value[0] = Time->Week%10 + '0'; //星期的数据另外放到 week_value[]数组里,跟年,月,日的分开存放,因为等一下要在最后显示 } else { week_value[0] = ' '; } week_value[1] = '\0'; Time->DateString[10] = '\0'; //字符串末尾加 '\0' ,判断结束字符} void TimeToStr(SYSTEMTIME *Time) //将时,分,秒数据转换成液晶显示字符放到数组 TimeString[];{ if(hide_hour<2) { Time->TimeString[0] = Time->Hour/10 + '0'; Time->TimeString[1] = Time->Hour%10 + '0'; } else { Time->TimeString[0] = ' '; Time->TimeString[1] = ' '; } Time->TimeString[2] = ':'; if(hide_min<2) { Time->TimeString[3] = Time->Minute/10 + '0'; Time->TimeString[4] = Time->Minute%10 + '0'; } else { Time->TimeString[3] = ' '; Time->TimeString[4] = ' '; } Time->TimeString[5] = ':'; if(hide_sec<2) { Time->TimeString[6] = Time->Second/10 + '0'; Time->TimeString[7] = Time->Second%10 + '0'; } else { Time->TimeString[6] = ' '; Time->TimeString[7] = ' '; } Time->DateString[8] = '\0';} void Initial_DS1302(void) //时钟芯片初始化{ unsigned char Second=Read1302(DS1302_SECOND); if(Second&0x80) //判断时钟芯片是否关闭 { Write1302(0x8e,0x00); //写入允许 Write1302(0x8c,0x07); //以下写入初始化时间 日期:07/07/25.星期: 3. 时间: 23:59:55 Write1302(0x88,0x07); Write1302(0x86,0x25); Write1302(0x8a,0x07); Write1302(0x84,0x23); Write1302(0x82,0x59); Write1302(0x80,0x55); Write1302(0x8e,0x80); //禁止写入 } } /***********ds18b20子程序*************************/ /***********ds18b20延迟子函数(晶振12MHz )*******/ void delay_18B20(unsigned int i){ while(i--);} /**********ds18b20初始化函数**********************/ void Init_DS18B20(void) { unsigned char x=0; DQ = 1; //DQ复位 delay_18B20(8); //稍做延时 DQ = 0; //单片机将DQ拉低 delay_18B20(80); //精确延时 大于 480us DQ = 1; //拉高总线 delay_18B20(14); x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay_18B20(20);} /***********ds18b20读一个字节**************/ unsigned char ReadOneChar(void){ uchar i=0; uchar dat = 0; for (i=8;i>0;i--) { DQ = 0; // 给脉冲信号 dat>>=1; DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); } return(dat);} /*************ds18b20写一个字节****************/ void WriteOneChar(uchar dat){ unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat>>=1; }} /**************读取ds18b20当前温度************/ void ReadTemp(void){ unsigned char a=0; unsigned char b=0; unsigned char t=0; Init_DS18B20(); WriteOneChar(0xCC); // 跳过读序号列号的操作 WriteOneChar(0x44); // 启动温度转换 delay_18B20(100); // this message is wery important Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度 delay_18B20(100); a=ReadOneChar(); //读取温度值低位 b=ReadOneChar(); //读取温度值高位 temp_value=b<<4; temp_value+=(a&0xf0)>>4; }void temp_to_str() //温度数据转换成液晶字符显示{ TempBuffer[0]=temp_value/10+'0'; //十位 TempBuffer[1]=temp_value%10+'0'; //个位 TempBuffer[2]=0xdf; //温度符号 TempBuffer[3]='C'; TempBuffer[4]='\0';}void Delay1ms(unsigned int count){ unsigned int i,j; for(i=0;i<count;i++) for(j=0;j<120;j++);} /*延时子程序*/void mdelay(uint delay){ uint i; for(;delay>0;delay--) {for(i=0;i<62;i++) //1ms延时. {;} }}


用C语言编写AT89C51单片机程序,设计一个智能数字钟。
EA=1;ET0=1;TR0=1;TMOD=0x01;TH0=0x4c; \/\/50ms初值 晶振11.0592 TL0=0x00;hour=23;minu=59;sec=49; \/\/赋初值:11点59分0秒 n_hour=12;n_minu=56;n_sec=0; \/\/闹钟赋初值12点1分0秒 year=2008;mon=5;day=14;week=3;\/\/年月日星期赋初值2008年5月11日星期天;祝天下所有...

51单片机做数字电子钟
设计一个数字电子钟,要求可以进行时、分、秒显示,最大显示时间为23:59:59,并且可以通过按键进行时、分调整。画出硬件连接电路图,说明各个控制信号的作用。᠑...  设计一个数字电子钟,要求可以进行时、分、秒显示,最大显示时间为23:59:59,并且可以通过按键进行时、分调整。 画出硬件连接电路图...

使用PROTEUS 利用89S51单片机设计一个数字时钟仿真 具体如下:_百度知 ...
SWAP A ;十位数占高4位 ORL A,@R0 ;个位数占低4位

求:用单片机C语言编一位数码管的数字显示 要求可以从0变化到9
{while(){ P0=led(dat);\/\/显示dat变量,这里只能显示数字0~9;} }

使用51单片机+设计一个6位数的数字时钟两位显示小时两位显示分钟两位显 ...
使用51单片机+设计一个6位数的数字时钟两位显示小时两位显示分钟两位显示秒。

设计一个以单片机为核心的数字电子钟。
MIN MOV 31H,#0 SJMP LED6SET_HOUR: LCALL DISPLAY JNB P1.2,SET_HOUR MOV R1,#30H \/\/;调节时加1 C键 MOV A,@R1 CJNE A,#23H,HOUR \/\/ 比较立即数和A,不相等则转移 MOV 30H,#0MIN: ADD A ,#1 \/\/将1加到累加器 DA A \/\/ 累...

单片机数字时钟设计
MOV R7, #0X00 ; 如果已经取过所有数,则重新开始去第一个数 MOV DPTR, #TABLE SJMP LOOP NEXT: INC DPTR ; 指针寄存器加1 SJMP LOOP ; 循环显示 DELAY: MOV R1, #0XC8 ; 延时20MS DL2: MOV R2,...

用单片机设计一个数字时钟
用单片机设计一个数字时钟 要求:以24个小时为一个周期,显示时分秒。有校时功能,可以分别对时分秒进行单独校时,使其校正到标准时间。计时过程具有报时功能,当时间到达整点前5秒进行蜂鸣报时,为了保证计时的准确须由晶体振荡器提供表针时间基准信号!邮箱:447504025@qq.com 懂的大哥大姐帮忙答案发我邮箱!!!谢谢~~~ ...

利用单片机AT89C51与ADC0808设计一个数字电压表,能够测量0~5V的直流电...
例如,要显示“0”,则dp g f e d c b a分别为:00111111B;若要显示多个数字,只要让若干个数码管的位码循环为高电平就可以了。根据设计要求,显示电路需要至少4位LED数码管来显示电压值,我们再多加一位用来显示电压单位“V”,则有7位LED循环显示。利用单片机的I\/O口驱动LED数码管的亮灭,设计中由P0口驱动...

单片机屏幕循环显示数字程序设计
0X6D,0X7D,0X07,0X7F,0X6F, \/\/0~9 };void delay_ms(INT16U x){ INT8U t;while(x--) for(t=0;t<120;t++);} void main(){INT8U i;while(1){ for(i=0;i<9;i++){ P0=SEG_CODE[i];delay_ms(550);} } } 这是0~9的程序,给个采纳咯,注意是共阴极的数码管 ...

贵溪市13798742983: 基于单片机的数字时钟设计方案 -
掌怕益肾: 数字钟〔★〕这里用了两种编写方法(即汇编语言与C语言) (1. 开机时,显示12:00:00的时间开始计时;(2. P0.0/AD0控制“秒”的调整,每按一次加1秒; (3. P0.1/AD1控制“分”的调整,每按一次加1分; (4. P0.2/AD2控制“时”的调...

贵溪市13798742983: 数字钟设计 单片机 -
掌怕益肾: 相关资料: 多功能数字钟设计 一 简介 时钟, 自从它发明的那天起,就成为人类的朋友,但随着时间的推移,人们对它的功能又提出了新的要求,怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时...

贵溪市13798742983: 第一次弄单片机,想实现一个数字时钟 -
掌怕益肾: 做电子时钟,首先要设计电路啊,是用数码管显示,还是用LCD屏显示.要做实物还要焊接板子.这些电路做完了,才开始写程序的.没有电路是不好写程序的. 至于时钟就好写了,用定时器定时20ms,或50ms,采用中断方式,然后对中断计数,中断50次,或20次就是1秒. 有了1秒,就好办了,计60秒,为1分,计计60分,为1小时,计24小时,为1天.计时后再显示出来,就成了.

贵溪市13798742983: 用C语言编写AT89C51单片机程序,设计一个智能数字钟. -
掌怕益肾: 基本要求:1.C语言程序要求是模块化设计.2.该闹钟基于AT89C51单片机及相关外围电路进行设计.3.该闹钟有6个数码管(共阳极),可分别显示时间(时、分、秒)、及定时时间(分、秒).4.该闹钟有4个按钮,S1是切换显示按键,该键按下时可分别实现切换正常走时显示、设定走时显示、设置定时时间,启动定时,回到正常状态等功能.S2是设定键,即该键按下,将分别选中需要设定的选项.S3键是加键,即按下去表示相应选项加1.S4键是减键,即按下去表示相应的选项减1.5.该闹钟可以定时时间到,LED将发出提示闪光,且持续30s.发挥要求:1.定时时间可被打断,即打断后恢复时继续计时.2.设置闹钟报警功能;3.能切换显示年月日等信息.

贵溪市13798742983: 单片机数字时钟程序 -
掌怕益肾: #include sbit SCL2=P1^3; //SCL2定义为P1口的第3位脚,连接DS1302SCL和ADC0831SCL脚sbit SDA2=P1^4; //SDA2定义为P1口的第4位脚,...

贵溪市13798742983: 单片机C语言编程简易数字电子时钟 -
掌怕益肾: #include unsigned char X=10,sec,flag;unsigned char key[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};// 数码管显示数字表unsigned char ke...

贵溪市13798742983: 怎么用51单片机做一个时钟 -
掌怕益肾: 一片单片机+一个LED数码模块或LCD液晶模块+一段简单的程序=一个简单的时钟. 一片单片机+一片DS1302或其他的时基芯片+一个LED数码模块或LCD液晶模块+一段简单的程序=一个实用的时钟. 系统构成确定了以后,程序就有现成的了,可以移步到百度网页“百度一下”里搜索,资源多如牛毛.

贵溪市13798742983: 基于单片机的数字时钟怎么做?
掌怕益肾: #include<reg52.h>#define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit rs=P3^5; sbit lcden=P3^4; sbit s1=P3^0; sbit s2=P3^1; sbit s3=P3^2; sbit rd=P3^7; uchar count,s1num; char miao,shi,fen; uchar code ...

贵溪市13798742983: 用单片机制作一个简易的时钟.. -
掌怕益肾: #include<reg52.h> #include"segnumca.h" #define uchar unsigned char sbit _speak=P1^0; //蜂鸣器P1^0 uchar hello_[]={0x89,0x86,0xc7,0xc7,0xc0,0xf7}; //HELLO_ uchar con[]={0x01,0x02,0x04,0x08,0x10,0x20}; //位控制 uchar time0=100; ...

贵溪市13798742983: 基于单片机的电子时钟 -
掌怕益肾: 去百度文库,查看完整内容> 内容来自用户:啊宝1688 绪论 单片机在多功能数字电子钟中的应用已是非常普遍,人们对电子时钟的功能及工作顺序都已非常熟悉了,但是却很少知道它的内部结构以及工作原理.由单片机作为电子时钟的核心控...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网