0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Protues教程第三講:“挑戰(zhàn)10秒”網(wǎng)紅按鈕的實現(xiàn)

Harmony&嵌入式學(xué)習(xí) ? 來源:Harmony&嵌入式學(xué)習(xí) ? 作者:Harmony&嵌入式學(xué) ? 2023-06-14 11:17 ? 次閱讀

視頻教程:https://www.bilibili.com/video/BV1m741187ga

什么是網(wǎng)紅按鈕?

pYYBAGSJMO6AOPRTAARdFROKrW4294.pngpoYBAGSJMRWAFhEAAAIOL5UgjC0146.png

51內(nèi)核單片機(jī)定時器的計算(以12M晶振為例); 晶振 12MHz =12000000Hz 時鐘周期 1/12000000 s(晶振的倒數(shù)) 機(jī)器周期是12/12000000 s (標(biāo)準(zhǔn)框架下51單片機(jī)一個機(jī)器是12個時鐘周期) 因為定時器是每個機(jī)器周期加1所以定時時間為 N*時鐘機(jī)器周期時間=所定時間T 所以要經(jīng)過的機(jī)器周期是N*(12/12000000 s)=T N=t/(12/12000000 ) 初值等于 65536-N(因為16位的定時器65535再加1才溢出) 例如: 需要定時1ms=0.001s =時間(s)*(晶振/12) 0.001/(12/12000000 )=0.001*(12000000 /12)=0.001*1000000=1000 初值y=65536-1000=64536=0XFC18

poYBAGSJMSqAIHjMAAMBh4qI3HE841.pngpYYBAGSJMTWATBWYAAKKB9LQbVQ434.pngpYYBAGSJMUKAXTi6AANnBsT9DdE242.png
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
#define SEG P0
sbit SCAN1 = P2^0;
sbit SCAN2 = P2^1;
sbit SCAN3 = P2^2;
sbit SCAN4 = P2^3;
sbit key = P3^0;
sbit Bepp = P3^7;
uchar number;
uchar flag;
uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int display=0;//數(shù)碼管刷新
int The_Time;//顯示時間 單位10ms
int dis_value;//計數(shù)頻率 10ms
void delay(uint j)                        //1ms
{
        uchar i=250;
        for(;j>0;j--)
{
                while(--i);
                i=249;
                while(--i);
                i=250;
        }
}


void Key_Scan()
{
	if(key==0)
	{
		delay(20);
		if(key==0)
		{
			while(key==0);
			if(flag==0)
			{
				flag=1;
				The_Time = 0;
			}else
			{
				flag=0;
			}
		}
	}
	
}


void Key_INT( )  interrupt 0  // 這里0對應(yīng)下表
{
	Bepp = ~ Bepp;
	  
				if(flag==0)
			{
				flag=1;
				The_Time = 0;
			}else
			{
				flag=0;
			}
}

void main()
{
	TMOD |= 0x01;	  //開啟定時器0  0x10時使用定時器1  0x11時啟動兩個
	TH0=0XFC;	//給定時器賦初值,定時1ms   TH1
	TL0=0X18;	 //TL1
	EA=1;            //總中斷打開
	ET0=1;           //定時器0中斷打開    ET1
	TR0=1;           //定時器0開關(guān)打開    TR1
	EX0=1;       //外部中斷0開()  EX1 為外部中斷1 (P3^3)
	IT0=1;        //低電平觸發(fā)   IT1為中斷1
	while(1)
	{
		

		
	}
	
}


