當前位置:首頁 » 編程語言 » 三個數碼管c語言編程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

三個數碼管c語言編程

發布時間: 2022-08-21 00:09:58

c語言程序,用數碼管的前三位顯示一個三位數,1--100,開始時,按下key1一次,數值加1,按下key2,減去1,

這個很簡單,將數碼管的段碼寫成一個數組,將三位數分離成三個一位的,沒有具體電路嗎,有具體電路的話,我可以給你寫一個

⑵ 用C語言編程兩個按鍵控制三個7段數碼管顯示0~99

K_ADD BIT P3.0

ORG 0000H
CLR A
MOV P0, A
;----------------------
M_LOOP:
JB K_ADD, $
CALL DL10MS
JB K_ADD, M_LOOP
ADD A, #1
DA A
MOV P0, A
MOV R2, #0
;----------------------
ML1: ;等兩秒
CALL DL10MS
JB K_ADD, M_LOOP
INC R2
CJNE R2, #200, ML1
;----------------------
ML2: ;快速加一
ADD A, #1
DA A
MOV P0, A
MOV R2, #10
ML3:
CALL DL10MS
DJNZ R2, ML3
JB K_ADD, M_LOOP
JMP ML2
;----------------------
DL10MS:
MOV R6, #20
MOV R7, #110
DJNZ R7, $
DJNZ R6, $ - 2
RET

END

匯編的程序,應該不符合要求,也就沒有多寫,僅僅有加一的功能。

⑶ 本人在用C語言編一段三位一體數碼管動態顯示程序,求高手指點

如果你的硬體已連接完善,那編程需:
1、動態掃描:在已個 t 時間內(可以是幾個ms)選中 1 位數碼管,以亮點該位數碼管對應的碼段,其他關斷(不亮);而下一個 t 時間需點亮下一位數碼管......以此類推,循環起來。這個 t 可以用定時器准確控制。當然,如果你只是為了實現單純的3個數碼管顯示,可以不精確時間,循環起來就是了(只要保證耽擱的顯示時間少於肉眼識別時間,就是看起來不會一閃一閃的就行);
2、顯示內容:多數情況下,待顯示的字元/數字先按數碼定義編碼,存放在表格中。按自己的編程需要,在顯示的時候從表格中提取。當然,如果只是簡單實驗,顯示的內容是固定的,也可以程序里用立即數。
多試一試吧。

⑷ 幫個忙 編個數碼管顯示1234的c語言程序啊

幫個忙
編個數碼管顯示1234的c語言程序啊
單的寫了點,你看看有沒有啟發
我估計沒什麼大的用處,因為很多細節都沒有
有機會的我們溝通一下,好好討論討論,可能會好點
[email protected]
俺的郵箱
void
main(void)
{
for(;;)
{
if(有鍵盤輸入)
{
switch(鍵盤輸入)
{
case:
AV
接收輸入的數值
if(16~35)
將其存入最低溫度變數中並顯示
else
Beep();
//發出蜂鳴聲
break;
case:TV
接收輸入的數值
if(最低溫度~35)
將其存入最高溫度變數中並顯示
else
Beep();
//發出蜂鳴聲
break;
case
POWER:
系統進入STANDBY狀態
standby_flag
=
true;
break
default:
Beep();
//發出蜂鳴聲
break;
}
}
result
=
readAD();
//讀取溫度晶元的值
if(result
>
最高溫度)
顯示「H」
if(result
最低溫度)
顯示"L"
if((standby_flag
==
true)&&(超過三分鍾))
播放音樂
}
}
一年好運隨春到
四季彩雲滾滾來
萬事如意

⑸ 用51單片機設計3位led數碼顯示管作秒錶00.0-99.0求設計電路與c語言程序

#include "STC12C54.H"
#define uchar unsigned char
#define uint unsigned int
#define dataport P1//P1直接驅動數碼管的8個陽極
sbit wei1=P3^3;//再有三個管腳接3個三極體驅動數碼管的陰極
sbit wei2=P3^4;

sbit wei3=P3^5;
uint a=0;//中斷次數計數,一次50ms,20次為1 秒
//共陰數碼管七段碼
uchar TABLE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//延時子程序
void delay1ms(uint t)
{

uint i,j,k;
for(i=t;i>0;i--)
for(j=15;j>0;j--)
for(k=27;k>0;k--);
}
//顯示子程序
void display(uint n)
{
uchar a1,a2,a3;
a1=n/100%10;
a2=n/10%10;
a3=n%10;
wei1=1;
dataport=TABLE[a1];
delay1ms(1);
wei1=0;
dataport=0x80|TABLE[a2];//這里多個小數點
delay1ms(1);

wei3=1;
dataport=TABLE[a3];

delay1ms(1);
wei3=0;
}
void init(void)
{
TMOD=0X01;
TH0=(655536-50000)/256;//定時50ms
TL0=(655536-50000)%256;
EA=1;
ET0=1;
TR0=1;
P1M0=0;
P1M1=0xff;//P1口設為推挽輸出,驅動能力強
P3M0=0;
P3M1=0x38;//P3.3P3.4 P3.5口設為推挽輸出
}
void main(void)//主程序
{
init();//初始狀態設定
while(1)
{
display(a/2);//顯示計數值,以十分之一秒為單位
}
}
void timer0(void)interrupt 1//中斷子程序
{
TH0=(655536-50000)/256;
TL0=(655536-50000)%256;
a++;
if(a==1980)a=0;//1980次是99秒
}

