1、KEIL软件的使用;工程建立,文件的导入
2、头文件的生成和使用,stc15.h;延时函数的生成,以及修改
3、编译错误的调试,修改;
4、代码的烧录。
代码功能;
开机关闭外设;
循环一下操作:
整体点亮,一秒,整体熄灭一秒;
#include <stc15.h>
#include <intrins.h>
void delay1ms(int tms) //@11.0592MHz
{
unsigned char i, j;
for(tms;tms>0;tms--)
{
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
}
#define LED 4
#define ULN 5
#define COM 6
#define ABC 7
void choose573(unsigned char x)
{
switch(x)
{
case 0:
P2 =P2&0x1F;//0x1F ====0001 1111
break;
case LED: //Y4---LED
P2= (P2&0x1F) | 0x80;break; //1000 0000
case ULN://Y5---蜂鸣器
P2 =(P2&0x1F) | 0xA0;break; //1010 0000
case COM: //Y6---数码管
P2= (P2&0x1F) | 0xC0;break; //1100 0000
case ABC://Y7 ---数码管
P2 =(P2&0x1F) | 0xE0;break; //1110 0000
default:break;
}
}
//全局变量
unsigned char LEDbuf;
unsigned char ULNbuf;
void main()
{
//关闭外部设备,LED,蜂鸣器等等;
//关闭LED
choose573(LED);
LEDbuf=0xFF;
P0=LEDbuf;
choose573(0);
//关闭fengmignqi
choose573(ULN);
ULNbuf=0x00;//ULN2003是反相的放大,1--0,0--1
P0=ULNbuf;
choose573(0);
//关闭数码管
choose573(COM);
P0=0x00;
choose573(0);
choose573(ABC);
P0=0xFF;
choose573(0);
while(1)
{
choose573(LED);
LEDbuf=0x00;
P0=LEDbuf;
choose573(0);
delay1ms(1000);
choose573(LED);
LEDbuf=0xFF;
P0=LEDbuf;
choose573(0);
delay1ms(1000);
choose573(LED);
//让LED1点亮,其他熄灭
LEDbuf=0xFE; //1111 1110
P0=LEDbuf;
choose573(0);
delay1ms(300);
choose573(LED);
//让LED1点亮,其他熄灭
LEDbuf=0xFF; //1111 1111
P0=LEDbuf;
choose573(0);
delay1ms(300);
choose573(LED);
//让LED2点亮,清0,其他保持不变 1111 1101
LEDbuf=LEDbuf & 0xFD; //0xFD
P0=LEDbuf;
choose573(0);
delay1ms(300);
choose573(LED);
//让LED2熄灭,1 其他保持不变 0000 0010
LEDbuf=LEDbuf | 0x02; //0xFD
P0=LEDbuf;
choose573(0);
delay1ms(300);
}
}