谁能帮我写一下单片机C语言程序?

Python031

谁能帮我写一下单片机C语言程序?,第1张

#include<reg51.h>

sbit LED=P1^0

sbit K1=P1^1

sbit K2=P1^2

void delay(int ms)

{

unsigned char i

while(ms--)for(i=0i<120i++)

}

void t0isr(void) interrupt 1

{

TH0=(65536-10000)/256

TL0=(65536-10000)%256

LED=~LED

}

main()

{

TMOD=0x01

TH0=(65536-10000)/256

TL0=(65536-10000)%256

ET0=1

EA=1

while(1)

{

if(K1==0)

{

delay(10)

if(K1==0)

{

while(K1==0)

TR0=1

cnt=0

}

}

if(K2==0)

{

delay(10)

if(K2==0)

{

while(K2==0)

TR0=0

LED=1

}

}

}

}

问题在变量申明,修改为:

#include "reg52.h"

typedef unsigned char u8

typedef unsigned int u16

sbit LSA=P2^2

sbit LSB=P2^3

sbit LSC=P2^4

sfr GPIO_KEY=0x90

sfr GPIO_DIG=0x80

u16 KeyValue

u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}

void delay(u16 i)

{

while(i--)

}

void KeyDown()

{

u8 a=0

GPIO_KEY=0x0f

if(GPIO_KEY!=0x0f)

{

delay(1000)

if(GPIO_KEY!=0x0f)

{

GPIO_KEY=0x0f

switch(GPIO_KEY)

{

case(0x07):KeyValue=0break

case(0x0b):KeyValue=1break

case(0x0d):KeyValue=2break

case(0x0e):KeyValue=3break

}

GPIO_KEY=0xf0

switch(GPIO_KEY)

{

case(0x70):KeyValue=KeyValuebreak

case(0xb0):KeyValue=KeyValue+4break

case(0xd0):KeyValue=KeyValue+8break

case(0xe0):KeyValue=KeyValue+12break

}

while((a<50)&&(GPIO_KEY!=0xf0))

{

delay(1000)

a++

}

}

}

}

void main()

LSA=0

LSB=0

LSC=0

while(1)

{

KeyDown()

GPIO_DIG=smgduan[KeyValue] 

}

}

请你参考:

参照上图,代码如下:

#include<reg51.h>

unsigned char i

void Delayms(unsigned int x)

{

  unsigned char t

while(x--)

for(t=0t<120t++)

}

void main()

{

IT1=1

IE|=0x84

P2=0xFE

i=1

while(1)

}

void EX1_INT() interrupt 2

{

ET0=0

Delayms(10)

P2=~(1<<i)

i=++i%8

ET0=1

}