导航:首页 > 操作系统 > 51单片机改装

51单片机改装

发布时间:2023-11-29 17:58:42

A. 51单片机如何修改波特率9600改成2400

用下面公式重新计算用于产生波特率的定时器重载值:
设9600波特率时定时器重载值是X;
设2400波特率时定时器重载值是Y;
当定时器重载值是8bit时(传统的51单片机型号,如AT89C51的T1):
Y=256-((256-X)*4)
当定时器重载值是16bit时(较新的51单片机型号,如C8051F系列的Timer3):
Y=65536-((65536-X)*4)
//-----------------------------------------------
粗略看了一下你的程序,你可以调整一下MAX_DELAY这个参数。我没具体计算过,只是怀疑是不是波特率降低之后,发送数据的时间变长了,如果发送数据的时间超过MAX_DELAY就会发送错误。
仅供参考。

B. 问一下51单片机能不能改成电源模块

看你这开发板是用USB线连接电脑,用USB取电并烧录程序。如果用电脑烧录程序以后,是可以用5Ⅴ电源模块供电,但应该是手机充电器的那种电源模块,插上USB线就供电了。你买其他类型的5V电源模块用不上。其实,用不着另买电源模块,肯定有手机充电器,用充电器就行的。买的电源模块没有USB口反倒不能用。但是,烧录程序时还必须用电脑。

C. 51单片机改io口

51的IO 很特别,属于SFR,不能直接或者间接寻址,所以不能像寄存器那样随意调换顺序。要么在定义的时候修改,要么使用以个接口函数,在接口函数中实现IO的兑换,这个函数可以接受参数什么的,可以做的比较人性化。

D. 51单片机程序修改

现在,你显示的是num1,其范围是0~60。
可以把它的上限,改为30,这就符合你的要求了。

另外再增加一个变量num2,其范围是0~60。
用它来控制红绿黄的交替变化,即可。

voiddisplay(ucharge,ucharshi)
{
if(num2<=25){P1=0xfe;}
elseif(num2<=30){P1=0xff;delay(2);P1=0xfd;}
elseif(num2<=60){P1=0xfb;}
……
}
……
voidtime0()interrupt1
{
TH1=(65536-5000)/256;//--应该是TH0=...
TL1=(65536-5000)%256;//--应该是TL0=...

num++;

if(num==10){
num=0;

num1++;
if(num1==30)num1=0;//用于显示秒数
shi=num1/10;
ge=num1%10;

num2++;
if(num2==60)num2=0;//用于控制变换

}
}

E. 51单片机数字电压表P0口改到P1口程序怎么改

delay(1);
EN=1;//拉高使能端,为制造有效的下降沿做准备。
delay(1);
EN=0;//en由高变低,产生下降沿,液晶执行命令
}
void write_1602dat(uchar dat)//液晶写入数据函数
{
RS=1;//数据/指令选择置为数据
P0=dat;//送入数据 *******************************这个我改成了P1
delay(1);
EN=1; //en置高电平,为制造下降沿做准备。
delay(1);
EN=0; //en由高变低,产生下降沿,液晶执行命。
}
void lcd1602_init()//液晶初始化函数
{
uchar a;
RW=0;
write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据。
write_1602com(0x0c);//开显示不显示光标
write_1602com(0x06);//整屏不移动,光标自动右移。
write_1602com(0x01);//清显示
write_1602com(0x80);//显示固定符号从第一行第0个(从第0个开始数)位置开始显示
for(a=0;a<4;a++)
{
write_1602dat(tab1[a]);//向液晶屏写固定符号部分
}
write_1602com(0x80+9);//显示固定符号写入位置,从第一行第9个(从第0个开始数)位置开始显示。
for(a=0;a<8;a++)
{
write_1602dat(tab2[a]);//写显示固定符号
}
}
/*************转速显示函数**********/
void display(unsigned long speed)//转速显示函数
{
if(speed<=99999)
{
uchar wan,qian,,shi,ge;//定义拆字变量
wan=speed/10000;//转速/10000得到万位
qian=speed%10000/1000;//转速/10000的余数/1000得到千位

阅读全文

与51单片机改装相关的资料

热点内容
matlab遗传算法适应度函数 浏览:129
制作linux系统镜像 浏览:154
域名解析服务器ip地址不能正常 浏览:845
程序员十万个为什么 浏览:535
维信卡卡贷app怎么下载不了 浏览:919
qdim命令使用 浏览:873
截图R命令 浏览:654
基于单片机的智能台灯设计 浏览:685
多余app是怎么兑换皮肤的 浏览:552
sql数据库查询表命令 浏览:551
简单音乐网站源码 浏览:644
运动健康app华为手表怎么连接 浏览:748
肌肉塑造全书pdf下载 浏览:796
安卓简约拼图用什么软件好 浏览:289
fx1n加密程序 浏览:844
淘客阿里云服务器 浏览:476
100压缩打造 浏览:422
安卓手机怎么和苹果平板传文件 浏览:973
开始选项卡中的页眉和页脚命令选项 浏览:424
pdf的字体怎么改 浏览:856