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

一周學完C51單片機(1)點亮LED燈以及按鍵控制

這篇具有很好參考價值的文章主要介紹了一周學完C51單片機(1)點亮LED燈以及按鍵控制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

點亮一個LED燈

首先找到單片機的原理圖,找到LED模塊。我這里是P2口是連接了LED燈,通過此原理圖我們可以看到
我們只需將單片機的IO口置為低電平,就可以點亮LED燈。
因為代碼比較簡單,我就分別展示一下代碼,一顆LED燈的亮滅,流水燈
一周學完C51單片機(1)點亮LED燈以及按鍵控制
延時函數(shù)可以通過小工具來實現(xiàn),選擇好系統(tǒng)的頻率,以及定時長度和指令集
一周學完C51單片機(1)點亮LED燈以及按鍵控制
單片機延時函數(shù)為,這里我是通過上面的延時1ms的代碼改的
創(chuàng)建文件delay.c和delay.h將這個函數(shù)放到這里面,以便于后面的使用
delay.c文件

#include "delay.h"
#include "reg52.h"
#include "intrins.h"

void Delay1ms(unsigned int time)		//@11.0592MHz
{
	unsigned char i, j;
	unsigned int k;
	for(k = 0;k < time;k++)
	{
		_nop_();
		i = 2;
		j = 199;
		do
		{
			while (--j);
		} while (--i);
	}
}

delay.h文件

#ifndef __DELAY_H
#define __DELAY_H

void Delay1ms(unsigned int time);		//@11.0592MHz

#endif

一顆LED燈閃爍代碼,main.c

#include "reg52.h"
#include "intrins.h"
#include "delay.h"
sbit LED1 = P2^0;	 //位操作,將單片機寄存器的P2_0定義為LED1
#define LED_PORT P2		 //將所有的LED燈所在的P2口定義為LED
void main(void)
{
	while(1)
	{
		LED1 = 0; //點亮一顆LED燈
		Delay1ms(100);
		LED1 = 1; //點亮一顆LED燈
		Delay1ms(100);
	}
}

八個LED向左燈依次點亮,之后向右重復

void LED_Light(void)
void LED_Light(void)
{
	LED_PORT = 0X01;
	while(1)
	{
    	LED_PORT = ~LED_PORT ; 
		for (i = 0; i < 8; i++)
		{
			LED_PORT = LED_PORT <<i;	  
			Delay1ms(100);
		}	
		 LED_PORT = ~LED_PORT ;
		for (i = 0; i < 8; i++)
		{
			LED_PORT = LED_PORT >>i;	  
			Delay1ms(100);
		}
	}
}

LED燈單個循環(huán)循環(huán)左移之后循環(huán)右移,,這里的左移_crol_,右移_cror_是c51庫函數(shù),分別代表循環(huán)左移,和循環(huán)右移,參數(shù)分別是需要移動的數(shù)據(jù)以及每次移動的位數(shù)。

void LED_Waterfall(void)
{
	LED_PORT = ~0x01;
	while(1)
	{
		for (i = 0; i < 7; i++)
		{
			LED_PORT = _crol_(LED_PORT,1); 
			Delay1ms(500);
		}
		for (i = 0; i < 7; i++)
		{
			LED_PORT = _cror_(LED_PORT,1);	  
			Delay1ms(500);
		}
	}		
}

以上代碼就是LED的基本代碼介紹,其他的操作也可以根據(jù)這上面來改動

按鍵控制LED燈

該款單片機有四個獨立按鍵,分別接到P31,P30,P32,P33,當按鍵按下時接口會呈現(xiàn)低電平,通過讀取IO口電平數(shù)據(jù),可以檢測是否有按鍵按下。
一周學完C51單片機(1)點亮LED燈以及按鍵控制
按鍵K1控制LED燈的開關

void KEY_SCAN(void)
{
	 if(KEY1 == 0)
	 {
	 	while(KEY1 == 0);
		 LED_PORT = ~LED_PORT;
	 }
}

按鍵K1和按鍵K2控制單個LED左右移動

void KEY_LED_CONTROL(void)
{
    unsigned char num = 0;
	while(1)
	{
		if(KEY1 == 0)
		{
			Delay1ms(20);
			while(KEY1 == 0);
			Delay1ms(20);
			LED_PORT = ~(0x01<<num);	
			num++;
			if(num == 8) num = 0;	
		}
		else if(KEY2 == 0)
		{
			Delay1ms(20);
			while(KEY2 == 0);
			Delay1ms(20);
			if(num == 0) num = 7; 
			num--;
			LED_PORT = ~(0x01<<num);
		}
	}
}

以上就是獨立按鍵檢測的基本代碼,其他功能也是這個原理文章來源地址http://www.zghlxwxcb.cn/news/detail-481109.html

