/*****第一次按,数码管开始计数,第二次按,数码管停在那,第三次按接着往下计数,以此类推。*******/
#include <reg51.H>
#define uint unsigned int
#define uchar unsigned char
bit sign=0;//按键标识
sbit wd=P3^2;//外部中断脚
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char dispcount;
void delay(uint ms)
{ uint i, j;
for(i = ms; i > 0; i--) for(j = 110; j > 0; j--);}
void main(void)
{
EA =1; //开总中断
EX0=1; //允许外部中断0中断
IT0=0; //设置为电平触发方式
if(wd==0){
delay(10);
//while(wd==0);
while(1)
{
for(dispcount=0;dispcount<10;dispcount++)
{
P0=table[dispcount];
delay(100);}}
} }
void WW() interrupt 0//外部中断
{
sign=~sign;
if(sign==0){
delay(10);
//while(sign==0); //再按也不开?
}}
问题:第一次按几次才开始?不能松手停?
此帖出自
小平头技术问答
一周热门 更多>