導航:首頁 > 操作系統 > 單片機按鍵如何修改參數

單片機按鍵如何修改參數

發布時間:2023-01-24 17:29:55

㈠ 51單片機按鍵調節參數值並保存的程序代碼

uchar a=50;//假設a的可調范圍是1到100;
uint time=0;
eepromEraseSector (0X2800);//擦除EPROM一個扇區
while(time<5000)//不足5s
{
if(s1==0)//S1按下
{ delay_ms(20);
if(s1==0){ while(s1==0);a-- ; time=0; if(a==0)a=100;}
}
if(s2==0)//S2按下

{ delay_ms(20);
if(s2==0){ while(s2==0);a++; time=0; if(a>100)a=0; };
//一旦按鍵按下,time就清0
}
delay_ms(100);
time+=100;
}
eepromWrite(0x2800, a);//寫入 EPROM

㈡ 單片機如何通過按鍵修改數碼管數字(使用盡量少的按鍵)

看你的原理圖中有8個數碼管和8個按鍵,要改變數碼管顯示的數字,需要寫程序實現。寫程序的方法可根據需要確定用幾個按鍵。假如是按下每一個按鍵對應一位數碼管改變數字,就用8個按鍵。假如是數碼管顯示計數,用兩按鍵,一個做加一鍵,另一個做減一鍵。

㈢ 怎樣用3*4矩陣鍵盤,改變51單片機程序里的數據

//考慮易讀,使用3個標志
char flag=0; //修改狀態=1
char f_change=0; //日期修改標志=1,時間修改標志=2,var修改標志=3
char num_on=0; //數字鍵盤

//按鍵:
//11=修改, 10=退出修改
//1=date,2=time,3=var為多功能鍵,必須使用num_on來切換
//按鍵還需有個keydown()判斷鍵是否按下

/*****************************************************/
//判斷鍵是否按下
/*****************************************************/
int keydown(void)
{

}
void proc_key(void)
{
switch(f_change)
{
case 1:funDate(K);break;
case 2:funTime(K);break;
case 3:funVar(K);break;
default:break;
}
}
main()
{
.....
while(1)
{
if(keydown())
{
K=keyscan();
switch(K)
{

case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
if(num_on)
{
proc_key();
}
break;
case 1:
case 2:
case 3:
if(num_on)
{
proc_key();break;
}

if(!f_change && flag)
{
f_change=K;
num_on = 1;
}
break;
case 10:f_change=0;flag=0;break; //結束修改
case 11:f_change=0;flag=1;break;
default:break;
}
}
}
}

㈣ 51單片機四個獨立按鍵設置四個參數C語言程序

同樓下,您還是回家種紅薯吧,最鄙視這種直接把題目貼上來讓別人寫代碼的!不思進取只想不勞而獲!還學給毛,還不如趕緊回家種紅薯,或者家裡有錢的話回去坑爹。

㈤ 32單片機怎麼利用按鍵實現閾值上下限更改

32單片機在模式2下利用按鍵實現閾值上下限更改。根據查詢相關資料信息,32單片機在模式1下,可以通過按鍵設置物品單價,從而計算出總金額。在模式2下,可以通過按鍵來設置上下限閾值,提高稱重的精準度。

㈥ 單片機中怎樣設置一個變數控制按鍵數

可以有位定位的位變數來控制按鍵,也可以用埠來控制。
當按鍵被按下的時候,電路導通接地,I/O口為低電平。當按鍵未被按下時,電路斷開,I/O口保持高電平。當檢測到某一個按鍵按下時,對我們設置的一個變數(下邊用keynumber)賦值,這樣就實現了輸入的效果。
一般的按鍵所用開關為機械彈性開關,當機械觸點斷開、閉合時,由於機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩定地接通,在斷開時也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,假如不加以處理,會導致按鍵被識別為按下多次。為了不產生這種現象而作的措施就是按鍵消抖。

㈦ 51單片機數碼管顯示CD4060的頻率並通過按鍵更改其頻率怎麼編程啊(最好匯編)

s1 bit p0.0 ;數碼管位定義
s2 bit p0.1
s3 bit p0.2
s4 bit p0.3
s5 bit p0.4
s6 bit p0.5
s7 bit p0.6
s8 bit p0.7

led_data equ p2 ;數碼管數據定義

org 00h ;程序開始
jmp main ;主程序開始處

org 030h ;主程序從30H開始
main: MOV sp,#30h ;設置堆棧
lcall rest ;調用初始化程序
lcall pro_8led ;調用數碼管顯示程序
jmp main ;返回

;********* 初始化程序 **************

rest:MOV a,#00h ;清寄存器
MOV b,#00h ;清寄存器
MOV p0,#0 ;禁止數碼管顯示
MOV p2,#255 ;
MOV p1,0ffh ;禁止LED顯示
clr beep ;禁止蜂鳴器
ret ;返回

;******** 數碼管顯示程序 ***************
pro_8led:
MOV b,#32 ;一共顯示32個數字
clr psw.3 ;重新設置寄存器組
setb psw.4 ;

