国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STC8H_PWM制作呼吸燈

這篇具有很好參考價(jià)值的文章主要介紹了STC8H_PWM制作呼吸燈。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

主要特性

stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)
stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)

時(shí)基單元

stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)
stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)

16位PWMA_ARR寄存器的寫(xiě)操作

stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)

stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)

預(yù)分頻器

stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)

PWM模式

stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)
stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)
PWM邊沿對(duì)齊模式
stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)
寄存器描述
輸出使能寄存器(PWMx_ENO)
stc8h pwm,電路應(yīng)用,1024程序員節(jié),嵌入式硬件,硬件工程,單片機(jī)

功能實(shí)現(xiàn)說(shuō)明:
通過(guò)定時(shí)器遞增或遞減來(lái)設(shè)置PWM的占空比調(diào)節(jié)亮度,最終顯示出呼吸燈的效果

代碼部分
PWM程序模塊

#ifndef _PWM_H_
#define _PWM_H_

#include "GPIO.h"

#define PWM1_CCMR1_ADDR  0xfec8	//CCMR2_ADDR = CCMR1_ADDR + 1
#define PWM1_CCR1_ADDR   0xfed5 //CCR2_ADDR = CCR1_ADDR + 2
#define PWM1_CCER1_ADDR  0xfecc //CCER2_ADDR = CCER1_ADDR + 1

#define PWM2_CCMR1_ADDR  0xfee8 //CCMR2_ADDR = CCMR1_ADDR + 1
#define PWM2_CCR1_ADDR   0xfef5	//CCR2_ADDR = CCR1_ADDR + 2
#define	PWM2_CCER1_ADDR  0xfeec //CCER2_ADDR = CCER1_ADDR + 1

typedef enum
{
	PWM1P_P10 = 0x00, PWM1N_P11,
	PWM1P_P20, PWM1N_P21,
	PWM1P_P60, PWM1N_P61,

	PWM2P_P12 = 0x10, PWM2N_P13,
	PWM2P_P22, PWM2N_P23,
	PWM2P_P62, PWM2N_P63,

	PWM3P_P14 = 0x20, PWM3N_P15,
	PWM3P_P24, PWM3N_P25,
	PWM3P_P64, PWM3N_P65,

	PWM4P_P16 = 0x30, PWM4N_P17,
	PWM4P_P26, PWM4N_P27,
	PWM4P_P66, PWM4N_P67,
	PWM4P_P34, PWM4N_P33,

	PWM5_P20 = 0x40,
	PWM5_P17,
	PWM5_P00,
	PWM5_P74,

	PWM6_P21 = 0x50,
	PWM6_P54,
	PWM6_P01,
	PWM6_P75,

	PWM7_P22 = 0x60,
	PWM7_P33,
	PWM7_P02,
	PWM7_P76,

	PWM8_P23 = 0x70,
	PWM8_P34,
	PWM8_P03,
	PWM8_P77,

}PWM_CH;


