您的位置 首页 电子

1602操控forMSP430

*****************************************************************文件名:1602h描述:该头文件定义与1602有关的各种接口、函数,

  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. }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/257264.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部