单片机最小系统实训报告.doc
文本预览下载声明
单片机最小系统实训报告
实训目的
掌握并理解单片机最小系统的原理及制作, 牢记最小系统中各元器件 的参数及各元器的作用.//P1-0-----PF1.3 L0-----L3
#includereg52.h
#includeabsacc.h
#define unit unsigned int
#define unchar unsigned char
sbit L0 = P1^0;
sbit L1 = P1^1;
sbit L2 = P1^2;
sbit L3 = P1^3;
unsigned char data BUFFER[1]={0};
void main(void)
{
P2=0X0F;
EA=1;
IT0=1;
ET0=1;
TMOD=0X01;
TH0=-5000/256;
TL0=-5000%256;
TR0=1;
while(1)
{
};
}
//定时器0中断服务程序//
void timer0(void) interrupt 1 using 1
{
TH0=-5000/256;
TL0=-5000%256;
BUFFER[0]=BUFFER[0]+1;
if(BUFFER[0]==100)
{
L3=!L3;
L2=!L2;
L1=!L1;
L0=!L0;
}
}
测试程序流水灯2:
//此程序为了做花样流水灯的
//采用了C的宏定义 X 可以实现一改全改
#includereg52.h
#includeabsacc.h
#define unit unsigned int
#define unchar unsigned char
#define X 16 //
unsigned int time=0;
unsigned int a[X]={
0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80,
0X18,0X24,0X42,0X81,0X42,0X24,0X18,0X00,
};
void main(void)
{
P1=0X0f;
EA=1;
IT0=1;
ET0=1;
TMOD=0X01;
TH0=9000/256;
TL0=9000%256;
TR0=1;
while(1)
{
P1=a[time];
};
}
//定时器0中断服务程序//
void timer0(void) interrupt 1 using 1
{
TH0=9000/256;
TL0=9000%256;
time++;
if(time==X) time=0;
}
//此程序来测试数码管
//P0.0--P0.7 A B C D E F G dp
//P2.0--P2.7 C0M0--------C0M8
#includereg52.h
#includeabsacc.h
#define unit unsigned int
#define unchar unsigned char
unsigned char data BUFFER[1]={0};
unsigned char X=0;
//共阳极码表数码管
unsigned char leddata[]={
0xC0, //0
0xF9, //1
0xA4, //2
0xB0, //3
0x99, //4
0x92, //5
0x82, //6
0xF8, //7
0x80, //8
0x90, //9
0x88, //A
0x83, //B
0xC6, //C
0xA1, //D
0x86, //E
0x8E, //F
0x89, //H
0xC7, //L
0xC8, //n
0xC1, //u
0x8C, //P
显示全部