欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1550|回復: 1
收起左側

基于51單片機的動態圖片顯示程序Proteus仿真 128X64液晶

[復制鏈接]
ID:979776 發表于 2021-11-10 15:31 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif

單片機源程序如下:
  1. #include<reg51.h>
  2. #include "BMP1.h"
  3. #include "BMP2.h"
  4. #include "BMP3.h"
  5. #include "BMP4.h"
  6. #include "BMP5.h"
  7. #include "BMP6.h"
  8. #include "BMP7.h"
  9. #include "BMP8.h"
  10. #include "BMP9.h"
  11. #include "BMP10.h"
  12. #define LCD P0
  13. #define uint unsigned int
  14. #define uchar unsigned char
  15. unsigned char a,i,j,k;
  16. int b;
  17. sbit EN=P2^0;
  18. sbit RW=P2^1;
  19. sbit RS=P2^2;
  20. sbit CS1=P2^3;
  21. sbit CS2=P2^4;
  22. sbit BUSY=P0^0;
  23. void DelayMS(uint ms)//延時
  24. {
  25. uchar i;
  26. while(ms--)
  27. {
  28.   for(i=0;i<120;i++);
  29.   }
  30. }
  31. checkbusy()
  32. {
  33. EN=1;
  34. RW=1;
  35. RS=0;
  36. LCD=0XFF;
  37. if(BUSY);
  38. }
  39. writecode(unsigned char dat) //寫命令
  40. {
  41. checkbusy();
  42. EN=1;
  43. RW=0;
  44. RS=0;
  45. LCD=dat;
  46. EN=1;
  47. EN=0;
  48. }
  49. writedata(unsigned char dat) //寫數據
  50. {
  51. checkbusy();
  52. EN=1;
  53. RW=0;
  54. RS=1;
  55. LCD=dat;
  56. EN=1;
  57. EN=0;
  58. }
  59. //滿屏函數
  60. void LCDDisplay(unsigned char page,unsigned char lineaddress, unsigned char table[8][128])
  61. {
  62. for(i=0;i<8;i++)
  63. {
  64. if(lineaddress<0X80)
  65. {
  66. CS1=0;
  67. CS2=0;
  68. }
  69. writecode(page+i);
  70. writecode(lineaddress);
  71. for(j=0;j<64;j++)
  72. {
  73. writedata(table[i][j]);
  74. lineaddress+=1;
  75. }
  76. if(lineaddress>=0X80)
  77. {
  78. CS1=0;
  79. CS2=1;
  80. lineaddress=lineaddress-0X40;
  81. }
  82. writecode(page+i);
  83. writecode(lineaddress);
  84. for(j=64;j<128;j++)
  85. {
  86. writedata(table[i][j]);
  87. lineaddress+=1;
  88. }
  89. if(lineaddress>=0X80)
  90. {
  91. lineaddress=lineaddress-0X40;
  92. }
  93. }
  94. }
  95. void lcdinti()
  96. {
  97. writecode(0X3F);
  98. writecode(0XC0);
  99. writecode(0XB8);
  100. writecode(0X40);
  101. }
  102. main()
  103. {
  104. lcdinti();
  105. while(1)
  106. {
  107. LCDDisplay(0Xb8,0X40,&a1);
  108. DelayMS(10);       
  109. LCDDisplay(0Xb8,0X40,&a2);
  110. DelayMS(10);               
  111. LCDDisplay(0Xb8,0X40,&a3);
  112. DelayMS(10);               
  113. }
  114. }
復制代碼

所有資料51hei附件下載:
動態圖片顯示.7z (151.78 KB, 下載次數: 17)

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:908826 發表于 2021-11-10 19:15 | 顯示全部樓層
這個原理是什么呢,快速播放靜態圖片實現動態效果嗎???
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表