国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

ELEOK

標題: VB上位機設置時間 51單片機DS1302時鐘的proteus仿真程序 [打印本頁]

作者: coolfire    時間: 2020-11-30 16:08
標題: VB上位機設置時間 51單片機DS1302時鐘的proteus仿真程序
VB上位機通過串口控制設置51單片機ds1302時鐘時間,附件有上位機VB源碼、proteus仿真文件和51單片機c程序源碼。


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 E幣)




歡迎光臨 ELEOK (http://m.afoofa.cn/) Powered by Discuz! X5.0