msp430f149高电平怎么写

1. 给你个at89c51的程序,自己稍微改一下就可以了 。
这个是用数码管显示的 。#include #include#define uchar unsigned char#define uint unsigned intextern char *itoa(int i); uint code SEG7[16]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60, 0x30,0x25,0xa9,0x26,0xa1,0xb1};//0 1 2 3 4 5 6 7 8 9 A-Euchar code ACT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数码管显示位置uchar dis[4];sbit trig=P1^0;sbit echo=P1^1;void delay(uint k){ uint i,j; for(i=0;i0;i--);}void init(){ TMOD=0x21;//模式1 TH1=0xf3;//4800bps fosc=12M TL1=0xf3; TR0=0; trig=0; echo=0; TH0=0; TL0=0; TCON=0x00; SCON=0x50;//SM0=0 SM1=1 SM2=0 REN=1 TB8=0 R8=0 TI=0 RI=0 PCON=0x80;//SMOD=1 TR1=1; ES=1; EA=1;}uint getDistance(){ uint i=29412;//5m来回需要的时间(us) (5*2/340)*1000000 TR0=0; TH0=0; TL0=0; //接收信号端置0 echo=0; //开始触发 trig=1; //延时10微秒 delay10us(); //停止触发 trig=0; //没有信号返回并且在5米障碍物信号返回需要的时间前则等待 (无信号即时返回,防止死循环,阻碍其它程序的执行) while(!echo&&i>0) { i--; } if(i>0)//小于5米,说明有信号返回 { TR0=1;//开始计时 while(echo); //持续高电平则计时,转为低电平则退出 TR0=0;//停止计时 return (uint)((TH0*256+TL0)*0.170); //单位:mm //340000/1000000/2=0.17 mm/us } //display2(TH0,TL0); return 0; //大于5米则返回0}void SendChar(uchar ch){ SBUF=ch; while(!TI); TI=0;}void SendCmd(uchar *cmd,uchar sz){ uchar i=0; SendChar('$'); for(i=0;i2.MSP430F149单片机和LCD1602怎么连接MSP430是3.3V供电单片机,自然他的所有的I/O口的逻辑高电平就是3.3V的 。你的LCD1602如果与3.3V的单片机连接,首先你的液晶屏要支持3.3V的逻辑电平 。如果你的1602是5V供电的,那么他的数据端口一般也采用5V作为逻辑高电平,如果5V供电的LCD1602与3.3V的单片机连接,从理论上来说,5V的LCD1602应该无法识别3.3V的逻辑高电平,造成的后果就是1602无法接收到单片机发送的数据 。不过在实际使用的时候,5V的LCD1602可能也偶尔因为某种原因识别到3.3V电平,在液晶屏上显示乱码甚至正确显示,但是一定很不稳定 。
市场上有卖3.3V逻辑电平的1602,可以与MSP430这样的3.3V单片机连接,如果你只有5V供电的1602,还要与MSP430连接,直接连接肯定是不行的 。这个时候你可以在这二者之间加电平转换芯片(比如74LVC4245),就可以实现3.3-5V的电平转换!
3.求单片机msp430f149 C程序 :当I/O口输入低电平时,驱动蜂鸣器响 ,你的要求说的不是太清,没有说明当哪个IO口输入低时驱动蜂鸣器,也没有说明是高还是低电平驱动蜂鸣器 。我这个程序的作用是p30输入低时,p67输出高,否则p67输出低,不合适的话,你只需稍微改下,即可满足你的要求
#include <msp430x14x.h> //声明库
void main(void) //主函数
{
WDTCTL=WDTPW+WDTHOLD; //关掉看门狗
P6DIR |=0x80; //设定P67为输出
P3DIR &=0xfe; //设定P30为输输入
while(1) {
if(P3IN&0X01==0)
P6OUT|=0x80;
else
P6OUT&=0x7f;
}
}
4.最近再写一段程序关于msp430f149的,就是用定时器A计数,求解答,你是想开始记时间还是记下脉冲个数?