当前位置:网站首页>九齐单片机NY8B062D单按键控制4种LED状态
九齐单片机NY8B062D单按键控制4种LED状态
2022-07-04 18:45:00 【51CTO】
/* =========================================================================
* Project: 单按键控制4种LED状态
* File: 单按键控制4种LED状态
* Description: 单按键控制4种LED状态
*
*
* Author: Jimp
* Version: V1.0
* Date: 2020/05/22
=========================================================================*/
//--------------- File Include ---------------------------------------------
//--------------------------------------------------------------------------
#include <ny8.h>
#include <stdint.h>
#include "ny8_constant.h"
#define UPDATE_REG(x) __asm__("MOVR _" #x ",F")
#define unchar unsigned char
#define unint unsigned int
uint8_t myvar;
__sbit flag = myvar:0; //定义控制运行符
__sbit key = PORTB:0;
__sbit light1 = PORTA:7;
__sbit light2 = PORTA:6;
unchar Mod; //定义亮灯模式
void isr(void) __interrupt(0)
{
if(INTFbits.T0IF)
{
static unsigned int cnt= 0;
TMR0 = 0;
INTF= (unsigned char)~(C_INT_TMR0); // Clear T0IF flag bit
cnt ++;
if(cnt >= 250)
{
cnt = 0;
light1 = ~light1;
light2 = ~light2;
}
}
}
void lnit_Mod() //初始化函数
{
IOSTA = ~IOSTA; //设置A口为输出
PORTA = 0xFF;
IOSTB = C_PB0_Input;
flag = 1;
key = 1;
Mod = 0;
light1 = 0;
light2 = 0;
}
void lnit_Timer() //中断初始化
{
DISI(); //禁用中断
PCON1 = C_TMR0_Dis;
TMR0 = 0;
T0MD = C_PS0_TMR0 | C_PS0_Div8; //预分频分配给TMR0
INTE = C_INT_TMR0;
ENI(); //启用中断
}
void delay(unint z) //延时函数ms
{
unint x,y;
for(x = z;x > 0;x--)
for(y = 100;y > 0;y--);
}
void lnput_Mod() //状态模式标记函数
{
if(Mod == 4)
Mod = 0;
if(key == 0)
{
delay(5);
if(key == 0) //延时消抖
Mod++; //按键次数标记
}
while(!key) //松手检测
{;;}
}
void run() //4种模式下的执行
{
switch(Mod)
{
case 0:{PCON1 = C_TMR0_Dis;light1 = 0;light2 = 0;}break; //全亮
case 1:{PCON1 = C_TMR0_En;}break; //同步闪烁
case 2:{PCON1 = C_TMR0_Dis;light1 = 1;light2 = 1;}break; //全灭
case 3:{PCON1 = C_TMR0_Dis;light1 = 0;light2 = 1;PCON1 = C_TMR0_En;}break; //异步闪
}
}
void main(void)
{
lnit_Mod();
lnit_Timer();
while(1)
{
lnput_Mod();
if(flag == 1) //控制RUN运行
{
run();
if(Mod == 1||Mod == 3)
flag = 0;
}
if(Mod == 0||Mod == 2)
flag = 1;
}
}
边栏推荐
- 1009 product of polynomials (25 points) (PAT class a)
- Basic use of kotlin
- 记一次 .NET 某工控数据采集平台 线程数 爆高分析
- 1006 sign in and sign out (25 points) (PAT class a)
- Detailed explanation of Audi EDI invoice message
- Thinking on demand development
- Wireshark network packet capture
- Integretee integrates into Moonriver through xcm, bringing enterprise class privacy solutions to its ecosystem
- Related concepts of federal learning and motivation (1)
- Cann operator: using iterators to efficiently realize tensor data cutting and blocking processing
猜你喜欢
Crystal optoelectronics: ar-hud products of Chang'an dark blue sl03 are supplied by the company
Related concepts of federal learning and motivation (1)
Neural network IOT platform construction (IOT platform construction practical tutorial)
多表操作-内连接查询
Niuke Xiaobai month race 7 who is the divine Archer
In the first month of its launch, the tourist praise rate of this campsite was as high as 99.9%! How did he do it?
TCP waves twice, have you seen it? What about four handshakes?
node强缓存和协商缓存实战示例
Swagger suddenly went crazy
Pythagorean number law (any three numbers can meet the conditions of Pythagorean theorem)
随机推荐
做社交媒体营销应该注意些什么?Shopline卖家的成功秘笈在这里!
Pointnet / pointnet++ point cloud data set processing and training
[graduation season] green ant new fermented grains wine, red mud small stove. If it snows late, can you drink a cup?
Application practice | Shuhai supply chain construction of data center based on Apache Doris
How is the entered query SQL statement executed?
What is the application technology of neural network and Internet of things
数据集划分
1008 elevator (20 points) (PAT class a)
TCP waves twice, have you seen it? What about four handshakes?
一文搞懂Go语言中文件的读写与创建
Lingyun going to sea | Wenhua online & Huawei cloud: creating a new solution for smart teaching in Africa
HDU 6440 2018 Chinese college student program design network competition
What should we pay attention to when doing social media marketing? Here is the success secret of shopline sellers!
In operation (i.e. included in) usage of SSRs filter
如何让你的小游戏适配不同尺寸的手机屏幕
C server log module
2022 version of stronger jsonpath compatibility and performance test (snack3, fastjson2, jayway.jsonpath)
Installation and use of VMware Tools and open VM tools: solve the problems of incomplete screen and unable to transfer files of virtual machines
凌云出海记 | 一零跃动&华为云:共助非洲普惠金融服务
紫光展锐完成全球首个 5G R17 IoT NTN 卫星物联网上星实测