精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

基于51單片機按鍵控制流水燈設(shè)計

CHANBAEK ? 來源:頭條號電子秘探 ? 作者:頭條號電子秘探 ? 2023-03-23 15:50 ? 次閱讀

遇到一個問題,如何按鍵按下既能控制流水燈又能把鍵值在數(shù)碼管中顯示呢?流水燈500ms的延時,和數(shù)碼管動態(tài)刷新延時小于10ms顯示有沖突。

bit和sbit,sfr都是C51擴展的變量類型,不是標(biāo)準(zhǔn)C語言類型

1.bit類型的值是一個二進(jìn)制位,不是0就是1,類似布爾類型

2.sbit大部分是用在寄存器中的,方便對寄存器的某位進(jìn)行操作的。

sbit LED1 = P0^0 把P0端口的第0位命名為LED1,方便使用

sbit 位變量名=SFR 名稱^變量 位地址值

3.sfr也是一種擴充數(shù)據(jù)類型:,占用一個內(nèi)存單元,利用它可以訪問51單片機內(nèi)部的所有特殊功能寄存器。如用sfr P1 = 0x90 指定P1來操作地址為0X90的寄存器

改變流水燈的方向

按鍵控制流水燈實現(xiàn)的功能:

1.key1啟動鍵,首次按下可以產(chǎn)生自上向下的流水燈效果

2.key2停止鍵,按下可以終止流水燈的運動

3.key3和key4分別產(chǎn)生自上向下和自下向上的流水燈效果

實現(xiàn)的方法:

1.利用標(biāo)志位Startflag來控制流水燈的開始和停止,初始化定義為0停止,為1時上電便有流水燈效果。用標(biāo)志位UpDownflag控制流水燈的方向,初始化的值0,1來控制自上而下還是從下到上

2.利用移位運算符實現(xiàn)流水燈效果

注意:移位運算符實現(xiàn)循環(huán)移位才能實現(xiàn)流水燈的效果

C51庫函數(shù)自帶循環(huán)移位的效果:crol 循環(huán)左移 _cror_循環(huán)右移

按鍵應(yīng)用層功能函數(shù)

void Key_Service()
{
	switch(Key_Scan())
	{
		case 1: Startflag = 1;break;//開始
		case 2: Startflag = 0;break;//停止
		case 3:	UpDownflag =1;break;//向上流水燈
		case 4: UpDownflag =0;break;//向下流水燈
		default :break;
	}
	if(Startflag) 
	{
		
		P0 = temp;
		if(UpDownflag)
		{
			
			temp = (temp>>1)|0x80;  //右移一位
			if(temp == 0xff) //條件判斷給temp重新賦值,實現(xiàn)循環(huán)移位功能
				temp = 0x7f; 
		
		}
		else
		{
			temp = (temp<<1)|0x1;//左移一位
			if(temp == 0xff) //條件判斷給temp重新賦值,實現(xiàn)循環(huán)移位功能
				temp = 0xfe;
			
		}
		DelayXms(500);
	}
	
}

自己遇到的一個問題:按鍵按下既能控制流水燈又能把鍵值在數(shù)碼管中顯示

2個功能分開都能正確運行

糅合在一起就會出問題。

因為延時500ms數(shù)碼管動態(tài)刷新有問題

void main()
{
	LEDBuf[0]=23;
	LEDBuf[1]=23;
	LEDBuf[2]=23;
	
	while(1)
	{
		Key_Service();
		
		Didplay_Service();
	}

}

void Didplay_Service()
{
	switch(Key_Scan())
	{
		case 1:LEDBuf[3]=1;break;
		case 2:LEDBuf[3]=2;break;
		case 3:LEDBuf[3]=3;break;
		case 4:LEDBuf[3]=4;break;
		default :break;
	}
	Display();	
}

如果刪除500ms的延時,顯示效果是這樣的.

加上500ms延時,按鍵好像失效似的,返回顯示的鍵值也不對,很奇怪的問題。

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

    關(guān)注

    6032

    文章

    44514

    瀏覽量

    632971
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5317

    瀏覽量

    120003
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1874

    瀏覽量

    90943
  • 流水燈
    +關(guān)注

    關(guān)注

    21

    文章

    432

    瀏覽量

    59636
  • 按鍵
    +關(guān)注

    關(guān)注

    4

    文章

    223

    瀏覽量

    57572
