標(biāo)題:
基于MSP430F55229開發(fā)的1602顯示程序
[打印本頁(yè)]
作者:
6666626
時(shí)間:
2021-6-10 11:03
標(biāo)題:
基于MSP430F55229開發(fā)的1602顯示程序
S為顯示的數(shù)
#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液晶的數(shù)據(jù)口,三液晶共用
#define DataDIR P3DIR //數(shù)據(jù)口方向
#define DataPort P3OUT //P4口為數(shù)據(jù)口
void Port_init()
{
P1DIR|=BIT0;
P1OUT|=BIT0;
P3SEL = 0x00;
P3DIR = 0xFF; //數(shù)據(jù)口輸出模式
P1SEL = 0x00;
P1DIR|= BIT3 + BIT4 + BIT5; //控制口設(shè)置為輸出模式
}
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; //數(shù)據(jù)寫入端口
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); //顯示模式設(shè)置
delay_ms(5);
LCD_write_com(0x08); //顯示關(guān)閉
delay_ms(5);
LCD_write_com(0x01); //顯示清屏
delay_ms(5);
LCD_write_com(0x06); //顯示光標(biāo)移動(dòng)設(shè)置
delay_ms(5);
LCD_write_com(0x0C); //顯示開及光標(biāo)設(shè)置
delay_ms(5);
}
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
Port_init(); //系統(tǒng)初始化,設(shè)置IO口屬性
delay_ms(100); //延時(shí)100ms
LCD_init(); //液晶參數(shù)初始化設(shè)置
LCD_clear(); //清屏
celiang();
while (1)
{
S=100;
sxx(0,1, xs3[m]);
sxx(1,1, xs3[j]);
sxx(2,1, xs3[k]);
}
}
復(fù)制代碼
作者:
wj520yyj
時(shí)間:
2021-7-25 17:03
怎么接線啊
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1