当前位置:网站首页>Nine Qi single chip microcomputer ny8b062d single key control four LED States
Nine Qi single chip microcomputer ny8b062d single key control four LED States
2022-07-04 23:51:00 【51CTO】
/* =========================================================================
* Project: Single key control 4 Kind of LED state
* File: Single key control 4 Kind of LED state
* Description: Single key control 4 Kind of LED state
*
*
* 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; // Define the control operator
__sbit key = PORTB:0;
__sbit light1 = PORTA:7;
__sbit light2 = PORTA:6;
unchar Mod; // Define the lighting mode
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() // Initialization function
{
IOSTA = ~IOSTA; // Set up A The mouth is the output
PORTA = 0xFF;
IOSTB = C_PB0_Input;
flag = 1;
key = 1;
Mod = 0;
light1 = 0;
light2 = 0;
}
void lnit_Timer() // Interrupt initialization
{
DISI(); // Disable interrupt
PCON1 = C_TMR0_Dis;
TMR0 = 0;
T0MD = C_PS0_TMR0 | C_PS0_Div8; // Pre frequency division is allocated to TMR0
INTE = C_INT_TMR0;
ENI(); // Enable interrupt
}
void delay(unint z) // The time delay function ms
{
unint x,y;
for(x = z;x > 0;x--)
for(y = 100;y > 0;y--);
}
void lnput_Mod() // State mode marker function
{
if(Mod == 4)
Mod = 0;
if(key == 0)
{
delay(5);
if(key == 0) // Delay chattering
Mod++; // The number of keystrokes is marked
}
while(!key) // Let go of the test
{;;}
}
void run() //4 Execution in three modes
{
switch(Mod)
{
case 0:{PCON1 = C_TMR0_Dis;light1 = 0;light2 = 0;}break; // All bright
case 1:{PCON1 = C_TMR0_En;}break; // Synchronous flashing
case 2:{PCON1 = C_TMR0_Dis;light1 = 1;light2 = 1;}break; // Total destruction
case 3:{PCON1 = C_TMR0_Dis;light1 = 0;light2 = 1;PCON1 = C_TMR0_En;}break; // Asynchronous flash
}
}
void main(void)
{
lnit_Mod();
lnit_Timer();
while(1)
{
lnput_Mod();
if(flag == 1) // control RUN function
{
run();
if(Mod == 1||Mod == 3)
flag = 0;
}
if(Mod == 0||Mod == 2)
flag = 1;
}
}
边栏推荐
- 如何将自己的代码作品快速存证,已更好的保护自己劳动成果
- 【北京大学】Tensorflow2.0-1-开篇
- Qualcomm WLAN framework learning (30) -- components supporting dual sta
- The input of uniapp is invalid except for numbers
- Application of machine learning in housing price prediction
- 业务场景功能的继续修改
- Pytoch --- use pytoch to realize linknet for semantic segmentation
- Instructions for go defer
- 壁仞科技研究院前沿技术文章精选
- How to save your code works quickly to better protect your labor achievements
猜你喜欢
C language to quickly solve the reverse linked list
Solution record of jamming when using CAD to move bricks in high configuration notebook
Using the uniapp rich text editor
Face recognition 5- insight face padding code practice notes
[path planning] RRT adds dynamic model for trajectory planning
Intelligence test to see idioms guess ancient poems wechat applet source code
Compare two vis in LabVIEW
Illustrated network: what is gateway load balancing protocol GLBP?
Etcd database source code analysis - brief process of processing entry records
French scholars: the explicability of counter attack under optimal transmission theory
随机推荐
"Xiaodeng" domain password policy enhancer in operation and maintenance
「运维有小邓」域密码策略强化器
45 year old professor, she threw two super unicorns
【北京大学】Tensorflow2.0-1-开篇
Combien de temps faut - il pour obtenir un certificat PMP?
Acrel-EMS综合能效平台在校园建设的意义
js正则表达式之中文验证(转)
Phpcms paid reading function Alipay payment
Financial markets, asset management and investment funds
【雅思阅读】王希伟阅读P3(Heading)
微软禁用IE浏览器后,打开IE浏览器闪退解决办法
Go step on the pit - no required module provides package: go mod file not found in current directory or any parent
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
Solve the problem that the virtual machine cannot be remotely connected through SSH service
S32 design studio for arm 2.2 quick start
取得PMP证书需要多长时间?
华泰证券低佣金的开户链接安全吗?
快解析内网穿透帮助企业快速实现协同办公
ECCV 2022 | Tencent Youtu proposed disco: the effect of saving small models in self supervised learning
Intelligence test to see idioms guess ancient poems wechat applet source code