huixianfxt 发表于 2014-6-30 14:05
点 download and debug 呢!到时候会有相应的单步调试的按钮呢!你还是从基础开始学吧!找一本书籍看看 ...
嗯嗯,会调试了,谢谢了。
可否再问一个问题=。=
下面这个程序我仿真的时候,按键按下加可以,在8以内的数按减又不行了。。必须的按到8之后的数才能操作减,而且在8以内的说按了减之后没有减按加也不能动了,这是为什么额。。是我哪里没想对么╮(╯▽╰)╭
#include
typedef unsigned int uint;
typedef unsigned char uchar;
void delay(uint z);
uint i=0,key=0;
uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //0-f 共阳极
void main(){
WDTCTL=WDTPW+WDTHOLD;//关狗
P1DIR &=~BIT0;
P1DIR &=~BIT1;//P1.0~P1.1设置为输入状态
P4DIR =0xFF;//P4口设置为输出,连接共阳数码管
P4SEL =0;//P4口功能转换为普通I/O口
P4OUT =0xFF;
P1SEL =0;
P1IES = 0x03; // P1.0~P1.1选择下降沿中断
P1IE = 0x03; // 打开中断使能
_EINT(); //打开全局中断控制位
while(1)
{
if(!(P1IN&BIT0)){
P4OUT=table[key];
}
if(!(P1IN&BIT1))
P4OUT=table[key];
}
}
#pragma vector=PORT1_VECTOR
__interrupt void Port(void){
if(P1IFG & 0x0f)
{
switch(P1IFG)
{
case 0x01:
if(!(P1IN&BIT0))//是否键入低电平
{
delay(10);//10ms防抖
if(!(P1IN&BIT0))//防抖之后是否依旧为低电平,是则继续
{
while(!(P1IN&BIT0)){ //等待按键松开
key = i;
if(i0)
i--;
key = i;
P1IFG = 0;
return;
}
}
}
}
}
}
void delay(uint z){
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);//延时z毫秒 1000ms=1s
}