void Timer0() interrupt 1     //參考上圖  定時器1時為3
{
	static uint i;   //定義一個自變形變量
	TH0=0XFC;	//給定時器賦初值,定時1ms    TH1
	TL0=0X18;   //TL1
	i++;
	dis_value++;
	if(i==2)
	{
	i=0;
	SEG = 0XFF;
	switch(number)
	{

     case 0:SCAN4=1;SCAN3=0;SCAN2=0;SCAN1=0;SEG=distab[The_Time%10];break;
	
     case 1:SCAN4=0;SCAN3=1;SCAN2=0;SCAN1=0;;SEG=distab[The_Time/10%10];break;

     case 2:SCAN4=0;SCAN3=0;SCAN2=1;SCAN1=0;SEG=distab[The_Time/100%10]& 0x7f;break;

     case 3:SCAN4=0;SCAN3=0;SCAN2=0;SCAN1=1;;SEG=distab[The_Time/1000];break;

     default:break;
			
    }		
		number++;
    if(number>3)number=0;
	}	
	
	
	if(dis_value==10)
	{
		dis_value = 0;
		
		if(The_Time

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6030

    文章

    44499

    瀏覽量

    632166
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3234

    瀏覽量

    114356
  • 按鈕
    +關(guān)注

    關(guān)注

    0

    文章

    134

    瀏覽量

    12724
  • Protues
    +關(guān)注

    關(guān)注

    40

    文章

    183

    瀏覽量

    70748
收藏 人收藏

    評論

    相關(guān)推薦

    特權(quán)FPGA技術(shù)公開課第三講PPT下載

    特權(quán)FPGA技術(shù)公開課第三講PPT下載
    發(fā)表于 07-05 19:32

    【開源騷客】《輕松設(shè)計SDRAM控制器》第三講—串口發(fā)送模塊設(shè)計及收發(fā)整合

    相信很多朋友在學(xué)習(xí)完第二中所講到的串口接收模塊后,一定非常想學(xué)習(xí)如何設(shè)計串口的發(fā)送模塊,Kevin也非常明白大家的好學(xué)之心,所以在第三講,Kevin會帶著大家一起來完成串口發(fā)送模塊的設(shè)計,并且會
    發(fā)表于 05-08 22:18

    Harmony OS物聯(lián)網(wǎng)應(yīng)用開發(fā)實戰(zhàn)(基于HiSpark WiFi IoT套件)第三講 課程資料

    本帖最后由 xusiwei1236 于 2020-11-20 14:24 編輯 Harmony OS物聯(lián)網(wǎng)應(yīng)用開發(fā)實戰(zhàn)(基于HiSpark WiFi IoT套件)第三講 課程資料全套課程資料
    發(fā)表于 09-29 10:47

    Harmony OS物聯(lián)網(wǎng)應(yīng)用開發(fā)實戰(zhàn)(基于HiSpark WiFi IoT套件)第三講 課程資料

    本帖最后由 xusiwei1236 于 2020-11-20 14:23 編輯 Harmony OS物聯(lián)網(wǎng)應(yīng)用開發(fā)實戰(zhàn)(基于HiSpark WiFi IoT套件)第三講 課程資料全套課程資料
    發(fā)表于 11-20 14:21

    Altium實訓(xùn)班——聲源跟蹤小車設(shè)計挑戰(zhàn)

    放大電路的設(shè)計10月29日 19:30(周六)——陳俊祥第三講:紅外避障電路及電源電路的設(shè)計11月01日 19:30(周二)——鄭振宇第四:4層聲控尋跡小車PCB項目分析、流程、導(dǎo)入及PCB布局11月
    發(fā)表于 09-21 10:43

    第三講 邏輯代數(shù)的基本定律和規(guī)則

    第三講 邏輯代數(shù)的基本定律和規(guī)則 2.3.1 邏輯代數(shù)的基本公式一、邏輯常量運(yùn)算公式二、邏輯變量、常量運(yùn)算公式
    發(fā)表于 03-30 16:02 ?5376次閱讀
    <b class='flag-5'>第三講</b> 邏輯代數(shù)的基本定律和規(guī)則

    第三十三講 PLD器件的應(yīng)用

    第三十三講 PLD器件的應(yīng)用 10.4 PLD器件的應(yīng)用10.4.1 可編程器件的開發(fā)系統(tǒng)10.4.2 ABEL硬件描述語言一、ABEL源文件的結(jié)構(gòu)二、AB
    發(fā)表于 03-30 16:38 ?1008次閱讀
    <b class='flag-5'>第三十三講</b> PLD器件的應(yīng)用

    數(shù)據(jù)庫系統(tǒng)概論第三講

    數(shù)據(jù)庫系統(tǒng)概論課件精,完整版,接下來的會不斷更新。
    發(fā)表于 03-22 16:55 ?0次下載

    高壓示波器通俗講座_第三講_方波電路

    高壓示波器通俗講座_ 第三講_ 方波電路。
    發(fā)表于 05-05 10:10 ?0次下載

    PLC編程:一個按鈕開關(guān)實現(xiàn)、黃、綠種顏色燈循環(huán)顯示程序

    用一個按鈕開關(guān)實現(xiàn)、黃、綠種顏色燈循環(huán)顯示程序,要求循環(huán)間隔時間為0.5s。
    發(fā)表于 07-29 14:56 ?2.5w次閱讀
    PLC編程:一個<b class='flag-5'>按鈕</b>開關(guān)<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>紅</b>、黃、綠<b class='flag-5'>三</b>種顏色燈循環(huán)顯示程序

    matlab的經(jīng)典課件-第三講

    算法學(xué)習(xí)的資料matlab的經(jīng)典課件-第三講
    發(fā)表于 09-01 14:55 ?0次下載

    功能安全如何實現(xiàn)

    第三講-功能安全實現(xiàn)示例
    的頭像 發(fā)表于 08-17 00:10 ?3419次閱讀

    STC15單片機(jī)實戰(zhàn)項目軟件開發(fā)第三講 - 按鍵檢測(外部中斷)

    STC15單片機(jī)實戰(zhàn)項目軟件開發(fā)第三講 - 按鍵檢測(外部中斷)
    發(fā)表于 11-22 15:06 ?17次下載
    STC15單片機(jī)實戰(zhàn)項目軟件開發(fā)<b class='flag-5'>第三講</b> - 按鍵檢測(外部中斷)

    Protues教程第二:動態(tài)數(shù)碼管

    Protues教程第二:動態(tài)數(shù)碼管
    的頭像 發(fā)表于 06-14 11:15 ?3172次閱讀
    <b class='flag-5'>Protues</b>教程第二<b class='flag-5'>講</b>:動態(tài)數(shù)碼管

    改變我們生活的鋰離子電池 | 第三講:獲得諾貝爾獎以及鋰離子電池的普及史

    改變我們生活的鋰離子電池 | 第三講:獲得諾貝爾獎以及鋰離子電池的普及史
    的頭像 發(fā)表于 12-05 17:13 ?522次閱讀
    改變我們生活的鋰離子電池 | <b class='flag-5'>第三講</b>:獲得諾貝爾獎以及鋰離子電池的普及史