导航:首页 > 操作系统 > 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单片机改装相关的资料

热点内容
标志307的压缩比是多少 浏览:633
服务器启动为什么叫三声 浏览:995
追风筝的人英文pdf 浏览:936
解压小熊手机壳 浏览:346
成都市区建成面积算法 浏览:660
智能家居单片机 浏览:97
买男装用什么app好 浏览:855
文件夹合并了怎么拆开 浏览:260
波段副图源码无未来函数 浏览:89
livecn服务器地址 浏览:259
程序员这个工作真的很吃香吗 浏览:847
程序员和数学分析师待遇 浏览:681
压缩气弹簧怎么拆 浏览:324
华为公有云服务器添加虚拟ip 浏览:211
程序员和运营哪个累 浏览:27
抖音安卓信息提示音怎么设置 浏览:456
光速虚拟机的共享文件夹 浏览:251
程序员培训机构发的朋友圈真实性 浏览:744
天干地支简单算法 浏览:299
下载个压缩文件 浏览:300