- 博客(0)
- 资源 (9)
- 收藏
- 关注
ADC DIS VOL ON LCD msp430
///通过P6.0口接收一个外部电压,然后显示到LCD上///////////////////////////////////
///P6.0口接到滑阻的中间,滑阻的一端接VCC,一端接GND/////////////////////////////
///P4.6为RS、P4.7为E 数据传送口为P5口///////////////////////////////////////////
///VEE 接地电阻为10K LB+下接270Ω///////////////////////////////////////////////
#include <msp430x15x.h>
//各个端口的置位
#define RSSET (P4OUT |= BIT6)
#define ESET (P4OUT |= BIT7)
//各个端口的清零
#define RSCLR (P4OUT &= ~BIT6)
#define ECLR (P4OUT &= ~BIT7)
#define LCDDATA (P5OUT)
unsigned char lcdHint[] = {" The voltage is: "}; //LCD第一行的提示显示数据
unsigned char digitalVal[] = {"0123456789."}; //对应数字的字符
static unsigned int results[32] = {0}; //保存ADC转换结果的数组
/*******************************************************************************
函数名称:lcdDelay
功 能:用于LCD的延时程序,可代替忙状态检查,也可作为一般的延时用
参 数:time--延时参考量
返回值 :无
*******************************************************************************/
void lcdDelay(unsigned char time)
{
unsigned char i = 0;
2009-08-28
msp 430 五线键盘 led显示
msp 430 五线键盘 led显示
include <msp430x15x.h>
#define uint unsigned int
#define uchar unsigned char
void xianshi(uint temp);
uchar keyboard();
void delay(uint z);
//数码管7位段码:0--f
uchar table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//记录显示位数的全局变量
uchar cnt = 0;
uint temp=0;
/********************主函数********************/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
//P2SEL = 0x00;
P2DIR = 0xff;
P2OUT = 0x07;
P2DIR = 0xe7;
P2IES = 0xe7;
P2IFG = 0x00;
P2IE = 0x18;
P3DIR = 0xff; //设置P4,P5的IO方向为输出
P4DIR = 0xff;
P4OUT = 0x00; //设置P4,P5的输出初值
P3OUT = 0xff;
_EINT();
while(1)
{
xianshi(temp);
}
}
void xianshi(uint temp)
{ uchar bai1,shi1,ge1,bai2,shi2,ge2;
uint a1,b1;
a1=temp/1000;
2009-08-22
C PID 程序 建模
***********************************************************/
main()
{
unsigned char z;
unsigned char a,b,flag_2=1,count1=0;
unsigned char phil[]={2,0xce,0x6e,0x60,0x1c,2};;
TMOD=0x21;
TH0=0x2f;
TL0=0x40;
SCON=0x50;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
PS=1;
EA=1;
EX1=0;
ET0=1;
ES=1;
TR0=1;
TR1=1;
high_time=50;
low_time=50;
PIDInit ( &spid ); // Initialize Structure
spid.Proportion = 10; // Set PID Coefficients
spid.Integral = 8;
spid.Derivative =6;
spid.SetPoint = 100; // Set PID Setpoint
while(1)
{
if(plus==0)
{
EA=0;
for(a=0;a<5;a++)
for(b=0;b<102;b++){}
if(plus==0)
{
set_temper++;
flag=0;
}
}
else if(subs==0)
{
for(a=0;a<5;a++)
for(b=0;a<102;b++){}
if(subs==0)
{
set_temper--;
flag=0;
}
}
else if(stop==0)
{
for(a=0;a<5;a++)
for(b=0;b<102;b++){}
2009-08-16
五线键盘 led显示
nt keyscan()
{
P2DIR = 0xff;
RL1S;
RL0S;
SL2C;
SL1C;
SL0C;
P2DIR = 0x00;
if (RL0 == 0 || RL1 == 0)
{
delaynms(5);
if (RL0 == 0)
{
key = 0;
RL0S;
return 0;
}
else if (RL1 == 0)
{
key = 8;
RL1S;
return 0;
}
}
P2DIR |= BIT2 + BIT3 + BIT4;
SL2C;
SL1C;
SL0S;
P2DIR = 0x00;
if (RL0 == 0 || RL1 == 0)
{
delaynms(5);
if (RL0 == 0)
{
key = 1;
RL0S;
return 0;
}
else if (RL1 == 0)
{
key = 9;
RL1S;
return 0;
}
}
P2DIR |= BIT2 + BIT3 + BIT4;
SL2C;
SL1S;
SL0C;
P2DIR = 0x00;
if (RL0 == 0 || RL1 == 0)
{
delaynms(5);
if (RL0 == 0)
{
key = 2;
RL0S;
return 0;
}
else if (RL1 == 0)
{
key = 10;
RL1S;
return 0;
}
}
P2DIR |= BIT2 + BIT3 + BIT4;
SL2C;
SL1S;
SL0S;
P2DIR = 0x00;
if (RL0 == 0 || RL1 == 0)
{
delaynms(5);
if (RL0 == 0)
{
key = 3;
RL0S;
return 0;
}
else if (RL1 == 0)
{
key = 11;
RL1S;
return 0;
}
}
P2DIR |= BIT2 + BIT3 + BIT4;
SL2S;
SL1C;
SL0C;
P2DIR = 0x00;
if (RL0 == 0 || RL1 == 0)
{
delaynms(5);
if (RL0 == 0)
{
key = 4;
RL0S;
return 0;
}
else if (RL1 == 0)
{
key = 12;
RL1S;
return 0;
}
}
P2DIR |= BIT2 + BIT3 + BIT4;
SL2S;
SL1C;
SL0S;
P2DIR = 0x00;
if (RL0 == 0 || RL1 == 0)
{
delaynms(5);
if (RL0 == 0)
{
key = 5;
RL0S;
return 0;
}
else if (RL1 == 0)
{
key = 13;
RL1S;
return 0;
}
}
P2DIR |= BIT2 + BIT3 + BIT4;
SL2S;
SL1S;
SL0C;
P2DIR = 0x00;
if (RL0 == 0 || RL1 == 0)
{
delaynms(5);
if (RL0 == 0)
{
key = 6;
RL0S;
return 0;
}
else if (RL1 == 0)
{
key = 14;
RL1S;
return 0;
}
}
P2DIR |= BIT2 + BIT3 + BIT4;
SL2S;
SL1S;
SL0S;
P2DIR = 0x00;
if (RL0 == 0 || RL1 == 0)
{
delaynms(5);
if (RL0 == 0)
{
key = 7;
RL0S;
return 0;
}
else if (RL1 == 0)
{
key = 15;
RL1S;
return 0;
}
}
return 1;
}
2009-08-16
Altiumdesigner教程.pdf
1 安装说明及如何激活并申请添加license
我们提供的安装光盘可以在每台电脑上安装Altium Designer 软件。我们为每个单位或公
司产生一个用户号,我们为每台电脑产生一个激活码,用户在软件的license 界面里输入用户号和激活
码,软件将自动产生本机的一个二进制信息文件,用这个信息文件通过电子邮件到我们的服务器上换
取本机的license.有了本机的license,就可以使用Altium Designer 软件了. 具体的操作请参照《操作
步骤》文档。注意:每个电脑用一个激活码,每个激活码只能用在一台电脑上,不能再用在别的电脑
上。
也可以按照以下步骤操作:1:左键点击左上角DXP\Licensing 进入license 界面
2009-08-03
msp 430 教程
msp 430 教程
#include <msp430x44x.h>
char digit[20] = {1,0,0,0,0,2,1,8};
unsigned char distab[]= { 0xaf,0x06,0x6d,0x4f,
0xc6,0xcb,0xeb,0x0e,
作者魏小龙 南航 MSP430 选修课试用教材 第 101 页
0xef,0xcf
};
void main(void)
{
int i;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
FLL_CTL0 |= XCAP14PF; // Configure load caps
LCDCTL = 0XFD;
BTCTL = BTFRFQ1; // STK LCD freq
P5SEL = 0xFC; // Common and Rxx all selected
TACTL = TASSEL1 + TACLR; // SMCLK, clear TAR
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 20000;
TACTL |= MC1; // Start Timer_A in continuous mode
_EINT(); // Enable interrupts
for (;;)
{
_BIS_SR(CPUOFF); // CPU off
_NOP(); // Required only for C-spy
}
}
interrupt[TIMERA0_VECTOR] void Timer_A (void)
{ char i=0;
CCR0 += 20000; // Add Offset to CCR0
LCDMEM[7]=0xa; LCDMEM[8]=0x90; LCDMEM[9]=0x12; LCDMEM[10]=0x80;
LCDMEM[11]=0x2; LCDMEM[12]=0x93; LCDMEM[13]=0x72; LCDMEM[14]=0x5b;
LCDMEM[15]=0x94;
for(i=0;i<6;i++)
LCDMEM[i+1]=distab[digit[i]];
digit[0]++;
if(digit[0]==50)
{
digit[0]=0;
digit[1]++;
if(digit[1]==10)
{
digit[1]=0;
digit[2]++;
if(digit[2]==6)
{
作者魏小龙 南航 MSP430 选修课试用教材 第 102 页
digit[2]=0;
digit[3]++;
if(digit[3]==10)
{
digit[3]=0;
digit[4]++;
if(digit[4]==6)
{
digit[4]=0;
}
}
}
}
}
}
2009-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人