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

*描述:按下第一个按键8个小灯点亮,再次按下熄灭,按下第二个按键蜂鸣器响一次

QQ:597627977

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

#define  _MAIN_C

#include "main.h"

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

* 文件名:位定义

* 描  述:

* 功  能:

* 作  者:大核桃

* 版本号:1.0.1(2017.05.23)

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

bit flag500ms = 0;//500ms翻转一次

bit staBuzzer = 0;

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

* 文件名:主循环入口

* 描  述:

* 功  能:

* 作  者:大核桃

* 版本号:1.0.1(2017.05.23)

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

void main(void)

{

uint8 i = 0;

Bsp_Power_Init();//LED端口初始化

Timer0Init();       //定时器0初始化函数

Timer1Init();                //1毫秒@11.0592MHz

LED0 = 1;//第一组LED

while(1)

{

KeyDriver();//按键扫描

if(flag_key1)

{

flag_key1 = 0;

P2 = ~P2;

}

if(flag_key2)

{

flag_key2 = 0;

KeyBeepState(1);//按键响

}

}

}

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

* 文件名:void Bsp_Power_Init()

* 描  述: 数码管上电显示

* 功  能:编程模块化

* 作  者:大核桃

* 版本号:1.0.1(2017.05.23)

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

void Bsp_Power_Init(void)

{

EA = 1;

//        IE = 0xa8;//允许AD转换

P0M1 = 0xFC;

P0M0 = 0X03;

P0 = 0X00;

P1M1 = 0xE0;

P1M0 = 0X1F;

P1 = 0X00;

//P2口开漏输出

P2M1 = 0XFF;

P2M0 = 0XFF;

P2 = 0Xff;

//        //P54,P55口为推挽输出

P5M1 = 0X00;

P5M0 = 0X00;

P5 = 0xFF;

//P37,P36,3.2,P3.3 P3.4口为推挽输出

P3M1 = 0X00;

P3M0 = 0XFC;

P3 = 0X23;

}

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

* 文件名:void Timer0Init(void)

* 描  述: 定时器0配置

* 功  能:编程模块化

* 作  者:大核桃

* 版本号:1.0.1(2017.05.23)

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

void Timer0Init(void)                //1毫秒@11.0592MHz

{

AUXR &= 0x7F;                //定时器时钟12T模式

TMOD &= 0xf0;                //设置定时器模式

TMOD |= 0x01;                //设置定时器模式

TL0 = (65535 - 1000) % 256;//设置定时初值

TH0 = (65535 - 1000) / 256;//设置定时初值

ET0 = 1;            //打开定时器0中断使能

TR0 = 1;                    //定时器0开始计时

EA = 1;             //打开总中断使能

}

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

* 文件名:void Timer0Init(void)

* 描  述: 定时器1配置

* 功  能:编程模块化

* 作  者:大核桃

* 版本号:1.0.1(2017.05.23)

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

void Timer1Init(void)                //1毫秒@11.0592MHz

{

AUXR &= 0xBF;                //定时器时钟12T模式

TMOD &= 0x0F;                //设置定时器模式

TMOD |= 0x10;                //设置定时器模式,写这个表示不是自动重载模式

TL1 = 0x66;                    //设置定时初值

TH1 = 0xFC;                    //设置定时初值

ET1 = 1;                    //定时器1中断

TR1 = 1;                    //定时器1开始计时

EA = 1;                           //开总中断使能

}

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

* 文件名:void Timer0_inter(void) interrupt 1

* 描  述: 定时器0中断服务函数

* 功  能:

* 作  者:大核桃

* 版本号:1.0.1(2017.05.23)

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

void Timer0_inter(void) interrupt 1

{

//自动重载,初值可以不需要写

TL0 = (65535 - 1000) % 256;                    //设置定时初值

TH0 = (65535 - 1000) / 256;                     //设置定时初值

Beep();

}

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

* 文件名:void Timer1_inter(void) interrupt 3

* 描  述: 定时器1中断服务函数

* 功  能:

* 作  者:大核桃

* 版本号:1.0.1(2017.05.23)

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

void Timer1_inter(void) interrupt 3

{

//自动重载,初值可以不需要写

TL1 = (65535 - 1000) % 256;                    //设置定时初值

TH1 = (65535 - 1000) / 256;                     //设置定时初值

KeyScan();//按键扫描1ms

}

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

* 文件名:void Beep(void)

* 描  述: 蜂鸣器模块子函数

* 功  能:

* 作  者:大核桃

* 版本号:1.0.1(2017.05.23)

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

void Beep(void)

{

static uint8 tmr1ms = 0;

static uint16 tmr1s = 0;

if(staBuzzer)

{

tmr1ms++;

if(tmr1ms >= 1)

{

tmr1ms = 0;

BEEP = ~BEEP;

tmr1s++;

}

if(tmr1s >= 200)//延时时间长短

{

tmr1s = 0;

staBuzzer = 0;

}

}

else

{

BEEP = 1;

}

}

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

* 文件名: void KeyBeepState(bit sta)

* 描  述: //1开按键音 0关闭按键音

* 功  能:模块化编程

* 作  者:大核桃

* 版本号:1.0.1(2015.03.03)

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

void KeyBeepState(uint8 sta)

{

if(sta)

{

staBuzzer = 1;

}

else

{

staBuzzer = 0;

}

}

