小程式 控制數碼管顯示 我是新人

2023-05-12 14:40:08 字數 3551 閱讀 3341

1樓:匿名使用者

void systeminit()

你的按鍵處理有問題。

void key(void) /按鍵採集。

else//按鍵按下。

if(key_add)//按鍵彈起。

else//按鍵按下。

if(key_fall)//按鍵彈起。

else//按鍵按下。

求51微控制器控制一個數碼管顯示程式!

2樓:網友

但不管怎麼樣。 自己經歷一次,就會了解些,有所長進,增加自信!

74hc595控制數碼管程式老是有問題,求助

3樓:匿名使用者

這條語句temp=temp<<=1;沒彈錯???管腳reset接高電平了沒?就如你程式所設計,6.

1口應給高電平。另外使能端接地了沒??檢查下你的硬體電路,如果都正確,試下我的程式。

給你一個我一直用的595程式:

void set595(uchar data)uchar a,b;

a = data;

sck_l;

rck_l;

for(b=0;b<8;b++)

if(a&0x01)

dat_h;

elsedat_l;

sck_h;

a >>1;

nop();

nop();

sck_l;

rck為主時鐘,sck為鎖存時鐘。

4樓:匿名使用者

呵呵,你可以參考一下這個595驅動數碼管的例子。

5樓:匿名使用者

去csdn上問比較好 我只懂一些人文的 幫你頂一下吧。

三菱plc控制數碼管的程式 急!!

6樓:匿名使用者

是不是一定要用bcd和ror指令,用我的程式看行不行,

7樓:漫陽雲

可不可以用dec(p) d0指令使d0中的資料每隔一秒鐘減一,下面再用cmp比較指令,當d0中資料等於三時,該程式停止,或者使d0中資料恢復原值迴圈。

8樓:匿名使用者

三菱的沒學過 不過我覺得plc的設計思想是相通的 給你一個建議吧。

用單獨的輸出同道來控制數碼管 ( 用七段數碼管指令 ),然後用個移位暫存器 1秒鐘的脈衝 移位指令 就搞定啦。

9樓:匿名使用者

用以暫存器 一秒減一 然後用解碼指令輸出就ok了。

10樓:匿名使用者

用移位指令。不知道你具體想問什麼?

任務:用c語言設計程式,完成8個數碼管的顯示控制

11樓:匿名使用者

#include""

#include ""

void numledopen(unsigned char i);

void main();

unsigned long i = 0, j, zeros = 10000000, inc = 1;

while(1)i=i%zeros;zeros=zeros/10;

numledopen(1);

if(i>zeros)dat_in(numbers[i/zeros]);

elsei=i%zeros;zeros=zeros/10;

numledopen(2);

if(i>zeros)dat_in(numbers[i/zeros]);

elsei=i%zeros;zeros=zeros/10;

numledopen(3);

if(i>zeros)dat_in(numbers[i/zeros]);

elsei=i%zeros;zeros=zeros/10;

numledopen(4);

if(i>zeros)dat_in(numbers[i/zeros]);

elsei=i%zeros;zeros=zeros/10;

numledopen(5);

if(i>zeros)dat_in(numbers[i/zeros]);

elsei=i%zeros;zeros=zeros/10;

numledopen(6);

if(i>zeros)dat_in(numbers[i/zeros]);

elsei=i%zeros;zeros=zeros/10;

numledopen(7);

if(i>zeros)dat_in(numbers[i/zeros]);

elsei=i%zeros;zeros=zeros/10;

numledopen(8);

i = j;

delay(1);

if(p3_3 ==0) }

void dat_in(unsigned char dat)

rclk=0; /dat_out

rclk=1;

void delay(unsigned int time)

void numledopen(unsigned char i)

if(i==2)

if(i==3)

if(i==4)

if(i==5)

if(i==6)

if(i==7)

if(i==8)

else return ;

採用的是按鍵查詢 int就是。

12樓:匿名使用者

你很幸運,抽到這麼簡單的任務**。

13樓:在起雲敖儀

假設8個數碼管公共端均接地,同時顯示1-9#include

#include

#define

ucharunsigned

char#define

uintunsigned

intuchar

codedsy_code=

voiddelayms(uint

x)void

main()

下面程式從左到右顯示。

#include

#include

#define

ucharunsigned

char#define

uintunsigned

intuchar

codedsy_code=

voiddelayms(uintx)}

voidmain()}

為什麼我的程式不能控制數碼管

14樓:海深深藍

你好,你也不給個電路圖,我在網上找了好久找到了hot51,不知道是不是你這個型號的,這是圖。

138是譯碼器,比如你想讓第一位亮,就讓譯碼器輸出0x01,則譯碼器輸入000;即p2^0=0;

p2^1=0;p2^2=0;573是鎖存器,先讓le=1,關閉鎖存,比如想讓第一位顯示1;則輸入0x06就行了,再讓le=0,即開啟鎖存,此後無論p0怎麼變顯示的1也不會改變了。希望幫到你。

數碼管顯示數字原理,數碼管動態顯示原理是什麼?

數碼管實際上是由七個發光管組成8字形構成的,加上小數點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。當數碼管特定的段加上電壓後,這些特定的段就會發亮,以形成我們眼睛看到的2個8數碼管字樣了。如 顯示一個 2 字,那麼應當是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。led數碼管有一...

數碼管共陽極,讓數碼管顯示數字1,是先開啟段選還是位選

程式如下 void main while 1 dula 1 開啟段選 p0 table 1 dula 0 p0 0xff 消影 wela 1 開啟位選 p0 0xfe wela 0 delay 500 微控制器上電瞬間我記得io電平是不定的,所以控制數碼管的io如果沒有外部上拉的話是不會亮的,如果你...

微控制器控制數碼管為什麼顯示很暗使用微控制器驅動4位數碼管,亮度不一樣,第一位很亮,其他很暗,為什麼?

長期點亮就是 數碼管最亮 的時候。但動態顯示中做不到長期點亮,那麼就要換種說法 最大可能讓它長期亮,就是 數碼管最亮的時候。也就是說,數碼管亮的時間越長,它就越亮。又但是,動態顯示中,數碼管亮的時間越長,幾個數碼管就會變得一閃一閃的,甚至是,一個亮完另一個亮,跟流水燈似的。這就是所謂的 刷屏!因此,...