找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1665|回复: 1
打印 上一主题 下一主题
收起左侧

基于MSP430F55229开发的1602显示程序

[复制链接]
跳转到指定楼层
楼主
ID:907412 发表于 2021-6-10 11:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
S为显示的数
  1. #include "MSP430F5529.h"
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define CPU_F ((double)8000000)   //外部高频晶振8MHZ
  5. //#define CPU_F ((double)32768)   //外部低频晶振32.768KHZ
  6. #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
  7. #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
  8. //12864/1602液晶控制管脚
  9. #define RS_CLR                P1OUT &= ~BIT3           //RS置低
  10. #define RS_SET                P1OUT |=  BIT3           //RS置高

  11. #define RW_CLR                P1OUT &= ~BIT4           //RW置低
  12. #define RW_SET                P1OUT |=  BIT4          //RW置高

  13. #define EN_CLR                P1OUT &= ~BIT5           //E置低
  14. #define EN_SET                P1OUT |=  BIT5          //E置高
  15. //彩屏/12864液晶/1602液晶的数据口,三液晶共用
  16. #define DataDIR         P3DIR                     //数据口方向
  17. #define DataPort        P3OUT                     //P4口为数据口
  18. void Port_init()
  19. {
  20.         P1DIR|=BIT0;
  21.         P1OUT|=BIT0;
  22.         P3SEL = 0x00;
  23.         P3DIR = 0xFF;                   //数据口输出模式
  24.         P1SEL = 0x00;
  25.         P1DIR|= BIT3 + BIT4 + BIT5;     //控制口设置为输出模式
  26. }
  27. void LCD_write_com(unsigned char com)
  28. {
  29.         RS_CLR;
  30.         RW_CLR;
  31.         EN_SET;
  32.         DataPort = com;                 //命令写入端口
  33.         delay_ms(5);
  34.         EN_CLR;
  35. }

  36. void LCD_write_data(unsigned char data)
  37. {
  38.         RS_SET;
  39.         RW_CLR;
  40.         EN_SET;
  41.         DataPort = data;                //数据写入端口
  42.         delay_ms(5);
  43.         EN_CLR;
  44. }
  45. unsigned char xs3[15]={'0','1','2','3','4','5','6','7','8','9','.','-','M'};
  46. uchar S,m,j,k;
  47. void celiang()
  48. {
  49.     m=S/100;
  50.     j=(S-m*100)/10;
  51.     k=S%10;


  52. }
  53. void sxx(unsigned char x, unsigned char y,unsigned char data)
  54. {
  55.     uchar wei;
  56.     if(y==0)
  57.     {
  58.         LCD_write_com(0x80);
  59.         wei=0x80+x;
  60.         LCD_write_com(wei);
  61.         LCD_write_data(data);
  62.     }
  63.     else
  64.     {
  65.         LCD_write_com(0xC0);
  66.         wei=0xC0+x;
  67.         LCD_write_com(wei);
  68.         LCD_write_data(data);

  69.     }
  70. }
  71. void LCD_clear(void)
  72. {
  73.         LCD_write_com(0x01);            //清屏幕显示
  74.         delay_ms(5);
  75. }
  76. void LCD_init(void)
  77. {
  78.     LCD_write_com(0x38);                //显示模式设置
  79.     delay_ms(5);
  80.     LCD_write_com(0x08);                //显示关闭
  81.     delay_ms(5);
  82.     LCD_write_com(0x01);                //显示清屏
  83.     delay_ms(5);
  84.     LCD_write_com(0x06);                //显示光标移动设置
  85.     delay_ms(5);
  86.     LCD_write_com(0x0C);                //显示开及光标设置
  87.     delay_ms(5);
  88. }

  89. void main( void )
  90. {
  91.   WDTCTL = WDTPW + WDTHOLD;
  92.   Port_init();                        //系统初始化,设置IO口属性
  93.   delay_ms(100);                      //延时100ms
  94.   LCD_init();                         //液晶参数初始化设置
  95.   LCD_clear();                        //清屏
  96.   celiang();
  97.    while (1)


  98.    {
  99.        S=100;
  100.        sxx(0,1, xs3[m]);
  101.        sxx(1,1, xs3[j]);
  102.        sxx(2,1, xs3[k]);
  103.    }
  104. }
复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:956252 发表于 2021-7-25 17:03 | 只看该作者
怎么接线啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表