導航:首頁 > 操作系統 > 單片機一鍵調整頻率

單片機一鍵調整頻率

發布時間:2022-05-11 06:57:32

Ⅰ 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

Ⅱ 如何讓51單片機輸出可以調節的頻率

如果是用定時器來做,那麼改變定時器的初值就可以調節頻率。
如果是用延時函數來做,那麼改變延時時間就可以調節頻率。

Ⅲ 單片機的頻率切換是如何實現的

嘿嘿 俺來回答你的問題
單片機的頻率切換的方法:
就是通過按鍵的控制 來修改定時計數器的時間常數 改變波形的輸出周期 從而達到改變頻率的目的。
例如: 當第一次按下按鍵KEY時,送定時計數器的時間常數為3CB0H ,定時50毫秒
產生一個10HZ的方波
當第二次按下按鍵KEY時,修改定時計數器的時間常數 ,定時25毫秒
產生一個20HZ的方波
當第三次按下按鍵KEY時,修改定時計數器的時間常數 ,定時5毫秒
產生一個100HZ的方波
當第四次按下按鍵KEY時,停止定時器工作 不產生方波

呵呵 滿意 就選滿意回答

Ⅳ 如何調節凌陽單片機的cpu頻率

凌陽單片機採用32768Hz的外接晶振。
在凌陽單片機內部,有個P_SystemClock單元,其b7~b5 用來選擇系統時鍾,b2~b0 用來選擇CPU 時鍾。

b7~b5 是用來對外接晶振進行倍頻,產生幾十兆的系統時鍾;
b2~b0 是用來系統時鍾進行分頻,選擇供給CPU使用的時鍾頻率。

若把b2~b0 位置為111 則CPU時鍾停止工作,系統將進入低功耗的睡眠狀態。

Ⅳ 基於單片機的簡易函數信號發生器如何調節頻率用0832跟LM324

方法之一:產生定時中斷,中斷程序負責更新計數器,當計數器到達一定值(門限)的時候,讓輸出電平改變,改變計數器的門限就可以改變輸出頻率。
如果要輸出正弦,參見DDS原理。

Ⅵ STC15w4k32單片機如何更改內部時鍾頻率

STC15w4k32單片機更改內部IRC時鍾頻率,有兩種方法,一種是在燒錄程序時,選擇內部時鍾頻率。如下圖,畫紅框的下拉列表中的頻率,就是可以選擇 的時鍾頻率。

Ⅶ 51單片機一鍵控制一個LED,每按一下按鍵LED閃爍一種頻率,共閃爍三種頻率.有好的答案加

#include<reg51.h>

unsigned char n = 0;

sbit key = P3^4;
sbit led = P1^0;

void delay()
{
unsigned int i, j;
for(i = 0; i < 100; i++) for(j = 0; j < 500; j++);
}

void readkey(void)
{
unsigned char i, j;
if(!key) {
for(i = 0; i < 10; i++)
for(j = 0; j < 120; j++); //延時消抖
if(!key) {
while(!key); //等待按鍵釋放
n++;
n %= 4; //n = 0~3
}
}
}

main()
{
while(1) {
switch(n) {
case 0: led = 1; readkey(); break; //熄滅
case 1: delay(); readkey(); //慢速閃爍
case 2: delay(); readkey(); //中速閃爍
case 3: delay(); readkey(); led = ~led; //快速閃爍
}
}
}

Ⅷ 51單片機怎樣用鍵盤控制輸出頻率和占空比可調的方波

如果占空比可以控制、調整,就不能稱之為方波,就是矩形波形,屬於PWM波形。

用兩個變數控制PWM的參數,一個控制周期長度,一個控制脈沖寬度。

用兩個按鍵控制「周期長度」變數的+、-;
用兩個按鍵控制「脈沖寬度」變數的+、-;

即可。

Ⅸ 如何實現單片機輸出信號中的頻率變化

輸出信號的頻率變化應該是指輸出方波的頻率。
1. 如果你是用定時器來實現的,改變定時器的定時周期可以改變輸出頻率。
2. 如果用延時來實現,改變延時時間可以改變輸出頻率。
3. 如果需要用按鍵來選擇頻率,只需要在按鍵處理程序(查詢或中斷)中改變相應的(上述兩例)中相應的參數即可。
4. 改變晶振頻率可以改變輸出頻率變化。
如果還有其它的方法,請補充。

Ⅹ 單片機時鍾頻率調整

^_^,用外部的頻率信號做系統時鍾,然後自己可以控制一個分頻器或者另一個單片機改變這個頻率信號

只是不明白你為什麼要1hz的時鍾周期

閱讀全文

與單片機一鍵調整頻率相關的資料

熱點內容
程序員的興趣 瀏覽:409
華為伺服器有什麼好 瀏覽:701
程序員和測試之間的關系 瀏覽:945
加密蚊帳什麼意思 瀏覽:151
javalistclear 瀏覽:607
哪個app上民宿多靠譜 瀏覽:827
重慶伺服器租用哪裡有雲伺服器 瀏覽:453
土星模擬器文件夾 瀏覽:902
文件夾文件袋文件盒 瀏覽:695
雲伺服器打開f8指令 瀏覽:243
盈透證券加密幣 瀏覽:72
阿里雲伺服器初始密碼怎麼修改 瀏覽:266
伺服器怎麼設定公用網路 瀏覽:99
程序員自己嘗尿檢測出糖尿病 瀏覽:593
列印添加pdf 瀏覽:932
蘋果解壓專家賬號 瀏覽:844
度曉曉app為什麼關閑 瀏覽:228
net文件是偽編解碼嗎 瀏覽:149
伴隨矩陣的matlab編程 瀏覽:63
單片機和h橋是什麼意思 瀏覽:314