• 大小: 339KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: 单片机  C51  

资源简介

用C51写的一个简单的单片机程序,是我们单片机组装实训时候老师要求的,其中有4个功能,LED流水灯显示,按键控制数码管变化,以及按键控制蜂鸣器发出声音,比较适合初学者查看学习,代码中加了大量注释

资源截图

代码片段和文件信息

//右跑马灯
#include 
#include 
typedef unsigned int a1;
typedef unsigned char b1;
b1 k;
sbit k1=P3^2;
sbit k2=P3^3;
sbit k3=P3^4;
sbit k4=P3^5;
sbit beep=P2^7;
a1 m;
b1 smgduan[16]={0x3F 0x06 0x5B 0x4F 0x66 0x6D 0x7D 0x07
              0x7F 0x6F 0x77 0x7C 0x39 0x5E 0x79 0x71};// 段选
b1 smgwei[4]={0x70xb0xd0xe}; //数码管位
void delay(a1 i)  //延时时间函数
{
while(i--);
}

void int0init()     //外部中断0初始化
{
EA=1;
EX0=1;
IT0=1;          //下降沿触发 
}

void int1init() //外部中断1触发
{  
   EA=1;
EX1=1;
IT1=1;     //下降沿触发
}

void display() //显示函数
{
P0=~smgduan[k];//静态数码管是共阳的
P2=0x0;
beep=1;
}

void display1()    //动态数码管显示函数

if(k4==0)
{
b1 i;
while(1)
{
for(i=0;i<4;i++)
{
P0=~smgduan[i];
P2=smgwei[i];
beep=1;
delay(40000); //通过改变延时时间即可实现动态扫描
}    ‘
}
}
}

void beepvoice()   //蜂鸣器发声函数
{
if(k3==0)
   while(1)
{
beep=0;
delay(10000);
beep=~beep;
delay(10000);
}
}
void delay_10ms(unsigned int c)   //变换间隔函数
{
unsigned char ab;
for(;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}

void change()  //LED变换函数
{
unsigned char ij;
P1=0xfe;
if(m==1)
{ for(i=0;i<7;i++)
{
P1=_crol_(P11);
delay(50000);
}
for(j=0;j<7;j++)
{
  P1=_cror_(P11);
delay_10ms(50);  xxx
}
}
}

void main()    //主函数
{
beep=1;       //初始化蜂鸣器
int0init();
int1init();
while(1)
{
change();
display();
display1();
beepvoice();

}
}


void int0() interrupt 0      //判断按键k1是否按下
{
delay(1000); //消抖处理
if(k1==0)
m++;
}

void int1() interrupt 2
{
delay(1000);//消抖处理
if(k2==0)  //再次判断按键是否按下
{
k++;
if(k==16)k=0;
}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-15 09:18  单片机组装实训代码\
     文件      319665  2013-09-05 11:03  单片机组装实训代码\LED接线图.jpg
     文件        2287  2018-06-15 09:03  单片机组装实训代码\单片机组装实训
     文件       10105  2018-06-15 09:03  单片机组装实训代码\单片机组装实训.M51
     文件        1515  2018-06-15 09:03  单片机组装实训代码\单片机组装实训.hex
     文件          37  2018-06-15 09:03  单片机组装实训代码\单片机组装实训.lnp
     文件        2275  2018-06-15 09:00  单片机组装实训代码\跑马灯
     文件        5532  2018-06-15 09:03  单片机组装实训代码\跑马灯.LST
     文件       10073  2018-06-15 09:00  单片机组装实训代码\跑马灯.M51
     文件        3218  2018-06-15 09:03  单片机组装实训代码\跑马灯.OBJ
     文件        1885  2018-06-15 09:18  单片机组装实训代码\跑马灯.c
     文件        1515  2018-06-15 09:00  单片机组装实训代码\跑马灯.hex
     文件          29  2018-06-15 09:00  单片机组装实训代码\跑马灯.lnp
     文件        2558  2018-06-15 09:03  单片机组装实训代码\跑马灯.plg
     文件       56276  2018-06-15 09:18  单片机组装实训代码\跑马灯.uvopt
     文件       13250  2018-06-15 09:18  单片机组装实训代码\跑马灯.uvproj
     文件       55876  2018-06-14 17:05  单片机组装实训代码\跑马灯_uvopt.bak
     文件       13238  2018-06-14 16:40  单片机组装实训代码\跑马灯_uvproj.bak

评论

共有 条评论