标题:
用msp430单片机控制TCS3200颜色传感器LCD12864液晶显示
[打印本页]
作者:
xueer
时间:
2013-7-14 16:20
标题:
用msp430单片机控制TCS3200颜色传感器LCD12864液晶显示
#include "io430.h"
#define uchar unsigned char
#define uint unsigned int
#define p4in P4DIR=0x00 //数据口方向设置为输入
#define p4out P4DIR=0xff //数据口方向设置为输出
#define rsh P3OUT|=BIT0 //P3.0
#define rsl P3OUT&=~BIT0 //P3.0
#define rwh P3OUT|=BIT1 //P3.1
#define rwl P3OUT&=~BIT1 //P3.1
#define enh P3OUT|=BIT2 //P3.2
#define enl P3OUT&=~BIT2 //P3.2
uchar flag=0,a[6],flag1=0,flag2=0,flag3=0,flag4=0;
unsigned long f=0;
uint shuzi,ag=0;
void delay(unsigned int ms) //延时1ms
{
unsigned int i,j;
for( i=0;i<ms;i++)
for(j=0;j<1565;j++); //8MHz晶振时
}
void delay0(unsigned int ms) //延时0.1ms
{
unsigned int i,j;
for( i=0;i<ms;i++)
for(j=0;j<156;j++); //8MHz晶振时
}
void clk()
{
BCSCTL1&=~XT2OFF;
do
{IFG1&=~OFIFG;
_NOP();
_NOP();
_NOP();
}
while((IFG1&OFIFG)!=0);
BCSCTL2|=SELM_2+SELS;
BCSCTL2|=DIVS_0+DIVM_0;//注意=与位操作的区别,多注意
}
//读忙
void BF()
{uchar temp=0x80;
P4DIR=0x00;
rsl;
rwh;
do
{
enh;
_NOP();
temp=P4IN;
_NOP();
enl;}
while(temp&BIT7);
P4DIR=0xff;
}
//写数据
void writedate(uchar date)
{BF();
rsh;
rwl;
P4OUT=date;
enh;
_NOP();
_NOP();
enl;
}
//写命令
void writecmd(uchar cmd)
{BF();
rsl;
rwl;
P4OUT=cmd;
enh;
_NOP();
_NOP();
enl;
}
//读数据
uint readdate()
{uint a;
BF();
rsh;
rwh;
P4DIR=0x00;
enh;
_NOP();
a=P4DIR=0x00;
_NOP();
enl;
P4DIR=0xff;
return a;
}
void dingshi()
{TACTL=TASSEL_2+TACLR;
CCR0=7999;
CCTL0=CCIE;
TACTL|=MC_1;
P1IE=BIT5;
_EINT();
}
void lcd12864()
{P4DIR=0xff;
delay(5);
writecmd(0x30);
writecmd(0x0f);
writecmd(0x01);
writecmd(0x06);
writecmd(0x80);
}
void main()
{long F;
WDTCTL = WDTPW+WDTHOLD;
clk();
P3OUT=0x00;
P3DIR=BIT0+BIT1+BIT2;
lcd12864();
P1OUT=0x07;
delay(1);
P1DIR=0x1f;
dingshi();
while(1)
if(flag==1)
{_DINT();
_NOP();
TACTL=TASSEL_2+TACLR;
F=f;
f=0;
ag=0;
flag=0;
if(flag1==0)flag2=0;
if(flag1==3)
{flag1=0;
writecmd(0x98);
P1OUT=0x07;
}
if(flag1==2)
{flag1=3;
writecmd(0x88);
P1OUT=0x0f;
}
if(flag1==1)
{flag1=2;
writecmd(0x90);
P1OUT=0x0b;
}
if((flag1==0)&&(flag2==0))
{flag1=1;
flag2=1;
writecmd(0x80);
P1OUT=0x03;
}
a[0]=F%10;
a[1]=F/10%10;
a[2]=F/100%10;
a[3]=F/1000%10;
a[4]=F/10000%10;
writedate(a[4]+48);
writedate(a[3]+48);
writedate(a[2]+48);
writedate(a[1]+48);
writedate(a[0]+48);
TACTL|=MC_1;
_EINT();
}
}
#pragma vector=PORT1_VECTOR
__interrupt void port()
{f++;
P1IFG=0x00;
}
#pragma vector=TIMERA0_VECTOR
__interrupt void timer0()
{ag++;
if(ag==20)flag=1;
}
复制代码
作者:
lssdo12
时间:
2018-9-28 19:13
求问 我的CCS运行的时候显示IO430.h头文件打不开。怎么回事啊?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1