⑹ 關於單片機數碼管的C語言代碼,高分求詳解,先謝過

一、LedNumVal%10000/1000
%是模,取余數的意思,%10000,得到的數最大是四位數。
/是整除的意思不帶小數,如8/3=2
一個小於10000的數,整除1000結果一定是0到9之間的一個數
二、Disp_Tab
以及LedOut,
dispbit都是數組,根據相應的數可得到對應的字元數據,達到位選的功能。

⑺ 編寫程序把三個數的百位,十位,個位用三個數碼管顯示出來

;++++++++++++++[[
數碼管顯示子程序段
LEDBBK
]]+++++++++++++++++++++++
;入口參數存於ACC中
+
;影響資源,ACC,PSW,DPTR,B
+
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LED:
PUSH
PSW
;保護現場
PUSH
DPH
PUSH
DPL
PUSH
ACC
PUSH
B
MOV
B,#100
DIV
AB
MOV
A,B
MOV
B,#10
DIV
AB
MOV
DPTR,#LEDTAB
MOVC
A,@A+DPTR
;查筆型表
MOV
1DH,A
MOV
A,B
MOVC
A,@A+DPTR
MOV
1CH,A
LCALL
STO
;數據送顯示器
POP
B
POP
ACC
POP
DPL
POP
DPH
POP
PSW
RET
;##################
[[
參數顯示主程序
]]
######################
LED1:
PUSH
PSW
;保護現場
PUSH
DPH
PUSH
DPL
PUSH
ACC
PUSH
B
MOV
B,#100
DIV
AB
MOV
A,B
MOV
B,#10
DIV
AB
MOV
DPTR,#LEDTAB
MOVC
A,@A+DPTR
;查筆型表
MOV
1BH,A
MOV
A,B
MOVC
A,@A+DPTR
MOV
1AH,A
LCALL
STO
;數據送顯示器
POP
B
POP
ACC
POP
DPL
POP
DPH
POP
PSW
RET
;#################
第一個數碼管顯示
################################
LED2:
PUSH
PSW
;保護現場
PUSH
DPH
PUSH
DPL
PUSH
ACC
MOV
DPTR,#LEDTAB
MOVC
A,@A+DPTR
;查筆型表
MOV
1DH,A
LCALL
STO
POP
ACC
POP
DPL
POP
DPH
POP
PSW
RET
;#################
第二個數碼管顯示
################################
LED3:
PUSH
PSW
;保護現場
PUSH
DPH
PUSH
DPL
PUSH
ACC
MOV
DPTR,#LEDTAB
MOVC
A,@A+DPTR
;查筆型表
MOV
1CH,A
LCALL
STO
POP
ACC
POP
DPL
POP
DPH
POP
PSW
RET
;################
串列通信發送子程序
############################
STO:
CLR
TR0
;關閉定時器
PUSH
ACC
MOV
R1,#04H
;設置為4個數碼管
MOV
R0,#1DH
;第一個數碼管地址為14H
STO1:
MOV
A,@R0
MOV
B,#08
STO2:
RRC
A
MOV
MRXD,C
CLR
MTXD
NOP
SETB
MTXD
DJNZ
B,STO2
SETB
MRXD
DEC
R0
;取下一位數據
DJNZ
R1,STO1
SETB
TR0
;開定時器
POP
ACC
RET

⑻ 求一個單片機的外部中斷。 要求c語言完成中斷實驗及中斷優先權實驗,分別用三個數碼管表示模擬和程序

我用單片機做小車,用C語言編程,想用中斷但是不知道怎麼用,比如小車跑的好好的,來了個信號他就可以中止現在的程序執行另一個程序,但是又不能用查詢的方式一直查是否有這個信號來,所以要用到中斷,誰知道指點一下我啊,最好是有程序實例,謝謝~~
最佳答案 #include <reg51.h>
void init(void)//聲明中斷初始化
{ EA=1;//中斷總開關
EX0=1;//開中斷0開關。中斷1為,EX1=1;
IT1=1;//採用邊沿觸發,下降沿有效。IT1=0為低電平觸發中斷。
}
main()
{ init();調用中斷初始化函數
==
===主程序;
}
void in_0(void)interrupt 0//中斷服務函數
{ ==
==要服務的程序
}