//-------------------------------------------------------------------------------------------------------------------
//  @brief      PWM_gpio配置
//  @param      pwmch       PWM通道
//  @return     void
//  Sample usage:           
//-------------------------------------------------------------------------------------------------------------------
void pwm_set_gpio(PWM_CH pwmch)
{
	switch (pwmch)
	{
		case PWM1P_P10:
		{
			pinMode(P10, GPIO_PP);
			break;
		}
		case PWM1N_P11:
		{
			pinMode(P11, GPIO_PP);
			break;
		}
		case PWM1P_P20:
		{
			pinMode(P20, GPIO_PP);
			break;
		}
		case PWM1N_P21:
		{
			pinMode(P21, GPIO_PP);
			break;
		}
		case PWM1P_P60:
		{
			pinMode(P60, GPIO_PP);
			break;
		}
		case PWM1N_P61:
		{
			pinMode(P61, GPIO_PP);
			break;
		}

		case PWM2P_P12:
		{
			pinMode(P12, GPIO_PP);
			break;
		}
		case PWM2N_P13:
		{
			pinMode(P13, GPIO_PP);
			break;
		}
		case PWM2P_P22:
		{
			pinMode(P22, GPIO_PP);
			break;
		}
		case PWM2N_P23:
		{
			pinMode(P23, GPIO_PP);
			break;
		}
		case PWM2P_P62:
		{
			pinMode(P62, GPIO_PP);
			break;
		}
		case PWM2N_P63:
		{
			pinMode(P63, GPIO_PP);
			break;
		}

		case PWM3P_P14:
		{
			pinMode(P14, GPIO_PP);
			break;
		}
		case PWM3N_P15:
		{
			pinMode(P15, GPIO_PP);
			break;
		}
		case PWM3P_P24:
		{
			pinMode(P24, GPIO_PP);
			break;
		}
		case PWM3N_P25:
		{
			pinMode(P25, GPIO_PP);
			break;
		}
		case PWM3P_P64:
		{
			pinMode(P64, GPIO_PP);
			break;
		}
		case PWM3N_P65:
		{
			pinMode(P65, GPIO_PP);
			break;
		}
		case PWM4P_P16:
		{
			pinMode(P16, GPIO_PP);
			break;
		}
		case PWM4N_P17:
		{
			pinMode(P17, GPIO_PP);
			break;
		}
		case PWM4P_P26:
		{
			pinMode(P26, GPIO_PP);
			break;
		}
		case PWM4N_P27:
		{
			pinMode(P27, GPIO_PP);
			break;
		}
		case PWM4P_P66:
		{
			pinMode(P66, GPIO_PP);
			break;
		}
		case PWM4N_P67:
		{
			pinMode(P67, GPIO_PP);
			break;
		}
		case PWM4P_P34:
		{
			pinMode(P34, GPIO_PP);
			break;
		}
		case PWM4N_P33:
		{
			pinMode(P33, GPIO_PP);
			break;
		}


		case PWM5_P20:
		{
			pinMode(P20, GPIO_PP);
			break;
		}
		case PWM5_P17:
		{
			pinMode(P17, GPIO_PP);
			break;
		}
		case PWM5_P00:
		{
			pinMode(P00, GPIO_PP);
			break;
		}
		case PWM5_P74:
		{
			pinMode(P74, GPIO_PP);
			break;
		}
		case PWM6_P21:
		{
			pinMode(P21, GPIO_PP);
			break;
		}
		case PWM6_P54:
		{
			pinMode(P54, GPIO_PP);
			break;
		}
		case PWM6_P01:
		{
			pinMode(P01, GPIO_PP);
			break;
		}
		case PWM6_P75:
		{
			pinMode(P75, GPIO_PP);
			break;
		}
		case PWM7_P22:
		{
			pinMode(P22, GPIO_PP);
			break;
		}
		case PWM7_P33:
		{
			pinMode(P33, GPIO_PP);
			break;
		}
		case PWM7_P02:
		{
			pinMode(P02, GPIO_PP);
			break;
		}
		case PWM7_P76:
		{
			pinMode(P76, GPIO_PP);
			break;
		}
		case PWM8_P23:
		{
			pinMode(P23, GPIO_PP);
			break;
		}
		case PWM8_P34:
		{
			pinMode(P34, GPIO_PP);
			break;
		}
		case PWM8_P03:
		{
			pinMode(P03, GPIO_PP);
			break;
		}
		case PWM8_P77:
		{
			pinMode(P77, GPIO_PP);
			break;
		}
	}
}


