久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5247|回復: 0
打印 上一主題 下一主題
收起左側

12864m C51單片機并行C程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:72705 發表于 2015-1-24 16:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本人親測,絕對沒有問題,如果不對,請注意你的端口定義,而且數據口只能用P0,我用的是89S52,12M,祝大家好運!
  1. #include <regx52.h>
  2. #include <intrins.h>
  3. #include <string.h>
  4. #define uchar unsigned char       //自定義關鍵字
  5. #define BUSY_FLAG P0_7       //液晶模塊忙標志
  6. #define MPU_RS_CH P2_7       //寄存器選擇輸入   RS
  7. #define MPU_RW_CH P2_6       //讀寫控制     RW
  8. #define MPU_ENABLE P2_5       //使能控制        E
  9. #define MPU_PS_CH P3_6       //串/并傳輸控制    PSB
  10. #define MPU_RESET P3_7       //液晶復位控制    RST
  11. #define LCD_DATA P0        //液晶數據口    P0
  12. #define LOW    0        //低電平
  13. #define HIGH   1        //高電平
  14. #define OFF    0        //邏輯關
  15. #define ON    1        //邏輯開
  16. //-----------------------------------------------
  17. //液晶模塊指令集定義
  18. #define cClearDisplay 0x01      //清顯示指令
  19. #define cEntryModeSet 0x06      //設置輸入模式
  20. #define cDisplayOnCtrl 0x0c      //設置開顯控制
  21. #define cFunctionSetB 0x30      //功能設定(基本指令)
  22. #define cFunctionSetE 0x34      //功能設定(擴充指令)
  23. //-----------------------------------------------
  24. void checkLcdBusy (void)
  25. {
  26. LCD_DATA = 0xff;
  27. MPU_RS_CH = LOW;
  28. MPU_RW_CH = HIGH;
  29. MPU_ENABLE = HIGH;
  30. while (BUSY_FLAG);
  31. MPU_ENABLE = LOW;
  32. }
  33. //===============================================
  34. void delayMs (uchar ms)
  35. {
  36. uchar i;
  37. while (--ms)
  38. for (i = 0; i < 125; i++);
  39. }
  40. //===============================================
  41. void delaySec (uchar sec)
  42. {
  43. uchar i;
  44. while (--sec)
  45. for (i = 0; i < 200; i++)
  46.    delayMs (6);
  47. }
  48. //===============================================
  49. void lcdWriteCommand (uchar Command)
  50. {
  51. checkLcdBusy();
  52. MPU_RS_CH = LOW;
  53. MPU_RW_CH = LOW;
  54. LCD_DATA = Command;
  55. MPU_ENABLE = HIGH;
  56. delayMs(1);
  57. MPU_ENABLE = LOW;
  58. }
  59. //===============================================
  60. void lcdClear (void)
  61. {
  62. lcdWriteCommand(cClearDisplay);
  63. }
  64. //===============================================
  65. void lcdInit (void)   //初始化LCD子程序
  66. {
  67. MPU_RESET = LOW;
  68. delayMs(40);
  69. MPU_RESET = HIGH;
  70. delayMs(1);
  71. MPU_PS_CH = HIGH;
  72.    lcdWriteCommand(cFunctionSetE);
  73. lcdWriteCommand(cFunctionSetB);
  74. lcdClear();
  75. lcdWriteCommand(cEntryModeSet);
  76. lcdWriteCommand(cDisplayOnCtrl);
  77. }
  78. //===============================================
  79. void lcdWriteData (uchar Data)
  80. {
  81. checkLcdBusy();
  82. MPU_RS_CH = HIGH;
  83. MPU_RW_CH = LOW;
  84. LCD_DATA = Data;
  85. MPU_ENABLE = HIGH;
  86. delayMs(1);
  87. MPU_ENABLE = LOW;
  88. }
  89. //===============================================
  90. void dispString (uchar X, Y, speed, uchar *msg)
  91. {
  92. if (X == 0)       X = 0x80;
  93. else if (X == 1) X = 0x90;
  94. else if (X == 2) X = 0x88;
  95. else if (X == 3) X = 0x98;
  96. Y = X + Y;
  97. lcdWriteCommand(Y);
  98. while (*msg)
  99. {
  100.    lcdWriteData(*msg++);
  101.    delayMs(speed);
  102. }
  103. }
  104. //===============================================
  105. void main (void)
  106. {
  107. lcdInit (); lcdClear();
  108. while(1)
  109. {
  110. dispString(0, 0, 100, "西安建筑科技大學"); delaySec(1);
  111. dispString(1, 0, 100, "雁塔路中段13號"); delaySec(1);
  112. dispString(2, 1, 100, "冶金工程學院");      delaySec(1);
  113. dispString(3, 1, 100, "材料加工工程"); delaySec(6);
  114. lcdClear();
  115. dispString(0, 1, 100, "單片機開發");          delaySec(1);
  116. dispString(1, 0, 100, "電子設備研究開發"); delaySec(1);
  117. dispString(2, 1, 100, "工業過程模擬"); delaySec(1);
  118. dispString(3, 0, 100, "結構有限元分析"); delaySec(6);
  119. lcdClear();
  120. dispString(0, 0, 100, "聯系人:crasyboye");    delaySec(1);
  121. dispString(1, 0, 100, "電話:02982203875"); delaySec(1);
  122. dispString(2, 0, 100, "手機:13519198625"); delaySec(1);
  123. dispString(3, 1, 100, "共同學習共同進步");      delaySec(6);
  124. lcdClear();
  125. }
  126. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91久久国产综合久久91精品网站 | 性色av香蕉一区二区 | 成人在线国产 | 天天综合网永久 | 日韩精品网站 | 天堂色 | 成人黄页在线观看 | 二区av | 中文亚洲视频 | 国内久久 | 97国产成人 | 国产日韩精品视频 | 亚洲精品久久久蜜桃 | 精品一区二区在线视频 | 久草在线免费资源 | 91秦先生艺校小琴 | 特一级毛片| 国产精品国产三级国产aⅴ中文 | 久久国产亚洲 | 亚洲一区二区在线播放 | 精彩视频一区二区三区 | 精品中文字幕久久 | 中文字幕第90页 | 国产精品无码久久久久 | 97成人免费 | 中文字幕二区 | www,黄色,com | 亚洲午夜av | 日韩视频在线免费观看 | 伊人一区 | 国产欧美精品一区二区 | 久久国产精品一区 | 天天艹天天干天天 | 天堂综合网久久 | 精品国产欧美一区二区 | 国产午夜精品视频 | 亚洲视频二区 | 精品欧美视频 | 日韩一区欧美一区 | 日韩精品免费播放 | 欧美精品在线免费 |