收藏 人收藏

    評論

    相關(guān)推薦

    基于51單片機的心形流水燈原理圖

    51單片機控制的心形流水燈原理圖,通心形流水燈的制作熟悉單片機的接口
    發(fā)表于 11-23 11:03 ?70次下載

    51單片機流水燈程序

    51單片機流水燈程序 51單片機流水燈程序
    發(fā)表于 12-21 15:52 ?170次下載

    基于單片機流水燈介紹_51單片機流水燈的五種實現(xiàn)方法

    本文為大家?guī)砦宸N51單片機流水燈的實現(xiàn)方法。
    發(fā)表于 01-06 10:23 ?5.1w次閱讀
    基于<b class='flag-5'>單片機</b>的<b class='flag-5'>流水燈</b>介紹_<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>流水燈</b>的五種實現(xiàn)方法

    51單片機按鍵控制流水燈閃爍測試程序詳細(xì)資料免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機按鍵控制流水燈閃爍測試程序詳細(xì)資料免費下載。
    發(fā)表于 09-29 10:34 ?50次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>按鍵控制</b><b class='flag-5'>流水燈</b>閃爍測試程序詳細(xì)資料免費下載

    使用51單片機進(jìn)行按鍵控制的資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機進(jìn)行按鍵控制的資料說明。
    發(fā)表于 08-28 17:29 ?5次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>進(jìn)行<b class='flag-5'>按鍵控制</b>的資料說明

    使用51單片機按鍵控制流水燈換速的程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機控制流水燈分別以500ms,1s,3s流動按鍵時切換速度的程序免費下載。
    發(fā)表于 08-26 17:30 ?21次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>按鍵控制</b><b class='flag-5'>流水燈</b>換速的程序免費下載

    使用51單片機進(jìn)行四按鍵五花樣流水燈設(shè)計的程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機進(jìn)行四按鍵五花樣流水燈設(shè)計的程序免費下載。
    發(fā)表于 08-23 17:30 ?19次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>進(jìn)行四<b class='flag-5'>按鍵</b>五花樣<b class='flag-5'>流水燈</b>設(shè)計的程序免費下載

    基于51單片機流水燈參考案例下載

    基于51單片機流水燈參考案例下載
    發(fā)表于 09-05 17:02 ?42次下載

    基于51單片機流水燈設(shè)計

    三個按鍵:A按鍵啟動、B按鍵控制不同流水速度(低中高)、C按鍵設(shè)計思路一(未用中斷):8個LED燈正極解電源,負(fù)極接
    發(fā)表于 11-04 14:06 ?5次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>流水燈</b>設(shè)計

    51單片機流水燈教程。

    51單片機流水燈教程。
    發(fā)表于 11-11 20:21 ?22次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>流水燈</b>教程。

    51單片機流水燈實驗

    基于51單片機流水燈實驗 我們知道通過編寫程序?qū)?b class='flag-5'>51單片機進(jìn)行控制,完成
    發(fā)表于 11-20 17:51 ?65次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>流水燈</b>實驗

    51單片機心形燈實現(xiàn)按鍵控制流水編程

    51單片機心形燈實現(xiàn)按鍵控制流水編程
    發(fā)表于 11-23 16:20 ?20次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>心形燈實現(xiàn)<b class='flag-5'>按鍵控制</b><b class='flag-5'>流水</b>編程

    Proteus:單片機按鍵控制流水燈方向

    題目概述:單片機按鍵控制流水燈方向。編程:#include <reg51.h>#include<intrins.h>#define
    發(fā)表于 11-23 17:06 ?12次下載
    Proteus:<b class='flag-5'>單片機</b><b class='flag-5'>按鍵控制</b><b class='flag-5'>流水燈</b>方向

    51單片機按鍵控制流水燈

    51單片機按鍵控制流水燈左移右移代碼如下#include <reg52.h>#include <intrins.h>#define uchar
    發(fā)表于 11-23 17:21 ?16次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>按鍵控制</b><b class='flag-5'>流水燈</b>

    基于單片機按鍵控制四級變速流水燈設(shè)計

    四個按鍵控制流水燈變速,實現(xiàn)四級速度控制
    的頭像 發(fā)表于 08-14 10:47 ?1237次閱讀