//-------------------------------------------------------------------------------------------------------------------
//  @brief      PWM初始化
//  @param      pwmch       PWM通道
//  @param      freq        PWM頻率64Hz-3MHz)
//  @param      duty        PWM占空比
//  @return     void
//  Sample usage:           
//							pwm_init(PWM0_P00, 100, 5000);     //通道PWM0  引腳P0.0  頻率100  占空比5000
//							PWM_DUTY_MAX為10000
//-------------------------------------------------------------------------------------------------------------------
void pwm_init(PWM_CH pwmch, uint32 freq, uint16 duty)
{

	uint16 match_temp;
	uint16 period_temp;
	uint16 freq_div = 0;

	P_SW2 |= 0x80;

	//GPIO端口配置
	pwm_set_gpio(pwmch);

	freq_div = ((uint32)(sys_clk / freq)) >> 16;				//分頻

	period_temp = (sys_clk / freq) / (freq_div + 1) - 1;		//周期時(shí)間

	match_temp = period_temp * ((float)duty / PWM_DUTY_MAX);	//占空比

	if (PWM5_P20 <= pwmch)				//PWM5-8
	{

		PWM2_ENO |= (1 << ((2 * ((pwmch >> 4) - 4))));					//使能輸出
		PWM2_PS |= ((pwmch & 0x03) << ((2 * ((pwmch >> 4) - 4))));		//輸出腳選擇

		// 配置通道輸出使能和極性	
		(*(unsigned char volatile xdata*)(PWM2_CCER1_ADDR + (((pwmch >> 4) - 4) >> 1))) |= (1 << (((pwmch >> 4) & 0x01) * 4));

		//通道模式配置
		(*(unsigned char volatile xdata*)(PWM2_CCMR1_ADDR + ((pwmch >> 4) - 4))) |= 0x06 << 4;	//
		(*(unsigned char volatile xdata*)(PWM2_CCMR1_ADDR + ((pwmch >> 4) - 4))) |= 1 << 3;		//PWM模式2

		//設(shè)置周期時(shí)間(高字節(jié)先寫(xiě)入)
		//PWM2_ARR = (uint16)period_temp;
		PWM2_ARRH = period_temp >> 8;
		PWM2_ARRL = period_temp;
		//PWM2_ARR=2000;

		//PWM預(yù)分頻(高字節(jié)先寫(xiě)入)
		PWM2_PSCRH = freq_div >> 8;
		PWM2_PSCRL = freq_div;

		//設(shè)置占空比(高字節(jié)先寫(xiě)入)
		(*(unsigned char volatile xdata*)(PWM2_CCR1_ADDR + 2 * ((pwmch >> 4) - 4))) = match_temp >> 8;
		(*(unsigned char volatile xdata*)(PWM2_CCR1_ADDR + 2 * ((pwmch >> 4) - 4) + 1)) = match_temp;
		
		PWM2_BKR = 0x80; 	//使能主輸出
		PWM2_CR1 = 0x01;	//PWM開(kāi)始計(jì)時(shí)
	}
	else
	{
		PWM1_ENO |= (1 << (pwmch & 0x01)) << ((pwmch >> 4) * 2);	//使能輸出	
		PWM1_PS |= ((pwmch & 0x07) >> 1) << ((pwmch >> 4) * 2);    //輸出腳選擇


		// 配置通道輸出使能和極性
		(*(unsigned char volatile xdata*)(PWM1_CCER1_ADDR + (pwmch >> 5))) |= (1 << ((pwmch & 0x01) * 2 + ((pwmch >> 4) & 0x01) * 0x04));


		(*(unsigned char volatile xdata*)(PWM1_CCMR1_ADDR + (pwmch >> 4))) |= 0x06 << 4;	
		(*(unsigned char volatile xdata*)(PWM1_CCMR1_ADDR + (pwmch >> 4))) |= 1 << 3;		//PWM模式2

		//設(shè)置周期時(shí)間(高字節(jié)先寫(xiě)入)
		//PWM1_ARR = period_temp;
		PWM1_ARRH = period_temp >> 8;
		PWM1_ARRL = period_temp;

		//PWM預(yù)分頻(高字節(jié)先寫(xiě)入)
		PWM1_PSCRH = freq_div >> 8;
		PWM1_PSCRL = freq_div;

		//設(shè)置占空比(高字節(jié)先寫(xiě)入)
		(*(unsigned char volatile xdata*)(PWM1_CCR1_ADDR + 2 * (pwmch >> 4))) = match_temp >> 8;
		(*(unsigned char volatile xdata*)(PWM1_CCR1_ADDR + 2 * (pwmch >> 4) + 1)) = match_temp;

		PWM1_BKR = 0x80; 	//使能主輸出
		PWM1_CR1 = 0x01;	//PWM開(kāi)始計(jì)時(shí)
	}

	//P_SW2 &= 0x7F;

}

