|
各位大神好,小弟最近在学430,在写数码管显示的时候,硬件是4位数码管分别连接在P2.0 2.1 2.2 2.3口上。现在我只想让P2.0控制的那一位显示0-9循环。但是烧录测试的却是4位一起循环0-9.这是为什么啊
#include <msp430x14x.h>
#define uchar unsigned char
#define uint unsigned int
const char SMG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar x,wei;
/**********************************************
函数名称:看门狗初始化
函数功能;
出入参数:
***********************************************/
void WDT_Init()
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
}
/**********************************************
函数名称:延时
函数功能;1ms
出入参数:
***********************************************/
void delay(uint z)
{
uint x,y;
for(x=z; x>0; x--)
for(y=306; y>0; y--);
}
/**********************************************
函数名称:MSP430 IO口初始化
函数功能;1ms
出入参数:
***********************************************/
void Port_Init()
{
P1SEL = 0x00; //设置IO口为普通I/O模式
P1DIR = 0xff; //设置IO口方向为输出
P1OUT = 0x00; //初始设置为00
P2SEL = 0x00; //设置IO口为普通I/O模式
P2DIR = 0xff; //设置IO口方向为输出
P2OUT = 0xfe; //初始设置为00
}
/**********************************************
函数名称:主函数
函数功能;
出入参数:
***********************************************/
void main()
{
WDT_Init(); //关闭看门狗
Port_Init(); //IO口初始化
x=0;
while(1)
{
P1OUT=SMG[x];
delay(500);
x=x+1;
if(x==10)
x=0;
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|