云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单片机学习程序

单片机学习程序

  • 62 次阅读
  • 3 次下载
  • 2026/4/23 19:38:57

/*******************************************************************************

* * 普中科技

-------------------------------------------------------------------------------- * 实 验 名 : 按键选择LED灯左右移动实验 * 实验说明 : 按键选择LED灯左右移动 * 连接方式 : 见接线图 * 注 意 :

*******************************************************************************/

//--包含你要使用的头文件--//

#include //此文件中定义了51的一些特殊功能寄存器 #include

//--定义要使用的IO口--//

sbit K1 = P1^0; //对应按钮K1 sbit K2 = P1^1; //对应按钮K2

#define GPIO_LED P0 //led使用P0口

//--定义全局函数--//

void Delay10ms(unsigned int c); //延时10ms unsigned char Key_Scan();

/*******************************************************************************

* 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无

*******************************************************************************/

void main(void) { unsigned char ledValue, keyNum; ledValue = 0x01; while (1) { keyNum = Key_Scan(); //扫描键盘 if (keyNum == 1) //如果键值返回1

21

{ ledValue = _crol_(ledValue, 1); //左循环 } else if (keyNum == 2) { ledValue = _cror_(ledValue, 1); //右循环 } GPIO_LED = ledValue;//点亮LED灯 } }

/*******************************************************************************

* 函 数 名 : Key_Scan() * 函数功能 : 扫描键盘 * 输 入 : 无

* 输 出 : 读取到的键值

*******************************************************************************/

unsigned char Key_Scan() { unsigned char keyValue = 0 , i; //保存键值 //--检测按键1--// if (K1==0) //检测按键K1是否按下 { Delay10ms(1);//消除抖动 if (K1==0) //再次检测按键是否按下 { keyValue = 1; i = 0; while ((i<50) && (K1==0)) //检测按键是否松开 { Delay10ms(1); i++; } } } //--检测按键2--// if (K2==0) //检测按键K1是否按下

22

{ Delay10ms(1);//消除抖动 if (K2==0) //再次检测按键是否按下 { keyValue = 2; i = 0; while ((i<50) && (K2==0)) //检测按键是否松开 { Delay10ms(1); i++; } } } return keyValue; //将读取到键值的值返回 }

/*******************************************************************************

* 函 数 名 : Delay10ms * 函数功能 : 延时函数,延时10ms * 输 入 : 无 * 输 出 : 无

*******************************************************************************/

void Delay10ms(unsigned int c) //误差 0us {

unsigned char a, b; //--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--// for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } }

/************************************************************************

23

[文件名] C51音乐程序(八月桂花) [功能] 通过单片机演奏音乐

/**********************************************************************/ #include #include

//本例采用89C52, 晶振为11.0592MHZ

//关于如何编制音乐代码, 其实十分简单,各位可以看以下代码.

//频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍; //所以拿出谱子, 试探编吧!

sbit Beep = P1^5 ;

unsigned char n=0; //n为节拍常数变量 unsigned char code music_tab[] ={

0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数, 0x20, 0x40, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x10, 0x1C, 0x10, 0x18 , 0x40, 0x1C, 0x20, 0x20 , 0x20, 0x1C, 0x20, 0x18 , 0x20, 0x20, 0x80, 0xFF , 0x20, 0x30, 0x1C, 0x10 , 0x18, 0x20, 0x15, 0x20 , 0x1C, 0x20, 0x20, 0x20 , 0x26, 0x40, 0x20, 0x20 , 0x2B, 0x20, 0x26, 0x20 , 0x20, 0x20, 0x30, 0x80 , 0xFF, 0x20, 0x20, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x20, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x20, 0x15 , 0x20, 0x1C, 0x20, 0x20 , 0x20, 0x26, 0x40, 0x20 , 0x20, 0x2B, 0x20, 0x26 , 0x20, 0x20, 0x20, 0x30 , 0x80, 0x20, 0x30, 0x1C , 0x10, 0x20, 0x10, 0x1C , 0x10,

24

搜索更多关于: 单片机学习程序 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

/******************************************************************************* * * 普中科技 -------------------------------------------------------------------------------- * 实 验 名 : 按键选择LED灯左右移动实验 * 实验说明 : 按键选择LED灯左右移动 * 连接方式 : 见接线图 * 注 意 : ******************************************************************

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com