当前位置:网站首页>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;
}
}
边栏推荐
- Using fast parsing intranet penetration to realize zero cost self built website
- Go step on the pit - no required module provides package: go mod file not found in current directory or any parent
- 【kotlin】第三天
- Selected cutting-edge technical articles of Bi Ren Academy of science and technology
- 电力运维云平台:开启电力系统“无人值班、少人值守”新模式
- 同事的接口文档我每次看着就头大,毛病多多。。。
- QT addition calculator (simple case)
- [Peking University] tensorflow2.0-1-opening
- Observable time series data downsampling practice in Prometheus
- CTF competition problem solution STM32 reverse introduction
猜你喜欢
Application of fire fighting system based on 3D GIS platform
Tester's algorithm interview question - find mode
45 year old professor, she threw two super unicorns
取得PMP證書需要多長時間?
用快解析内网穿透实现零成本自建网站
Mit-6.824-lab4b-2022 (10000 word idea explanation - code construction)
电力运维云平台:开启电力系统“无人值班、少人值守”新模式
圖解網絡:什麼是網關負載均衡協議GLBP?
Using fast parsing intranet penetration to realize zero cost self built website
The caching feature of docker image and dockerfile
随机推荐
跨域请求
快解析——好用的内网安全软件
MIT-6.824-lab4B-2022(万字思路讲解-代码构建)
模板的进阶
雅思考试流程、需要具体注意些什么、怎么复习?
人生无常,大肠包小肠, 这次真的可以回家看媳妇去了。。。
How to apply for PMP project management certification examination?
[kotlin] the third day
Microservice
Expand your kubecl function
If you open an account of Huatai Securities by stock speculation, is it safe to open an account online?
Best practice case of enterprise digital transformation: introduction and reference of cloud based digital platform system security measures
go踩坑——no required module provides package : go.mod file not found in current directory or any parent
Galera cluster of MariaDB - dual active and dual active installation settings
ICML 2022 || 3DLinker: 用于分子链接设计的E(3)等变变分自编码器
Remember to build wheels repeatedly at one time (the setting instructions of obsidian plug-in are translated into Chinese)
Is it safe to open and register new bonds? Is there any risk? Is it reliable?
[crawler] jsonpath for data extraction
Illustrated network: what is gateway load balancing protocol GLBP?
Go pit - no required module provides Package: go. Mod file not found in current directory or any parent