最开始学单片机可能会觉得难,就连软件安装和使用都会觉得难。但是不要怕,多去上网查查怎么使用,慢慢就会了。然后就是学过C语言之后学单片机就简单很多,至少懂语句逻辑。
这里展示的也是我做过的入门作业了。
#include "reg52.h"
#define LED P1
sbit BEEP=P0^0;//蜂鸣器
sbit key1=P3^2;
sbit key2=P3^3;
sbit key3=P3^4;
unsigned char COUNTER;
unsigned char temp;
unsigned char a;
void INTTO() interrupt 1
{
COUNTER++;
if(key1==0){
if(COUNTER==100){ //计数值加1
P1=temp;
if(temp==0xff)
temp=(temp<<1);
else
temp=(temp<<1)+1;
COUNTER=0;
}
if(key==20){
if(COUNTER==100)
a=0x05;
LED=~a;//让LED1和LED3一起亮
a = a<<1;//左移(整体左移,补0)
}
COUNTER=0;
}
if(key3==0)
{
if(a==0xfc)
{LED=a;//让LED1和LED2一起亮
a = a<<2;}//左移(整体左移,补0)
if(a==0x3f)//反向灭灯123456-1234-12
{LED=~a;
a=a>>2;}
COUNTER=0;
}
}
main()
{
COUNTER=0x01;
TMOD=0x02; //定时器0在模式2下工作 256us
TL0=(65536-50000)%256; //定时器每5ms产生一次溢出
TH0=(65536-50000)/256; //自动重装的值
ET0=1; //使能定时器0中断
EA=1; //使能总中断
TR0=1; //开始计时
temp=0xfe;
while(1)
{
}
}
Proteus图示: