數組基本概念:
1、具有相同的數據類型
2、具有相同的名字
3、在存儲器中的存儲是連續的
注意:區分數組下標和數組元素個數的概念,數組下標可以是常量或變量,數組賦值只能在初始化進行,程序只能進行單個元素賦值。
switch()
{
case 常量表達式1: 語句1;break;
default 常量表達式2:語句2;break;
}
switch 與if 的區別是,switch的每條語句都會執行,而 if 有一條符合,則跳過。
動態顯示:
多個數碼管顯示數字的時候,我們實際上是輪流點亮數碼管,利用人眼的視覺暫留現象(余暉效應)。
假如有6個數碼管,就有6個切換周期。10ms要重復刷新一個數碼管,才能讓人眼保持余暉效應。
在編寫程序,可以畫個流程圖,幫助編程。

#includesbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
unsigned char code LedChar[]={
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
unsigned char LedBuff[6]={
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
void main()
{
unsigned int cnt = 0;
unsigned long sec = 0;
unsigned char i = 0;
ENLED = 0;
ADDR3 = 1;
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x67;
TR0 = 1;
while(1)
{
if(TF0 ==1)
{
TF0 = 0;
TH0 = 0xFC;
TL0 = 0x67;
cnt++;
if(cnt >= 1000)
{
cnt = 0;
sec++;
LedBuff[0] = LedChar[sec%10];
LedBuff[1] = LedChar[sec/10%10];
LedBuff[2] = LedChar[sec/100%10];
LedBuff[3] = LedChar[sec/1000%10];
LedBuff[4] = LedChar[sec/10000%10];
LedBuff[5] = LedChar[sec/100000%10];
}
if(i == 0)
{ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=LedBuff[0];}
else if(i == 1)
{ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=LedBuff[1];}
else if(i == 2)
{ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=LedBuff[2];}
else if(i == 3)
{ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=LedBuff[3];}
else if(i == 4)
{ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=LedBuff[4];}
else if(i == 5)
{ADDR2=1; ADDR1=0; ADDR0=1; i=0; P0=LedBuff[5];}
}
}
}
}
}
}
關鍵字:中斷 數碼管 動態顯示
引用地址:
中斷與數碼管動態顯示
推薦閱讀最新更新時間:2025-07-01 07:00
矩陣鍵盤+數碼管動態顯示
我把矩陣鍵盤和數碼管動態顯示綜合起來寫了個程序。這個代碼的意思是在一開始8個數碼管什么也不顯示,因為p0的初始值是0x00,當我們按下矩陣按鍵里的按鍵時,8個數碼管動態顯示該按鍵的鍵值,直到按下了下一個按鍵,8個數碼管顯示的內容才可能改變。 #include reg52.h //目的是每按下一個按鍵,8個數碼管就動態顯示對應的鍵值 sbit lsa=P2^2; sbit lsb=P2^3; sbit lsc=P2^4; #define duanxuan P0 #define keyboard P1 int zxm ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
[單片機]
#51單片機#中斷與數碼管的應用
中斷與數碼管的應用—— 9999 倒計時表 #include reg52.h unsigned char code LedChar ={//數碼管顯示的數字0~9 0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; unsigned char LedBuff ={//數碼管顯示的緩存區 0XFF,0XFF,0XFF,0XFF}; sbit Tube1 = P1^0; sbit Tube2 = P1^1; sbit Tube3 = P1^2; sbit Tube4 = P1^3; unsigned char i = 0; unsigned int cnt = 0
[單片機]
max7219驅動數碼管程序(51單片機+STM32 MAX7219數碼管程序案例)
1、STM32 硬件SPI max7219 8位數碼管顯示模塊 數碼管模塊電路圖 /***************************************************************** Updated time: 12th,12,2015 Function:通過MAX7219驅動數碼管 ******************************************************************/ #include “delay.h” #include “sys.h” #include “usart.h”//串口通信 #define Max7219_pinCLK PAout(
[單片機]
51單片機STC89C52驅動一個數碼管顯示0~9,A~F
程序源碼 /*-----------------------包含頭文件區域-------------------------*/ #include reg52.h //單片機頭文件 /*-----------------------數據類型定義區域-----------------------*/ typedef unsigned char u8; //定義類型unsigned char別名為u8 typedef unsigned int u16; //定義類型unsigned int別名為u16 /*-----------------------用戶自定義數據區域---------------------*/
[單片機]
51單片機60秒倒計時 數碼管顯示
本資源適用于初學者,使用單片機型號為普中51單片機: 下面展示 代碼。 #include reg52.h sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4;//38譯碼器控制位選 char code smgduan ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; char a1,a2,s=60;//s為要定時 60秒 void timer0() { TMOD|=0x01; TH0=0xfc; TL0=0x18;//?¨定時1MS EA=1; ET0=1; TR0=
[單片機]
單片機電子秒表時鐘 數碼管顯示
電子秒表時鐘 數碼管顯示 可設置時間 可用于秒表暫停、清零蜂鳴器按鍵音 單片機源程序如下: #include reg51.h #include delay.h #include intrins.h unsigned char code LED ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //定義共陰極LED7段顯示碼 unsigned char dispbit ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定義數碼管位碼 unsigned char hour=23,min=58,sec=52,
[單片機]
PIC單片機實現8個數碼管實現循環顯示的設計
8個數碼管滾動顯示同一個數字 8個數碼管顯示多個不同的字符 8個數碼管閃爍顯示 8個數碼管滾動顯示數字串 #include __CONFIG(0x3B31); unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71};//0-F--共陰極數碼管 #defineLEDPORTB void delay1ms(unsigned int x) { unsigned char i; for(;x》0;x--) for(i=0;i《165;i++); } void init() { TRISB=
[單片機]
C語言實現共陰極數碼管操作
共陰極或者共陽極數碼管,因為其需要電流大,而一般51輸出電流低,需要鎖存器。買的開發板使用的共陰極數碼管。 至于其構造,找個相關方面的書看看,這里主要是對做好的電路板進行編程。 剛開始的時候,感覺在數碼管上顯示數字很厲害。但是等到自己寫這篇日志的時候,才發現了了。。 在對數碼管編程前,需要對鎖存器有所了解。買的開發板上用的是74HC573貼片式的。 74HC573真值表 輸入 輸出 !OE LE D | Q L H H | H L H L | L L L X |
[單片機]