新闻中心

EEPW首页>嵌入式系统>设计应用> 1602控制forMSP430

1602控制forMSP430

作者: 时间:2016-11-27 来源:网络 收藏
  1. /*****************************************************************
  2. //文件名:1602.h
  3. //描述:该头文件定义与1602有关的各种接口、函数,适用于MSP430F149
  4. //编写人:小邪@清水
  5. //版本号:1.00
  6. *****************************************************************/
  7. #include
  8. #include"1602.h"
  9. #defineucharunsignedchar
  10. #defineuintunsignedint
  11. ucharNUM[]={"0123456789."};
  12. /*****************************************************************
  13. //关于1602的一些宏定义
  14. //注意:除第三个外都要根据实际使用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. //参数:无
  29. //返回值:无
  30. //功能:延时5ms的时间
  31. *************************************************************************/
  32. voidDelay5ms(void)
  33. {
  34. uinti=40000;
  35. while(i!=0)
  36. {
  37. i--;
  38. }
  39. }
  40. /*************************************************************************
  41. //名称:WaitForEnable
  42. //参数:无
  43. //返回值:无
  44. //功能:等待直到1602完成当前操作
  45. *************************************************************************/
  46. voidWaitForEnable(void)
  47. {
  48. P4DIR&=0x00;//将P4口切换为输入状态
  49. CLR_RS;
  50. SET_RW;
  51. _NOP();
  52. SET_EN;
  53. _NOP();
  54. _NOP();
  55. while((P4IN&Busy)!=0);//检测忙标志
  56. CLR_EN;
  57. P4DIR|=0xFF;//将P4口切换为输出状态
  58. }
  59. /*************************************************************************
  60. //名称:WriteCommand
  61. //参数:cmd--命令,chk--是否判忙的标志,1:判忙,0:不判
  62. //返回值:无
  63. //功能:向1602写指令
  64. *************************************************************************/
  65. voidWriteCommand(ucharcmd,ucharchk)
  66. {
  67. if(chk)WaitForEnable();//检测忙信号
  68. CLR_RS;
  69. CLR_RW;
  70. _NOP();
  71. DataPort=cmd;//将命令字写入数据端口
  72. _NOP();
  73. SET_EN;//产生使能脉冲信号
  74. _NOP();
  75. _NOP();
  76. CLR_EN;
  77. }
  78. /*************************************************************************
  79. //名称:WriteData
  80. //参数:unsignedcharData
  81. //返回值:无
  82. //功能:向1602写入数据
  83. *************************************************************************/
  84. voidWriteData(uchardata)
  85. {
  86. WaitForEnable();//等待液晶不忙
  87. SET_RS;
  88. CLR_RW;
  89. _NOP();
  90. DataPort=data;//将显示数据写入数据端口
  91. _NOP();
  92. SET_EN;//产生使能脉冲信号
  93. _NOP();
  94. _NOP();
  95. CLR_EN;
  96. }

  97. 上一页 1 2 下一页

关键词:1602控制MSP43

评论


技术专区

关闭