中断+数码管
2015-10-08 00:24
447 查看
#include "MSP430F149.h"
int
g_led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void IO_init()
{
P1DIR = 0xff;
P2DIR = 0xff;
}
int get_num(int i)
{
if(i>=0 &&
i<10)
{
return g_led[i];
}
return 0XFF;
}
void echo_num(long num)
{
if(0<=num &&
num<=99999999)
{
int n;
for(n=0;n<8 &&
num;++n)
{
P1OUT = 0;
P2OUT = 7-n;
P1OUT = get_num( num );
num /= 10;
__delay_cycles(1000);
}
}
}
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
IO_init();
P2DIR &= ~BIT3;
P2IE = 0;
P2IES = 0;
P2IFG = 0;
P2IE |= BIT3;
P2IES &= ~BIT3;
_BIS_SR(LPM4_bits+GIE);
while(1);
//int i;
}
#pragma vector = PORT2_VECTOR
__interrupt void ITR00()
{
while(1)
{
long i;
for(i=0;i<100000000;++i)
{
echo_num(i);
__delay_cycles(10);
}
}
}
int
g_led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void IO_init()
{
P1DIR = 0xff;
P2DIR = 0xff;
}
int get_num(int i)
{
if(i>=0 &&
i<10)
{
return g_led[i];
}
return 0XFF;
}
void echo_num(long num)
{
if(0<=num &&
num<=99999999)
{
int n;
for(n=0;n<8 &&
num;++n)
{
P1OUT = 0;
P2OUT = 7-n;
P1OUT = get_num( num );
num /= 10;
__delay_cycles(1000);
}
}
}
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
IO_init();
P2DIR &= ~BIT3;
P2IE = 0;
P2IES = 0;
P2IFG = 0;
P2IE |= BIT3;
P2IES &= ~BIT3;
_BIS_SR(LPM4_bits+GIE);
while(1);
//int i;
}
#pragma vector = PORT2_VECTOR
__interrupt void ITR00()
{
while(1)
{
long i;
for(i=0;i<100000000;++i)
{
echo_num(i);
__delay_cycles(10);
}
}
}
相关文章推荐
- CONNECT
- 管道
- Api Hook 例程
- Dll注入器
- 添加用户到Sudo组
- [观点] 真正的程序员,请你站出来
- WinAPI: SetWindowsHookEx - 设置…
- MCI 命令:(发送命令消息到指定的…
- 用谷歌浏览器来当手机模拟器
- API Hook完全手册
- 波哥写的钩子教程4
- 波哥写的钩子教程3
- 波哥写的钩子教程2
- 编译错误:Clock skew detected
- 波哥写的钩子教程
- ThinkPad x200 安装 mac Os x10.6…
- Mac OS X Snow Leopard 10.6下载及…
- 全局钩子详解
- 《Pro Git》读书笔记
- 哥写的线程注入程序 可以在线程中…