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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

protues lcd1602單片機仿真

[復制鏈接]
ID:114150 發表于 2016-4-14 10:36 | 顯示全部樓層 |閱讀模式
該帖為51單片機仿真1602
0.png
1.png
1602.h文件:
  1. /**************************************************************************
  2.   
  3.                                    THE 1602 CHAR LCD LIB
  4.   
  5.                              COPYRIGHT (c)   2005 BY JJJ.
  6.                                        --  ALL RIGHTS RESERVED  --
  7.   
  8.    File Name:       LCD.h
  9.    Author:          Jiang Jian Jun
  10.    Created:         2005/4/3
  11.    Modified:                NO
  12.    Revision:                 1.0
  13.   
  14. ***************************************************************************/

  15. #ifndef LCD_CHAR_1602_2005_4_9
  16. #define LCD_CHAR_1602_2005_4_9

  17. #include <intrins.h>

  18. //Port Definitions**********************************************************
  19. sbit LcdRs                = P2^0;
  20. sbit LcdRw                = P2^1;
  21. sbit LcdEn          = P2^2;
  22. sfr  DBPort         = 0x80;                //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數據端口

  23. //內部等待函數**************************************************************************
  24. unsigned char LCD_Wait(void)
  25. {
  26.         LcdRs=0;
  27.         LcdRw=1;        _nop_();
  28.         LcdEn=1;        _nop_();
  29.         //while(DBPort&0x80);//在用Proteus仿真時,注意用屏蔽此語句,在調用GotoXY()時,會進入死循環,
  30.                                                  //可能在寫該控制字時,該模塊沒有返回寫入完備命令,即DBPort&0x80==0x80
  31.                                                  //實際硬件時打開此語句
  32.         LcdEn=0;
  33.         return DBPort;               
  34. }
  35. //向LCD寫入命令或數據************************************************************
  36. #define LCD_COMMAND                        0      // Command
  37. #define LCD_DATA                        1      // Data
  38. #define LCD_CLEAR_SCREEN        0x01      // 清屏
  39. #define LCD_HOMING                  0x02      // 光標返回原點
  40. void LCD_Write(bit style, unsigned char input)
  41. {
  42.         LcdEn=0;
  43.         LcdRs=style;
  44.         LcdRw=0;                _nop_();
  45.         DBPort=input;        _nop_();//注意順序
  46.         LcdEn=1;                _nop_();//注意順序
  47.         LcdEn=0;                _nop_();
  48.         LCD_Wait();       
  49. }

  50. //設置顯示模式************************************************************
  51. #define LCD_SHOW                        0x04    //顯示開
  52. #define LCD_HIDE                        0x00    //顯示關          

  53. #define LCD_CURSOR                        0x02         //顯示光標
  54. #define LCD_NO_CURSOR                0x00    //無光標                     

  55. #define LCD_FLASH                        0x01    //光標閃動
  56. #define LCD_NO_FLASH                0x00    //光標不閃動

  57. void LCD_SetDisplay(unsigned char DisplayMode)
  58. {
  59.         LCD_Write(LCD_COMMAND, 0x08|DisplayMode);       
  60. }

  61. //設置輸入模式************************************************************
  62. #define LCD_AC_UP                        0x02
  63. #define LCD_AC_DOWN                        0x00      // default

  64. #define LCD_MOVE                        0x01      // 畫面可平移
  65. #define LCD_NO_MOVE                        0x00      //default

  66. void LCD_SetInput(unsigned char InputMode)
  67. {
  68.         LCD_Write(LCD_COMMAND, 0x04|InputMode);
  69. }

  70. //移動光標或屏幕************************************************************
  71. /*
  72. #define LCD_CURSOR                0x02      
  73. #define LCD_SCREEN                0x08
  74. #define LCD_LEFT                0x00
  75. #define LCD_RIGHT                0x04
  76. void LCD_Move(unsigned char object, unsigned char direction)
  77. {
  78.         if(object==LCD_CURSOR)
  79.                 LCD_Write(LCD_COMMAND,0x10|direction);
  80.         if(object==LCD_SCREEN)
  81.                 LCD_Write(LCD_COMMAND,0x18|direction);
  82. }
  83. */
  84. //初始化LCD************************************************************
  85. void LCD_Initial()
  86. {
  87.         LcdEn=0;
  88.         LCD_Write(LCD_COMMAND,0x38);           //8位數據端口,2行顯示,5*7點陣
  89.         LCD_Write(LCD_COMMAND,0x38);
  90.         LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);    //開啟顯示, 無光標
  91.         LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  92.         LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);       //AC遞增, 畫面不動
  93. }

  94. //************************************************************************
  95. void GotoXY(unsigned char x, unsigned char y)
  96. {
  97.         if(y==0)
  98.                 LCD_Write(LCD_COMMAND,0x80|x);
  99.         if(y==1)
  100.                 LCD_Write(LCD_COMMAND,0x80|(x-0x40));
  101. }
  102. void Print(unsigned char *str)
  103. {
  104.         while(*str!='\0')
  105.         {
  106.                 LCD_Write(LCD_DATA,*str);
  107.                 str++;
  108.         }
  109. }
  110. /*
  111. void LCD_LoadChar(unsigned char user[8], unsigned char place)
  112. {
  113.         unsigned char i;
  114.         LCD_Write(LCD_COMMAND,0x40|(place*8));
  115.         for(i=0; i<8; i++)
  116.                 LCD_Write(LCD_DATA,user[i]);
  117. }
  118. */
  119. //************************************************************************
  120. #endif
復制代碼



字符液晶1602.rar (54.04 KB, 下載次數: 17)

評分

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

查看全部評分

回復

使用道具 舉報

ID:230445 發表于 2017-9-1 17:29 | 顯示全部樓層
我想找到你的綠色的原件是哪里來的呢
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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