新聞中心

1602控制forMSP430

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
  1. /*****************************************************************
  2. //文件名:1602.h
  3. //描述:該頭文件定義與1602有關(guān)的各種接口、函數(shù),適用于MSP430F149
  4. //編寫人:小邪@清水
  5. //版本號(hào):1.00
  6. *****************************************************************/
  7. #include
  8. #include"1602.h"
  9. #defineucharunsignedchar
  10. #defineuintunsignedint
  11. ucharNUM[]={"0123456789."};
  12. /*****************************************************************
  13. //關(guān)于1602的一些宏定義
  14. //注意:除第三個(gè)外都要根據(jù)實(shí)際使用IO口更改
  15. *****************************************************************/
  16. #defineDataDirP4DIR
  17. #defineDataPortP4OUT
  18. #defineBusy0x80
  19. #defineCtrlDirP3DIR
  20. #defineCLR_RSP3OUT&=~BIT0;//RS=P3.0
  21. #defineSET_RSP3OUT|=BIT0;
  22. #defineCLR_RWP3OUT&=~BIT1;//RW=P3.1
  23. #defineSET_RWP3OUT|=BIT1;
  24. #defineCLR_ENP3OUT&=~BIT2;//EN=P3.2
  25. #defineSET_ENP3OUT|=BIT2;
  26. /*************************************************************************
  27. //名稱:delay
  28. //參數(shù):無(wú)
  29. //返回值:無(wú)
  30. //功能:延時(shí)5ms的時(shí)間
  31. *************************************************************************/
  32. voidDelay5ms(void)
  33. {
  34. uinti=40000;
  35. while(i!=0)
  36. {
  37. i--;
  38. }
  39. }
  40. /*************************************************************************
  41. //名稱:WaitForEnable
  42. //參數(shù):無(wú)
  43. //返回值:無(wú)
  44. //功能:等待直到1602完成當(dāng)前操作
  45. *************************************************************************/
  46. voidWaitForEnable(void)
  47. {
  48. P4DIR&=0x00;//將P4口切換為輸入狀態(tài)
  49. CLR_RS;
  50. SET_RW;
  51. _NOP();
  52. SET_EN;
  53. _NOP();
  54. _NOP();
  55. while((P4IN&Busy)!=0);//檢測(cè)忙標(biāo)志
  56. CLR_EN;
  57. P4DIR|=0xFF;//將P4口切換為輸出狀態(tài)
  58. }
  59. /*************************************************************************
  60. //名稱:WriteCommand
  61. //參數(shù):cmd--命令,chk--是否判忙的標(biāo)志,1:判忙,0:不判
  62. //返回值:無(wú)
  63. //功能:向1602寫指令
  64. *************************************************************************/
  65. voidWriteCommand(ucharcmd,ucharchk)
  66. {
  67. if(chk)WaitForEnable();//檢測(cè)忙信號(hào)
  68. CLR_RS;
  69. CLR_RW;
  70. _NOP();
  71. DataPort=cmd;//將命令字寫入數(shù)據(jù)端口
  72. _NOP();
  73. SET_EN;//產(chǎn)生使能脈沖信號(hào)
  74. _NOP();
  75. _NOP();
  76. CLR_EN;
  77. }
  78. /*************************************************************************
  79. //名稱:WriteData
  80. //參數(shù):unsignedcharData
  81. //返回值:無(wú)
  82. //功能:向1602寫入數(shù)據(jù)
  83. *************************************************************************/
  84. voidWriteData(uchardata)
  85. {
  86. WaitForEnable();//等待液晶不忙
  87. SET_RS;
  88. CLR_RW;
  89. _NOP();
  90. DataPort=data;//將顯示數(shù)據(jù)寫入數(shù)據(jù)端口
  91. _NOP();
  92. SET_EN;//產(chǎn)生使能脈沖信號(hào)
  93. _NOP();
  94. _NOP();
  95. CLR_EN;
  96. }

  97. 上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 1602控制MSP43

評(píng)論


技術(shù)專區(qū)

關(guān)閉