//-------------------------------------------------------------------------------------------------------------------
//  @brief      PWM調(diào)整占空比
//  @param      pwmch       PWM引腳
//  @param      duty        PWM占空比
//  @return     void
//  Sample usage:           pwm_duty(PWM0_P00, 5000);     //通道PWM0  引腳P0.0  占空比5000
//							
//-------------------------------------------------------------------------------------------------------------------
void pwm_duty(PWM_CH pwmch, uint16 duty)
{
	uint16 match_temp;

	//	P_SW2 |= 0x80;
	if (PWM5_P20 <= pwmch)				//PWM5-8
	{
		match_temp = PWM2_ARRH;
		match_temp = match_temp << 8;
		match_temp = match_temp + PWM2_ARRL;
		match_temp = match_temp * ((float)duty / PWM_DUTY_MAX);				//占空比
		(*(unsigned char volatile xdata*)(PWM2_CCR1_ADDR + 2 * ((pwmch >> 4) - 4))) = match_temp >> 8;
		(*(unsigned char volatile xdata*)(PWM2_CCR1_ADDR + 2 * ((pwmch >> 4) - 4) + 1)) = match_temp;
	}
	else
	{
		match_temp = PWM1_ARRH;
		match_temp = match_temp << 8;
		match_temp = match_temp + PWM1_ARRL;
		match_temp = match_temp *((float)duty / PWM_DUTY_MAX);				//占空比
		(*(unsigned char volatile xdata*)(PWM1_CCR1_ADDR + 2 * (pwmch >> 4))) = match_temp >> 8;
		(*(unsigned char volatile xdata*)(PWM1_CCR1_ADDR + 2 * (pwmch >> 4) + 1)) = match_temp;
	}
	//	P_SW2 &= ~0x80;

}

//-------------------------------------------------------------------------------------------------------------------
//  @brief      PWM調(diào)整頻率和占空比
//  @param      pwmch       PWM通道
//  @param      freq        PWM頻率
//  @param      duty        PWM占空比
//  @return     void
//  Sample usage:           pwm_freq(PWM0_P00, 50, 5000);     //通道PWM0  引腳P0.0  頻率50  占空比5000
//-------------------------------------------------------------------------------------------------------------------
void pwm_freq_duty(PWM_CH pwmch, uint16 freq, uint16 duty)
{
	uint16 match_temp;
	uint16 period_temp;
	uint16 freq_div = 0;

	freq_div = (sys_clk / freq) >> 15;								//分頻
	period_temp = sys_clk / freq / (freq_div + 1);					//頻率

	//match_temp = period_temp * duty;
	//match_temp = match_temp / PWM_DUTY_MAX;
	match_temp = period_temp * ((float)duty / PWM_DUTY_MAX);	//占空比

//	P_SW2 |= 0x80;
	if (PWM5_P20 <= pwmch)				//PWM5-8
	{
		//周期(高字節(jié)先寫(xiě)入)
		//PWM2_ARR = (uint16)period_temp;
		PWM2_ARRH = period_temp >> 8;
		PWM2_ARRL = period_temp;
		//PWM預(yù)分頻(高字節(jié)先寫(xiě)入)
		PWM2_PSCRH = freq_div>>8;
		PWM2_PSCRL = freq_div;
		//占空比(高字節(jié)先寫(xiě)入)
		//(*(unsigned int volatile xdata*)(PWM2_CCR1_ADDR + 2 * ((pwmch >> 4) - 4))) = match_temp;
		(*(unsigned char volatile xdata*)(PWM2_CCR1_ADDR + 2 * ((pwmch >> 4) - 4))) = match_temp >> 8;
		(*(unsigned char volatile xdata*)(PWM2_CCR1_ADDR + 2 * ((pwmch >> 4) - 4) + 1)) = match_temp;
		
	}
	else
	{
		//周期(高字節(jié)先寫(xiě)入)
		//PWM2_ARR = (uint16)period_temp;
		PWM1_ARRH = period_temp >> 8;
		PWM1_ARRL = period_temp;
		//PWM預(yù)分頻(高字節(jié)先寫(xiě)入)
		PWM1_PSCR = freq_div;
		//占空比(高字節(jié)先寫(xiě)入)
		//(*(unsigned int volatile xdata*)(PWM1_CCR1_ADDR + 2 * (pwmch >> 4))) = match_temp;
		(*(unsigned char volatile xdata*)(PWM1_CCR1_ADDR + 2 * (pwmch >> 4))) = match_temp >> 8;
		(*(unsigned char volatile xdata*)(PWM1_CCR1_ADDR + 2 * (pwmch >> 4) + 1)) = match_temp;
		
	}
	//	P_SW2 &= ~0x80;
}
#endif

主函數(shù)部分

	//pwm_LED初始化--------------
	pwm_init(PWM4P_P16, 2000, 800);//pwm初始化三個(gè)參數(shù)分別是引腳、頻率、占空比10/PWM_DUTY_MAX

中斷部分文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-519310.html

