导航:首页 > 操作系统 > 单片机一键调整频率

单片机一键调整频率

发布时间: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的时钟周期

阅读全文

与单片机一键调整频率相关的资料

热点内容
GM附魔命令 浏览:597
反编译自己制作的软件 浏览:33
ros用c还是python好 浏览:76
安卓九系统提醒怎么关 浏览:654
我的世界服务器有领地怎么抄家 浏览:36
python实现多态 浏览:300
幼师pdf 浏览:941
你怎么用python开发游戏 浏览:647
雷霆战机服务器异常是什么问题 浏览:669
程序员客栈20 浏览:254
化妆pdf下载 浏览:923
takla服务器ip地址 浏览:357
欧盟加密资产法律 浏览:573
威纶通反编译密码是多少 浏览:201
51单片机有40个外部引脚 浏览:956
山西拨号服务器云空间 浏览:714
python中阶乘怎么计算 浏览:530
linux查看块大小 浏览:554
空调压缩机压力低 浏览:184
pdf怎么复制粘贴文字 浏览:575