51微控制器 數碼管動態顯示 數碼管鬼影

2021-09-29 11:36:03 字數 2443 閱讀 1378

以郭天祥微控制器為例

wei 指 位&位鎖存

duan 指 段&段鎖存

不好的方式:

duan =1;

//開鎖存

p0 =

0x45

;duan =0;

//關鎖存

好的方式:

p0 =

0x45

;duan =1;

//開鎖存

duan =0;

//關鎖存

p0 =

0x45

;wei =1;

wei =0;

p0 =

0x45

;duan =1;

duan =0;

p0 =

0x00

;//清除duan

duan =1;

duan =

0;

p0 =

0x45

;duan =1;

duan =0;

p0 =

0x45

;wei =1;

wei =0;

p0 =

0xff

;//清除wei

wei =1;

wei =

0;

在微控制器上電後,p0口輸出值全部為1,此時數碼管wei使能全部關閉,duan全部開啟,也就是(8.)待亮,一旦wei使能開啟就會亮(8.)。

如果先送wei,再送duan:在送wei的一瞬間,數碼管就會亮(8. ),產生鬼影。解決方法:送wei前先初始化,使duan全部關閉,啥也不亮。

p0 =

0x00

;//初始化,關閉斷

duan =1;

duan =0;

wei_latch()

;duan_latch()

;

如果先開duan_latch,再開wei_latch:不會產生鬼影。無需初始化。

duan_latch()

;wei_latch()

;

digitable[0]

= duantable[sec/1%

10]; digitable[1]

= duantable[sec/10%

10]; digitable[2]

= duantable[sec/

100%10]

; digitable[3]

= duantable[sec/

1000%10

];digitable[4]

= duantable[sec/

10000%10

];digitable[5]

= duantable[sec/

100000%10

];

#include

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

uchar code weitable[6]

=;uchar code duantable[16]

=;uchar digitable[6]

=;sbit wei = p2^7;

sbit duan = p2^6;

ulong sec =0;

bit flag =0;

uchar i =0;

uint cnt =0;

void

main

(void

) digitable[0]

= duantable[sec/1%

10]; digitable[1]

= duantable[sec/10%

10]; digitable[2]

= duantable[sec/

100%10]

; digitable[3]

= duantable[sec/

1000%10

];digitable[4]

= duantable[sec/

10000%10

];digitable[5]

= duantable[sec/

100000%10

];}}

}void

timer0

(void

) interrupt 1

p0 =

0x00

; duan =1;

duan =0;

switch

(i)}

51微控制器數碼管的動態顯示

本節實驗,需要加深理解鎖存器,位選線,段選線等,以及防止重影的方法 和keil中數 組的定義 另外想讓8個數碼管同時顯示不同的數字,靠的是程式的快速執行,和人眼的短時間緩衝原理實現的 本例的延時設定是1ms,可以分別用100ms 等嘗試一下 include define uchar unsigned...

51微控制器數碼管遞增顯示

硬體 stc90c51 普中科技51開發板 連線 74hc138解碼管a b c與p22 p23 p24連線,控制數碼管的位選 p0與數碼管連線,控制段選 如下 include include sbit hc138a p2 2 sbit hc138b p2 3 sbit hc138c p2 4 sb...

51微控制器數碼管詳解

led數碼管是由多個發光二極體封裝在一起組成 8 字型的器件,引線已在內部連線完成,只需引出它們的各個筆劃,公共電極。led數碼管常用的段數一般為7段,有的另加乙個小數點 led數碼管根據led的接法不同,分為共陽和共陰兩類 1.共陽極數碼管 指八段數碼管的八段發光二極體的陽極 正極 都連在一起,而...