//========================================================================
// 描述: 定時(shí)器控制呼吸燈計(jì)數(shù)和ADC與DAC數(shù)據(jù)對(duì)比
// 參數(shù): none.
// 返回: none.
//========================================================================
void T_IRQ0(void) interrupt 12 using 0{

    if(coun_advance == 1){
      counter = counter + 10;
      if(counter == 1000){
        coun_advance = 0;
        coun_retreat = 1;
      }
    }
    else{
      if(coun_retreat == 1){
        counter = counter - 10;
        if(counter == 0){
          coun_retreat = 0;
          coun_advance = 1;
        }
      }
    }
		pwm_duty(PWM4P_P16, counter);//pwm調(diào)整三個(gè)參數(shù)分別是引腳、頻率、占空比10/PWM_DUTY_MAX

}

到了這里,關(guān)于STC8H_PWM制作呼吸燈的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STC8H系列單片機(jī)入門(mén)教程之ADC基礎(chǔ)知識(shí)(四)

    STC8H系列單片機(jī)入門(mén)教程之ADC基礎(chǔ)知識(shí)(四)

    目錄 一、A/D轉(zhuǎn)換過(guò)程 二、ADC轉(zhuǎn)換流程圖 三、采樣定理 四、ADC基本參數(shù) 4.1、分辨率 4.2、采樣速率 4.3、轉(zhuǎn)換時(shí)間 4.4、量程? 4.5、最低有效位 五、靜態(tài)參數(shù) 5.1、微分非線性 5.2、積分非線性 六、逐次逼近型模數(shù)轉(zhuǎn)換器 七、ADC常用分壓電路 八、示例代碼 ADC即模數(shù)轉(zhuǎn)換器,用來(lái)

    2024年04月11日
    瀏覽(23)
  • STC8H系列單片機(jī)入門(mén)教程之GPIO基本知識(shí)(一)

    STC8H系列單片機(jī)入門(mén)教程之GPIO基本知識(shí)(一)

    IO口即輸入輸出口,STC8H系列單片機(jī)支持四種工作模式, 即準(zhǔn)雙向口、推挽輸出、高阻輸入、開(kāi)漏輸出,每個(gè)IO通過(guò)兩個(gè)寄存器進(jìn)行配置,如下圖所示,注:n = 0,1,2,3,4,5,6,7。 PnM1 PnM0 I/O 口工作模式 0 0 準(zhǔn)雙向口(弱上拉),灌電流可達(dá) 20mA ,拉電流 150-270uA 0 1 推挽輸出,強(qiáng)上拉

    2024年04月14日
    瀏覽(47)
  • STC8H8K64U單片機(jī)PWM配置

    STC8H8K64U單片機(jī)配置PWM的通道1、通道2、通道7、通道8。STC8可以分為兩組PWM,PWMA和PWMB,在使用時(shí),如果同時(shí)使用了兩組,那么兩組的寄存器需要同時(shí)配置。 邊沿對(duì)齊 PWM輸出頻率 = 系統(tǒng)工作頻率 / (PWMx_PSCR + 1) * (PWMx_ARR + 1); 中間對(duì)齊 PWM輸出頻率 = 系統(tǒng)工作頻率 / (PWMx_PSCR + 1) *

    2024年02月11日
    瀏覽(25)
  • 『STC8H8K64U』概述

    『STC8H8K64U』概述

    ? ? ? ? 大家好,我是初堯.C。希望看完這篇文章對(duì)你能有所幫助,不足之處請(qǐng)指正~?? ? ? ? ? 本文由初堯.C 原創(chuàng) CSDN首發(fā) 如需轉(zhuǎn)載還請(qǐng)通知?? ? ? ? ? ??無(wú)端墜入凡生夢(mèng). 卻惹三千煩惱絲?? ? ? ? ? 歡迎各位??點(diǎn)贊+收藏+留言?? ? ? ? ? 系列專(zhuān)欄― STC8H8K64U?? ????

    2024年02月05日
    瀏覽(52)
  • STC8h1k28六個(gè)基本實(shí)驗(yàn)

    STC8h1k28六個(gè)基本實(shí)驗(yàn)

    實(shí)驗(yàn)內(nèi)容: 項(xiàng)目1: 參考原理圖,設(shè)計(jì)1位閃爍燈程序,每次亮、滅時(shí)長(zhǎng)均為500ms。 項(xiàng)目2: 參考原理圖,設(shè)計(jì)三色流轉(zhuǎn)燈程序,GRB三種顏色的LED輪番點(diǎn)亮,每次只亮一盞,每次點(diǎn)亮?xí)r長(zhǎng)為500ms。 原理圖: 實(shí)驗(yàn)原理: (共陽(yáng))LED負(fù)極接單片機(jī)IO口(P00P01P02),當(dāng)IO口輸出低電

    2024年02月04日
    瀏覽(26)
  • STC8H8K64U單片機(jī)-ADC采集數(shù)

    STC8H8K64U單片機(jī)-ADC采集數(shù)

    配置單片機(jī)的ADC時(shí)一定要將IO口配置成高阻輸入模式, 以下是單片機(jī)引腳對(duì)應(yīng)的ADC通道 ?

    2024年02月07日
    瀏覽(26)
  • STC8H8K藍(lán)牙智能巡線小車(chē)——3.按鍵開(kāi)關(guān)狀態(tài)獲取

    STC8H8K藍(lán)牙智能巡線小車(chē)——3.按鍵開(kāi)關(guān)狀態(tài)獲取

    電路分析 引腳為P37 開(kāi)關(guān)未按下時(shí),P37是高電平 開(kāi)關(guān)按下時(shí),GND導(dǎo)通,P37是低電平 編程思路 Driver目錄中添加KEY.h文件,應(yīng)包含引腳定義、開(kāi)關(guān)GPIO實(shí)例化函數(shù)、開(kāi)關(guān)狀態(tài)獲取函數(shù)以及當(dāng)按下和未按下時(shí)執(zhí)行不同的函數(shù)(函數(shù)指針作為函數(shù)參數(shù)) Driver目錄中添加KEY.c文件,做具

    2024年01月17日
    瀏覽(48)
  • 8051如何仿真,STC8H8K64U自帶硬件USB直接仿真

    8051如何仿真,STC8H8K64U自帶硬件USB直接仿真,解決8051的仿真問(wèn)題,USB直接下載用戶(hù)程序。 STC8H8K64U 系列單片機(jī)不僅可以借助STC專(zhuān)用工具—— STC-USB Link1D 和 一箭雙雕之USB轉(zhuǎn)雙串口/全自動(dòng)燒錄器 進(jìn)行串口仿真還可以 直接通過(guò)芯片自帶的硬件USB接口進(jìn)行仿真、燒錄。下面是用自

    2024年02月09日
    瀏覽(22)
  • STC8H8K藍(lán)牙智能巡線小車(chē)——1. 環(huán)境搭建(基于RTX51操作系統(tǒng))

    STC8H8K藍(lán)牙智能巡線小車(chē)——1. 環(huán)境搭建(基于RTX51操作系統(tǒng))

    開(kāi)發(fā)環(huán)境準(zhǔn)備:Keil uVision5 燒錄軟件:STC-ISP(V6.92A) 芯片: STC8H8K64U-45I-LQFP64 芯片引腳: 打開(kāi)Keil,點(diǎn)擊【Project】,選擇【new uVersion project】 Device選擇【STC MCU Database】 在search中輸入“8H8K”,選擇【STC8H8K64U Series】,點(diǎn)擊【ok】 選擇項(xiàng)目所在的文件夾,添加一個(gè)Keil項(xiàng)目

    2024年01月17日
    瀏覽(34)
  • 16個(gè)觸摸按鍵,16個(gè)8段LED數(shù)碼管大電流自動(dòng)刷新,STC8H4K64TL

    16個(gè)觸摸按鍵,16個(gè)8段LED數(shù)碼管大電流自動(dòng)刷新,STC8H4K64TL

    16個(gè)觸摸按鍵,16個(gè)8段LED數(shù)碼管大電流自動(dòng)涮新,STC8H4K64TL STC8H4K64TL-45MHz-LQFP48/32, QFN48/32, 主要功能演示板, 附詳細(xì)的演示程序/原理圖,大家可在本貼技術(shù)討論 1,演示了16個(gè)觸摸按鍵輸入的效果, 2,演示了 大電流自動(dòng)涮新 16個(gè)8段LED數(shù)碼管,簡(jiǎn)化了硬件設(shè)計(jì),減輕了CPU的壓力,

    2024年02月10日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包