VB上位机设置时间 51单片机DS1302时钟的proteus仿真程序

[复制链接]
查看17 | 回复0 | 2020-11-30 16:08:43 | 显示全部楼层 |阅读模式
VB上位机通过串口控制设置51单片机ds1302时钟时间,附件有上位机VB源码、proteus仿真文件和51单片机c程序源码。

1.png 2.jpg 3.png
51单片机部分代码
  1. #include <reg52.h>

  2. sbit T_CLK = P2^4; /*实时时钟时钟线引脚 */
  3. sbit T_IO = P2^3; /*实时时钟数据线引脚 */
  4. sbit T_RST = P2^2; /*实时时钟复位线引脚 */
  5. sbit ACC0=ACC^0;
  6. sbit ACC7=ACC^7;
  7. sbit rs=P2^0;
  8. sbit rw=P2^1;
  9. sbit e=P2^7;
  10. sbit setd=P3^2;
  11. sbit sett=P3^3;
  12. sbit add=P2^5;
  13. sbit enter=P2^6;
  14. sbit speaker=P3^7;
  15. unsigned char code tab[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};


  16. void v_RTInputByte(unsigned char ucDa)
  17. {
  18. unsigned char i;
  19. ACC = ucDa;
  20. for(i=8; i>0; i--)
  21. {
  22. T_IO = ACC0; /*相当于汇编中的 RRC */
  23. T_CLK = 1;
  24. T_CLK = 0;
  25. ACC = ACC >> 1;
  26. }
  27. }

  28. unsigned char uc_RTOutputByte(void)
  29. {
  30. unsigned char i;
  31. for(i=8; i>0; i--)
  32. {
  33. ACC = ACC >>1; /*相当于汇编中的 RRC */
  34. ACC7 = T_IO;
  35. T_CLK = 1;
  36. T_CLK = 0;
  37. }
  38. return(ACC);
  39. }

  40. void v_W1302(unsigned char ucAddr, unsigned char ucDa)
  41. {
  42. T_RST = 0;
  43. T_CLK = 0;
  44. T_RST = 1;
  45. v_RTInputByte(ucAddr); /* 地址,命令 */
  46. v_RTInputByte(ucDa); /* 写1Byte数据*/
  47. T_CLK = 1;
  48. T_RST =0;
  49. }

  50. unsigned char uc_R1302(unsigned char ucAddr)
  51. {
  52. unsigned char ucDa;
  53. T_RST = 0;
  54. T_CLK = 0;
  55. T_RST = 1;
  56. v_RTInputByte(ucAddr); /* 地址,命令 */
  57. ucDa = uc_RTOutputByte(); /* 读1Byte数据 */
  58. T_CLK = 1;
  59. T_RST =0;
  60. return(ucDa);
  61. }

  62. void v_BurstW1302T(unsigned char *pSecDa)
  63. {
  64. unsigned char i;
  65. v_W1302(0x8e,0x00); /* 控制命令,WP=0,写操作?*/
  66. T_RST = 0;
  67. T_CLK = 0;
  68. T_RST = 1;
  69. v_RTInputByte(0xbe); /* 0xbe:时钟多字节写命令 */
  70. for (i=8;i>0;i--) /*8Byte = 7Byte 时钟数据 + 1Byte 控制*/
  71. {
  72. v_RTInputByte(*pSecDa);/* 写1Byte数据*/
  73. pSecDa++;
  74. }
  75. T_CLK = 1;
  76. T_RST =0;
  77. }
  78. 以上为部分代码,完整源码请见附件
复制代码
源码_VB上位机程序_51mcuDS1302_proteus仿真.zip (729.33 KB, 售价: 10 工控币)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则