到了這里,關于一周學完C51單片機(1)點亮LED燈以及按鍵控制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 初識C51單片機(詳解)

    初識C51單片機(詳解)

    前言: 單片機是一種我們常見的開發(fā)板,我們經(jīng)常會在一些項目中使用到它。而今天我們要介紹的是C51單片機,下面來介紹一下今天的”主角“:STC89C52RC40I-LQFP44單片機(后面將用到它做一些項目)。 1.了解命名規(guī)則一張圖搞定: 2.學會看單片機電路原理圖 只是一些初中的電

    2024年02月10日
    瀏覽(90)
  • 51單片機(二)成功點亮LED

    51單片機(二)成功點亮LED

    ?? 專欄簡介:本專欄記錄了從零學習單片機的過程,其中包括51單片機和STM32單片機兩部分;建議先學習51單片機,其是STM32等高級單片機的基礎;這樣再學習STM32時才能融會貫通。 ?? 專欄適用人群 :適用于想要從零基礎開始學習入門單片機,且有一定C語言基礎的的童鞋

    2023年04月25日
    瀏覽(21)
  • C51單片機實驗——中斷實驗

    實驗環(huán)境:普中實驗系統(tǒng);Keil μVision 4軟件; 實驗目的: (1)掌握單片機中斷原理和中斷響應過程。 (2)設計自己的中斷程序具體實驗內(nèi)容,并通過程序設計控制實驗箱上的2個按鍵,實現(xiàn)對應的中斷內(nèi)容。 硬件連線: 按鍵k3連接P3.2口 按鍵k4連接P3.3口 LED燈連接P2口 實驗主

    2024年02月05日
    瀏覽(95)
  • C51單片機實現(xiàn)呼吸燈

    C51單片機實現(xiàn)呼吸燈

    ? ? ?呼吸燈的效果是燈的亮度由暗緩慢變亮再緩慢變暗。 ? ? ?實現(xiàn)思路是改變小燈亮與暗在單位周期的占空比。如下圖 具體代碼如下:

    2024年02月11日
    瀏覽(90)
  • 如何使用單片機點亮LED燈,并使用按鍵控制[51單片機]

    如何使用單片機點亮LED燈,并使用按鍵控制[51單片機]

    首先先看一下我的板子,如果我們板子不相同,可能操作也不太相同 我們就不講底層原理了,直接看,我們可以看到板子上有?8個LED燈 ? 那這個8個LED用什么來控制呢,我們先看底層的線路圖,所有的LEDD都連接到了P2帶后綴的接口上, 那么只需要操作這幾個接口的高低電頻,

    2024年02月05日
    瀏覽(29)
  • 【C51】10-基礎51單片機的小車項目(51完結)

    【C51】10-基礎51單片機的小車項目(51完結)

    10.1小車的安裝 10.2電機模塊的開發(fā)(L9110S) 接通 VCC , GND 模塊電源指示燈亮, 以下資料來源官方,但是不對,根據(jù)下節(jié)課實際調(diào)試 IA1 輸入高電平, IA1 輸入低電平,【 OA1 OB1 】電機正轉; IA1 輸入低電平, IA1 輸入高電平,【 OA1 OB1 】電機反轉; IA2 輸入高電平, IA2 輸入低

    2024年02月08日
    瀏覽(89)
  • 【51單片機】點亮第一個LED燈

    【51單片機】點亮第一個LED燈

    橙色 GPIO 概念 GPIO(general purpose intput output) 是通用輸入輸出端口的簡稱, 可以通過軟件來控制其輸入和輸出。 51 單片機芯片的 GPIO 引腳與外部設備連接起來, 從而實現(xiàn)與外部通訊、 控制以及數(shù)據(jù)采集的功能。 不過 GPIO 最簡單的應用還屬點亮 LED 燈了, 只需通過軟件控制

    2024年01月25日
    瀏覽(20)
  • 單片機C51計時器秒表

    單片機C51計時器秒表

    魚弦:CSDN內(nèi)容合伙人、CSDN新星導師、全棧領域創(chuàng)作新星創(chuàng)作者 、51CTO(Top紅人+專家博主) 、github開源愛好者(go-zero源碼二次開發(fā)、游戲后端架構 https://github.com/Peakchen) 單片機C51(或稱8051)計時器秒表的實現(xiàn)原理如下: 原理解釋: C51微控制器通常包括多個計時器/計數(shù)器,可

    2024年02月03日
    瀏覽(23)
  • C51單片機基礎之4G模塊

    C51單片機基礎之4G模塊

    EC03-DNC是億佰特公司推出的 LTE CAT1 數(shù)傳模塊產(chǎn)品, 該產(chǎn)品軟件功能完善, 覆蓋絕大多數(shù)常規(guī)應用場景, EC03-DNC 是為實現(xiàn)串口設備與網(wǎng)絡服務,通過網(wǎng)絡相互傳輸數(shù)據(jù)而開發(fā)的產(chǎn)品 , 該產(chǎn)品是一款帶分集接收功能 的LTE-FDD/LTE-TDD 無線通信數(shù)傳模塊, 支持 LTE-FDD , LTE-TDD 網(wǎng)絡

    2023年04月08日
    瀏覽(20)
  • 第二十二天 c51單片機

    136.語音識別切換小車循跡跟隨避障且Oled顯示狀態(tài)

    2024年02月08日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包