资源简介
用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
- 上一篇:shell简单实现
- 下一篇:基于STC89C51占空比可调的pwm方波
相关资源
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- proteus仿真 AT89C51输出各种波形
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
评论
共有 条评论