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位數碼管,亮度不一樣,第一位很亮,其他很暗,為什麼?
長期點亮就是 數碼管最亮 的時候。但動態顯示中做不到長期點亮,那麼就要換種說法 最大可能讓它長期亮,就是 數碼管最亮的時候。也就是說,數碼管亮的時間越長,它就越亮。又但是,動態顯示中,數碼管亮的時間越長,幾個數碼管就會變得一閃一閃的,甚至是,一個亮完另一個亮,跟流水燈似的。這就是所謂的 刷屏!因此,...