單片機C語言程序設計:單只數碼管循環顯示 0~9

2020-12-16 電子產品世界

/* 名稱:單只數碼管循環顯示 0~9


說明:主程序中的循環語句反覆將 0~9 的段碼送至 P0 口,使數字 0~9 循環顯示

*/

#includereg51.h>

#includeintrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

//延時

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t120;t++);

}

//主程序

void main()

{

uchar i=0;

P0=0x00;

while(1)

{

P0=~DSY_CODE[i];

i=(i+1)%10;

DelayMS(300);

}

}

51單片機相關文章:51單片機教程

c語言相關文章:c語言教程

單片機相關文章:單片機教程

單片機相關文章:單片機視頻教程

單片機相關文章:單片機工作原理


相關焦點

  • 單片機控制單只數碼管循環顯示0~F 用PROTEUS軟體仿真
    數碼管顯示是每一個單片機初學者都必須學的,而單片機驅動數碼管的數字循環顯示實驗,又是單片機基礎中的基礎,同時也是學好C語言編程的關鍵,現在供上代碼供大家學習研究,此程序經過一些改進,可以實現按鍵識別 數碼管動態掃描。同時也可以做各種有關顯示調試程序的二次開發等等。
  • 單片機C語言程序設計:ADC0809數模轉換與顯示
    打開APP 單片機C語言程序設計:ADC0809數模轉換與顯示 發表於 2018-01-05 15:36:36 本文分享ADC0809數模轉換與顯示的單片機C語言程序設計與電路圖。
  • 數碼管顯示數字 5 C語言程序設計
    推薦閱讀 C51單片機數碼管動態顯示 數碼管作為最廉價的輸出設備,在各種自動化設備中有很大的應用,最簡單普通的顯示方式為動態刷新顯示,稱為假動態顯示,即通過分時掃描每一位,利於人眼的視覺停留現象,造成一種靜態顯示的效果,如下圖所示:C51單片機由於運行速度很慢
  • PIC單片機C語言程序設計(4)
    例1 :if(a>b) c=b ;  ∥滿足條件a>b,將b 賦值給c  例2 :i f ( t t r = = 9 9 9 9 )ttr=0 ;  ∥ 滿足運算條件ttr==9999 ;將0 賦值給ttr  ⑵ if(條件表達式) 語句1  else 語句2  例1 :if(a>
  • PIC單片機C語言程序設計(5)
    在《電子製作》2009年第10期,《PIC單片機C語言程序(1)》的延時函數中,我們已用過後綴運算符i++,大家可以從中體會其用法。  (2)邏輯運算符。  邏輯運算符是基本運算符中的一種。邏輯運算符有:與「&&」、或「||" 、非「!」等3三種。  邏輯運算符&&、||為雙目(兩個量)運算符,!為單目運算符。
  • 單片機C語言程序設計:INT0 及 INT1 中斷計數
    /* 名稱:INT0 及 INT1 中斷計數說明:每次按下第 1 個計數鍵時,第 1 組計數值累加並顯示在右邊 3 只數碼管上, 每次按下第 2 個計數鍵時,第2 組計數值累加並顯示在左邊 3 只數碼管上
  • 單片機教程:PIC單片機C語言程序設計(五)
    接前文:單片機教程:PIC單片機C語言程序設計(四)   九、C語言的運算符   C語言提供了30多個運算符,範圍很大,應用廣。  在《PIC單片機C語言程序(一)》的延時函數中,我們已用過後綴運算符i++,大家可以從中體會其用法。  (2)邏輯運算符。  邏輯運算符是基本運算符中的一種。邏輯運算符有:與「&&」、或「||「 、非「!」等3三種。  邏輯運算符&&、||為雙目(兩個量)運算符,!為單目運算符。
  • 51單片機直接驅動共陰極數碼管
    單片機驅動Led數碼管(或n個Led)應該算是單片機經典試驗之一了。數碼管種類:本文引用地址:http://www.eepw.com.cn/article/201611/321065.htm 少量的數碼管實際可以直接用單片機驅動(如4個數碼管)。數碼管數碼管有兩種:共陰極和共陽極數碼管。
  • 單片機C語言電子時鐘加日曆顯示編程
    一、 任務和要求設計製作一個電子表並且能夠顯示日曆,用LED數碼管直接顯示,並且能夠通過按鍵調整時間、年月日,功能為按第一個鍵被調整的相應調整區域開始閃爍,第二個鍵加一,第三個減一,第四個確認,最後一個在時分秒和年月日中間相互切換
  • 單片機c語言教程:C51循環語句
    在 C 語言中構成循環控制的語句有 while,do-while,for 和 goto 語句。同樣都是起到循環作用,但具體的作用和使用方法又大不一 樣。我們具體來看看。goto 語句這個語句在很多高級語言中都會有,記得小時候用 BASIC 時就很喜歡用這個語句。
  • 基於C語言51單片機電子密碼鎖的設計與仿真
    0、引言  電子密碼鎖是現代生活中常用的加密工具。  電子密碼鎖通常使用ARM和單片機控制,單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的窖碼鎖常使用彙編語言編寫程序,顯示器多數用。而本文所介紹的電子密獁鎖使用移植性及可讀性強的高級語言C語言編寫,便於修改和增減功能蚤同時採用顯示清楚數碼管,功率消耗小而且壽命長的 液晶顯示器,顯示更加直觀,使用更加方便。
  • 共陽數碼管連接體會
    4個E極全部並聯接在電源5V,4個B極分別用4個1K的電阻串聯接在P0口以外的四個I/O口,為了編程方便可以接在P1.0,P1.1,P1.2,P1.34個C極分別接第一步找到的4個共陽引腳。當P1.0,P1.1,P1.2,P1.3,分別為0(低電平)時 對應的共陽引腳被供電,數碼管對應的位會顯示。
  • 數碼管的靜態與動態顯示技術分析
    數碼管是單片機系統中經常用到的顯示器件, 從內部結構上可以分為共陰極和共陽極數碼管。對不同的數碼管,電路的接法也不一樣。圖1A為數碼管的結構圖。以共陽極數碼管為例, 要想點亮某段, 只需要在相應的段上給低電平即可。圖1B為共陽極數碼管段碼分布, 以及一個顯示的實例。
  • 下載 | 《單片機C語言程序設計實訓100例–基於8051 PROTEUS仿真》
    內容介紹:第一章用簡短篇幅介紹8051單片機的特點、應用,以及Keil C語言程序設計,在語言程序設計中重點介紹8051內部資源;第二章介紹Proteus的入門操作;第三~五章全部為單片機的C程序設計案例;第三章為基礎案例,涉及C語言基礎部分,基本IO部分,中斷與定時器,串口控制,模數與數模轉換部分等;第四章在前面的基礎上對擴展的外圍硬體應用進行編程,包括解碼器、串並轉換晶片、存儲器、中英文液晶屏、IIC等;第五章是綜合設計部分,涉及一些具體的應用型產品的設計。
  • 8段數碼管引腳圖,8段數碼管動態顯示詳解
    數碼管也稱LED數碼管,不同行業人士對數碼管的稱呼不一樣,其實都是同樣的產品。   數碼管按段數可分為七段數碼管和8段數碼管,八段數碼管比七段數碼管多一個發光二極體單元,也就是多一個小數點(DP)這個小數點可以更精確的表示數碼管想要顯示的內容;按能顯示多少個(8)可分為1位、2位、3位、4位、5位、6位、7位等數碼管。   按發光二極體單元連接方式可分為共陽極數碼管和共陰極數碼管。
  • 基於C語言STC89C52單片機電子密碼鎖的設計與仿真
    它採用高可靠性的STC89C52單片機來實現開鎖和密碼的識別,採用具備I2C總線接口的E2PROM晶片來完成密碼的存儲,通過1602液晶顯示器提示程序運行狀態和使用步驟,利用蜂鳴器模擬報警,發光二極體模擬鎖的開關。該系統用C語言編寫程序,與彙編語言相比具備更好的移植性和可讀性,便於修改和增減功能。
  • 暢學三合一51單片機實戰教程
    第4課 6位彩色流水燈模塊講解1、彩色LED燈簡介2、硬體電路講解 3、依次點亮LED4、花樣流水燈第5課 1位數碼管模塊講解 1、數碼管簡介 2、1位數碼管結構 3、電路講解 4、數碼管編碼5、數碼管逐段顯示6、數碼管靜態顯示數字
  • 用Proteus學習51單片機之數碼管
    今天學的是數碼管和鎖存器的使用。用鎖存器的目的,是為了減小IO口的使用,本來至少得用15根IO口的,用了鎖存器後,只需要用10根IO口,若是繼續增加數碼管,IO口的增加也是一根根增加了。
  • proteus仿真之8位數碼管動態掃描顯示試驗
    /*Proteus 仿真之8位共陰數碼管動態掃描實驗*/#include#define SegPort P0   //定義數碼管連接埠sbit LE_Duan = P2^0;   //定義573鎖存使能埠 段鎖存sbit LE_Wei = P2^1;   //定義573鎖存使能埠 位鎖存
  • 51單片機數碼管顯示的數字鐘
    這是一個基於51單片機的數字鐘程序用數碼管來顯示數據.本文引用地址:http://www.eepw.com.cn/article/201611/323805.htm0x06; TL0=0x06; TR0=1; ET0=1; EA=1; hour=12; while(1) { if(P0_0==0) { for(i=5;i>0;i--) for(j=248;j>0;j--); if(P0_0==0) { second++; if(second