新聞中心

        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

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 界首市| 饶阳县| 衡水市| 开封县| 杨浦区| 眉山市| 呼和浩特市| 仙桃市| 陇西县| 阜平县| 黄骅市| 南靖县| 舞阳县| 泰顺县| 丰镇市| 西藏| 兰坪| 乐业县| 临沭县| 灌阳县| 七台河市| 大庆市| 游戏| 林芝县| 兴国县| 洛浦县| 东兴市| 徐水县| 沂南县| 锡林浩特市| 霸州市| 濮阳县| 府谷县| 磴口县| 武穴市| 平塘县| 伊宁县| 财经| 河北区| 锡林郭勒盟| 长泰县|