S为显示的数
- #include "MSP430F5529.h"
- #define uchar unsigned char
- #define uint unsigned int
- #define CPU_F ((double)8000000) //外部高频晶振8MHZ
- //#define CPU_F ((double)32768) //外部低频晶振32.768KHZ
- #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
- #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
- //12864/1602液晶控制管脚
- #define RS_CLR P1OUT &= ~BIT3 //RS置低
- #define RS_SET P1OUT |= BIT3 //RS置高
- #define RW_CLR P1OUT &= ~BIT4 //RW置低
- #define RW_SET P1OUT |= BIT4 //RW置高
- #define EN_CLR P1OUT &= ~BIT5 //E置低
- #define EN_SET P1OUT |= BIT5 //E置高
- //彩屏/12864液晶/1602液晶的数据口,三液晶共用
- #define DataDIR P3DIR //数据口方向
- #define DataPort P3OUT //P4口为数据口
- void Port_init()
- {
- P1DIR|=BIT0;
- P1OUT|=BIT0;
- P3SEL = 0x00;
- P3DIR = 0xFF; //数据口输出模式
- P1SEL = 0x00;
- P1DIR|= BIT3 + BIT4 + BIT5; //控制口设置为输出模式
- }
- void LCD_write_com(unsigned char com)
- {
- RS_CLR;
- RW_CLR;
- EN_SET;
- DataPort = com; //命令写入端口
- delay_ms(5);
- EN_CLR;
- }
- void LCD_write_data(unsigned char data)
- {
- RS_SET;
- RW_CLR;
- EN_SET;
- DataPort = data; //数据写入端口
- delay_ms(5);
- EN_CLR;
- }
- unsigned char xs3[15]={'0','1','2','3','4','5','6','7','8','9','.','-','M'};
- uchar S,m,j,k;
- void celiang()
- {
- m=S/100;
- j=(S-m*100)/10;
- k=S%10;
- }
- void sxx(unsigned char x, unsigned char y,unsigned char data)
- {
- uchar wei;
- if(y==0)
- {
- LCD_write_com(0x80);
- wei=0x80+x;
- LCD_write_com(wei);
- LCD_write_data(data);
- }
- else
- {
- LCD_write_com(0xC0);
- wei=0xC0+x;
- LCD_write_com(wei);
- LCD_write_data(data);
- }
- }
- void LCD_clear(void)
- {
- LCD_write_com(0x01); //清屏幕显示
- delay_ms(5);
- }
- void LCD_init(void)
- {
- LCD_write_com(0x38); //显示模式设置
- delay_ms(5);
- LCD_write_com(0x08); //显示关闭
- delay_ms(5);
- LCD_write_com(0x01); //显示清屏
- delay_ms(5);
- LCD_write_com(0x06); //显示光标移动设置
- delay_ms(5);
- LCD_write_com(0x0C); //显示开及光标设置
- delay_ms(5);
- }
- void main( void )
- {
- WDTCTL = WDTPW + WDTHOLD;
- Port_init(); //系统初始化,设置IO口属性
- delay_ms(100); //延时100ms
- LCD_init(); //液晶参数初始化设置
- LCD_clear(); //清屏
- celiang();
- while (1)
- {
- S=100;
- sxx(0,1, xs3[m]);
- sxx(1,1, xs3[j]);
- sxx(2,1, xs3[k]);
- }
- }
复制代码
|