资源简介
用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方波
相关资源
- 基于STC89C51占空比可调的pwm方波
- 单片机控制的光电编码器测速系统
- 门禁系统设计
- 电机转角控制
- 基于STC单片机和可控硅的白炽灯调光
- Qt串口助手,支持和单片机中文通信
- 51单片机小车金属丝循迹
- 基于MSP430F149单片机的语音播报模块使
- 基于STC89C52单片机的测速计设计
- 51单片机——简易计算器设计源码、
- 基于89C51单片机的LCD音乐闹钟(详细注
- STC15F2K48S2单片机DS1302获取时间通过串
- 基于AT89C852单片机的8位竞赛抢答器原
- 基于STC 51单片机的智能循迹小车
- 利用DS1302实现单片机控制的电子万年
- 51单片机心形流水灯
- 中颖单片机SH79F1612A例程
- 基于单片机的正弦波设计程序幅度和
- 15单片机开发FDC2214,测试程序,好使
- 51单片机,DS18B20实现程序
- 万能红外学习代码 单片机
- 交通灯程序设计1
- 51单片机+adc0809+PT100的24路温度巡检仪
- stc12c5a60s2单片机两路pwm
- 基于单片机和dac0832的可调的信号发生
- PCF8574LCD模块链接1602单片机51例程
- LED点阵显示汉字
- 51单片机流水灯仿真+程序
- 51单片机DHT11温湿度
- Altium designer 常用原件原理图库、封装
评论
共有 条评论