先上两张图。新手第一次焊的东西,见笑了。:$
本来想用两个钮扣电池供电的,后来发现这它供电很快就会用完,所以就改成了外接电源供电.
线路板北面,电源部分和上接电阻部分焊的最差了,铜片都焊过几个。
上拉电阻一开始还焊反了,。:lol
可惜了,还没学会画原理图和pcb制板,只能手工焊着试试。
程序是从网上下载后改的,才学的,还不太会,只能先改别人的,增加下目标。
闹钟程序不会写,想用stc89c52rc自带的eeprom存闹钟的定时数据,可是数据读取后不知道怎么用1602显示,读出的数据是二进制或十六进制,转主十进制,赋值个字符型变量后系统就认为那个数据是ascii码的,而不是时间数据了。
例如:
unsigned int ddd;
char irc[1],aaa[1];//这些为测试时临时的变量,如果成功就删了
Sector_erase(0x2000); //扇区擦除
Byte_program(0x2000, 0x17); //写EEPROM
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
ddd=Byte_read(0x2000);//ddd值为读取扇区的数据
GotoXY(9,1);//定义坐标
sprintf(aaa,"%02X",ddd);//将数值型变量ddd的值赋给字符型变量aaa,这种方法可行
Print(aaa); //Print()为lcd1602的显示字符函数,显示aaa的值
这种方法可以将从eeprom中读取的数据正确的显示到液晶屏上,现在的问题是如果用sprintf函数所生成的.hex文件就会很大(比不用这个函数时大了将近3K)。如此一来闹钟的程序就没法写了,闹铃的音乐也装不下了。
想请各位高手给个方法,帮帮忙,解决一下。
附件中的程序是无eeprom读定的程序,无闹钟程序。
附件中带仿真。
如果有人把它完善了,别忘了上传一份上来给大家分享。
时钟程序.rar
(62.56 KB)
|