MOV r0,#00h ;數據顯示從0開始
MOV r1,#01h ;數碼管從第1個開始
loop:MOV p0,r1 ;點亮當前數碼管
MOV a,r0 ;准備第一個數據
MOV dptr,#tab_nu ;獲得表頭
MOVc a,@a+dptr ;得到第一個數據
MOV led_data,a ;輸出到顯示數據口

lcall delay ; 500 ms 延時
lcall delay ; 1 s 延時
inc r0 ;准備下一個數據
MOV a,r1 ;准備下一位數碼管
rlc a ;設置下一個數碼管
jc c1 ;8位全部顯示,轉移
MOV r1,a ;否則,設置下一位
djnz b,loop ;32個數沒有顯示完,返回顯示
ret ;否則返回主程序

c1: MOV r1,#1 ;8位顯示完,重新開始循環
clr c ;設置顯示位
djnz b,loop ;32位顯示完則返回重新顯示
ret ;否則返回到主程序
;************* 數碼管顯示 *******************************

;************* 軟體延時 500ms *****************************
delay: push psw ; 保存原來的寄存器內容
clr psw.3 ;
clr psw.4 ; 設置新的寄存器組
MOV r0,#2 ; 延時參數1
MOV r1,#250 ; 延時參數2
MOV r2,#2 ; 延時參數3
dl1:djnz r0,dl1 ; 延時循環1
MOV r0,#250 ;
dl2:djnz r1,dl1 ; 延時循環2
MOV r0,#240 ;
MOV r1,#248 ;
dl3:djnz r2,dl1 ; 延時循環3
nop ; 定時精度調整
pop psw ; 恢復原來的寄存器
ret ; 返回
;**********************************************************

;**********************************************************
;這是數字顯示表格,其中 帶小數點的數字比不帶小數點的數字大16
; 比如 0 的顯示代碼為 0;那麼 0.的顯示代碼為 16;如此類推

tab_nu:
db 0c0h, 0f9h, 0a4h, 0b0h, 99h , 92h , 82h, 0f8h ; 數字0-7 不帶小數點代碼
db 80h , 90h, 88h , 83h , 0c6h, 0a1h, 86h, 8eh ; 數字8-f 不帶小數點代碼
db 40h , 79h, 24h , 30h , 19h , 12h , 02h, 78h ; 數字0-7 帶小數點代碼
db 00h , 10h, 08h , 03h , 46h , 21h , 06h, 0eh ; 數字8-f 帶小數點代碼

end

㈧ 單片機定時器如何用按鍵調整

判斷咯
while(1) 監控外面狀態
將延時函數的定義成delay(int a){while(a--);}這種形勢
調用的時候可以用delay(b); b的定義為全局變數
可以設定一個初值
如果有按鍵按下 在判斷按鍵按下的時候 將b的值改變成你想要的就OK
如果不用WHILE 監控狀態 用外部中斷也可以
按鍵讀取別忘記去抖哦 :-)

㈨ 單片機,通過按鍵修改程序內的延時時間。

這個時間存儲在單片機內部,掉電不丟失,是完全可以,STC89C52有內部EEPROM,就保存這里,根本就不需要什麼外部器件。
只要定義一個變數,根本時間長短,定義成8位,或16位數。
按加和減按鍵時,就增加或減少這個變數,每次調節後就保存一次這個變數,即保存在EEPROM中,STC技術資料中有EEPROM讀寫例子程序。
然後開機後先讀出保存在EEPROM中的數。
外部中斷查詢這個時間也沒問題,其實就是由這個變數決定中斷的次數吧,從面改變延時的時間長短嗎。再用一個變數,對中斷計數,當這個計數值等於保存的變數值就是延時到。這樣,保存的變數值是可以調節的,也就調節了延時的時間了。

閱讀全文

與單片機按鍵如何修改參數相關的資料

熱點內容
反詐騙app怎麼找回密碼 瀏覽:629
java方法和函數 瀏覽:418
程序員衣服穿反 瀏覽:959
java多類繼承 瀏覽:157
怎麼用多玩我的世界連接伺服器地址 瀏覽:483
為什麼華為手機比安卓流暢 瀏覽:175
javamap多線程 瀏覽:226
卡西歐app怎麼改時間 瀏覽:841
jquery壓縮圖片 瀏覽:970
用紙筒做解壓東西 瀏覽:236
神奇寶貝伺服器如何tp 瀏覽:242
雲伺服器支持退貨嗎 瀏覽:277
貸款等額本息演算法 瀏覽:188
根伺服器地址配置 瀏覽:499
單片機是軟體還是硬體 瀏覽:624
vivo手機怎麼看編譯編號 瀏覽:320
塑鋼扣條演算法 瀏覽:301
linux應用程序安裝 瀏覽:414
linux怎麼查找命令 瀏覽:431
安卓12原生和非原生是什麼意思 瀏覽:277