java如何使实验箱蜂鸣器响_按键按一次蜂鸣器响一次的单片机程序相关推荐

  1. java怎么使两个界面联系_怎么样用java编写界面实现两个数的加法运算

    详细代码为: import java.util.scanner; public class jisuanqi { public static void main(string[] args) { in ...

  2. java会使电脑越来越慢吗_电脑越来越慢很卡怎么办

    我们都知道,电脑随着用的时间久,安装的各种软件越来越多,系统的各种垃圾与缓存.或者中毒等都会造成电脑非常的慢,有时候会出现卡的现象,那这个时候怎么办呢?怎么来给自己的电脑提速呢? 当系统变慢的时候,我 ...

  3. dell服务器一直连响4声,戴尔电脑开机滴滴响_戴尔电脑开机滴滴响4声

    2016-06-04 19:30:26 重新插拔下内存看看,有可能是内存问题. 2017-01-03 15:01:00 AMI BIOS响铃声的一般含义是: 1. 一短声,内存刷新失败.内存损坏比较严 ...

  4. 石头扫地机器人加速异响_米家扫地机器人有异响怎么办

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 米家扫地机器人有异响的解决方法如下: 1.米家扫地机器人有异响,一般是主刷盖异响的问题: 2.首先,准备两块厚度不到1mm的硬纸板 ...

  5. stm32无源蜂鸣器定时器_使用STM32控制无源蜂鸣器发声播放音乐

    [实例简介] 利用GPIO控制无源蜂鸣器发声,播放音乐.使用SysTick延时,使用位带操作寻址IO口引脚. [实例截图] [核心代码] pMusic ├── CMSIS │   ├── core_c ...

  6. linux pwm控制蜂鸣器 滴滴_第七章----pwm蜂鸣器

    Linux代码的重用: 在头文件中加载即可使用到原来所有的功能,还有动态方式就是一个驱动使用另一个驱动的资源. 对于像蜂鸣器这样的实验,它的内部文件有很多,所有要有很多的源代码以用于妥善管理. 有多个 ...

  7. srm32f4按键蜂鸣器_STM32F407通过按键控制LED和蜂鸣器

    STM32F4--GPIO基本知识 GPIO基本认识 STM32F4共7组I/O,每组I/O有16个I/O口. 每组IO的通过10个32位寄存器控制,分别控制I/O的配置.功能和数据等内容. 其中部分 ...

  8. 通信原理实验箱QY-JXSY48

    一.装置简介 QY-JXSY48通信原理综合实验箱扩展了PCM时分复用.解复用及帧定位模块功能,增加了噪声源模块.卷积编译码模块.键盘液晶显示模块.MODEM通信接口和计算机通信接口模块,加强了模块间 ...

  9. python调用电脑蜂鸣器一直响_调用系统蜂鸣器方法

    调用系统蜂鸣器方法: 1.cmd命令:echo echo ^G>d:\w.bat(输入时^G是组合键Ctrl+G输入的): 2.双击D盘下w.bat即可,以后在其他文件中引用可以复制粘贴过去即可 ...

最新文章

  1. python基础学习22----协程
  2. spring:如何用代码动态向容器中添加或移除Bean ?
  3. ML之FE:在模型训练中,仅需两行代码实现切分训练集和测试集并分离特征与标签
  4. Android程序获得APP哈希值,Android – SMS Retriever API – 计算应用程序的哈希字符串问题...
  5. SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法...
  6. POJ - 2400 Supervisor, Supervisee(KM+打印方案)
  7. 计算机操作系统模拟试题,最新考研计算机-操作系统模拟试题.doc
  8. leetcode题解46-全排列
  9. android app resign之后安装提示INSTALL_PARSE_FAILED_NO_CERTIFICATES的解决办法
  10. 【c++ templates读书笔记】【4】技巧性基础知识
  11. Python3中如何做的自定义模块的引用?
  12. PostGreSQL8.0.0中文手册
  13. wordpress安全_保持WordPress网站安全的48种方法
  14. Hbuilder X npx browserslist@latest --update-db
  15. php调用会员头像,phpcms v9模版如何调用会员头像_CMS系统建站教程
  16. 开关为什么要过零检测?内附带代码
  17. 云和恩墨多个标杆案例入选《2021年信创产业发展报告》,将持续推动数据库产业进步...
  18. 论文笔记-高速无人机网络MAC协议
  19. vue3使用tinymce编辑器
  20. JNLP文件及JWS

热门文章

  1. P2B: Point-to-Box Network 点云目标跟踪(CVPR 2020)
  2. spring注入----反射模式
  3. 指针,引用之间的关系
  4. 命名管道 win7未响应_大数据分析Python建立分析数据管道
  5. UpSetR:多数据集绘图可视化处理利器
  6. MPB:亚热带生态所葛体达组-原位酶谱法高分辨率实时检测土壤微界面酶活分布...
  7. MPB:中科院生态环境中心邓晔组-从环境样本中提取高质量DNA-研磨加DNeasy试剂盒方法...
  8. MPB:深大李猛组-基于PacBio SMRT三代测序的红树林沉积物真菌群落的研究
  9. EID-:宏病毒组技术在新发腹泻病毒鉴定中的应用
  10. Linux Shell Tips小技巧