历史上的今天
今天是:2024年12月23日(星期一)
2020年12月23日 | 基于STC89C51的时钟电路PCB程序 DS1302+LCD1602
2020-12-23 来源:51hei
制作出来的实物图如下:

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)

单片机源程序如下:
/*******************************************************************************
* 实验名 : 万年历实验
* 使用的IO :
* 实验效果 :1602显示时钟,按K3进入时钟设置,按K1选择设置的时分秒日月,按K2选择
*选择设置加1。
* 注意 :
*******************************************************************************/
#include #include"lcd.h" #include"ds1302.h" sbit K1=P2^0; sbit K2=P2^1; sbit K3=P2^2; sbit K4=P2^3; void Int0Configuration(); void LcdDisplay(); unsigned char SetState,SetPlace; void Delay10ms(void); //误差 0us void Timer0Init(); void key_proy(); /******************************************************************************* * 函数名 : main * 函数功能 : 主函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void main() { LcdInit(); Ds1302Init(); Timer0Init(); //定时器0初始化 while(1) { if(SetState==0) { Ds1302ReadTime(); } else { key_proy(); } LcdDisplay(); } } void key_proy() { unsigned char i; if(K1==0) //检测按键K1是否按下 { Delay10ms(); //消除抖动 if(K1==0) { SetPlace++; if(SetPlace>=7) SetPlace=0; } while((i<50)&&(K1==0)) //检测按键是否松开 { Delay10ms(); i++; } i=0; } if(K2==0) //检测按键K2是否按下 { Delay10ms(); //消除抖动 if(K2==0) { TIME[SetPlace]++; if((TIME[SetPlace]&0x0f)>9) //换成BCD码。 { TIME[SetPlace]=TIME[SetPlace]+6; } if((TIME[SetPlace]>=0x60)&&(SetPlace<2)) //分秒只能到59 { TIME[SetPlace]=0; } if((TIME[SetPlace]>=0x24)&&(SetPlace==2)) //小时只能到23 { TIME[SetPlace]=0; } if((TIME[SetPlace]>=0x32)&&(SetPlace==3)) //日只能到31 { TIME[SetPlace]=0; } if((TIME[SetPlace]>=0x13)&&(SetPlace==4)) //月只能到12 { TIME[SetPlace]=0; } if((TIME[SetPlace]>=0x7)&&(SetPlace==5)) //周只能到7 { TIME[SetPlace]=1; }
史海拾趣
|
for(;i!=0;i--)和while(i--)之间有区别吗?? 我今天用软件的方法来延时,延时程序如下:(只看有颜色的部分就可以了) #include void delay(int i) { int j,k; for(j=0;j… 查看全部问答> |
|
我的开发板是bios引导wince系统,系统编译后nk.nb0大概35M左右,调试发现从nandflash拷贝系统到SDRAM需要40S时间啊,实在太慢、、把拷贝代码贴出来,还请大侠指点: static void LoadRunWince(void) { U32 i, ram_a ...… 查看全部问答> |
|
IBM R51e机器(winXP),在电脑城试用一无线鼠后,回家后发现所有usb鼠标均不能使用,但其它u盘、移动硬盘之类的都能用,小红点也可用。 1。查设备管理器,在“人体学输入设备”中有“usb人体学输入设备”和“hid_compliant device”两项; 2。卸 ...… 查看全部问答> |
|
FPGA应用可分为三个层面:电路设计、产品设计、系统设计1.系统级应用 系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用XilinxV-4, V-5系列的FPGA,实现内嵌POWERPCCPU, 然后再配合各种外围功能,实现一个基本环境 ...… 查看全部问答> |
|
这显然不是一个高大上的制作,MSP430加一个舵机,火车每过一圈就扳一次道。 用到的东西只有定时器和IO口了。 我想告诉大家的是这个设计使用了Energia开发,整个实现使用了10分钟。 想到然后快速的实现,享受了开发和实现的双重乐趣。 … 查看全部问答> |




