导航:首页 > 操作系统 > 基于stc51单片机的液位检测

基于stc51单片机的液位检测

发布时间:2023-02-19 03:35:54

A. 求一个计算机毕业论文题目。

我给你一个题目,如果你写出来了,我保你论文得优秀。因为当年我就是选这个题目得的优秀。

刚才我在网上搜了一下,网上还是没有与这个系统相关的论文。

《高考最低录取分数线查询系统》

基本思想很简单,现在的高考分数线查询是很繁琐的,需要先把分数查出来,然后根据录取指南再找你的分数能被录取的学校,高考过的都知道,高考报考指南是一本多么厚的书。
所以,这个系统的思想就是:你用所有高校近十年的录取分数线建立一个数据库,然后开发一个系统,当你输入查询命令的时候(查询命令可以用1,2,3这三个数来代替,用flog实现;输入1,查询的是符合你所输入的分数以下的所有高校信息;输入2,查询的是符合你所输入分数段之间的所有高校信息;输入3,查询大于你所给的分数线的高校信息。)当然,你可以再加上一些附加的功能。
大致思想就这些。

郑州今迈网络部竭诚为你解答,希望我的答案能帮到你!

B. 求助:采用STC2051单片机测量脉冲宽度~~

提供个思路给你
计数器 模式

将脉冲接入定时器0的GATE 和中断0
将脉冲反向接入定时器1的GATE和中断1

让后在中断0里面读取 定时器1的计数器 并清零
让后在中断1里面读取 定时器0的计数器 并清零
这样
定时器1的记数就是 正脉宽
定时器0的记数就是负 正脉宽

C. 基于STC51系列单片机的SPWM波形实现,程序如何编写急急急急

/*********************************************************
// 载波比选为N=24,调制比M=Uc/Ur=1,晶振频率12M
// 正弦波频率50Hz
// 高电平的宽度Tpw = Tt/2*(1+Msimwt)
// 低电平的宽度Tpw = Tt/2*(1-Msimwt)
// Tt周期
// T2是产生SPWM波形,并从P1^1输出,用导线连接到P3.4作为测试频率使用。

// T1工作在定时方式1,定时1s
// T0工作在计数方式,对输入的脉冲进行计数,溢出产生中断。
// 16位计数器最大值是65536,1s内可能会产生多次溢出,所以在中断处理程序对中断的次数进行
// 计数。1s到后,将中断的计数器里的计数值取出进行综合处理,处理后的数据送显示。

//信号频率的计算方法:
// T0工作在计数方式,假设1s内溢出C1次,最后未溢出的计数值是C2,则频率公式为:
// F=C1*2^16+C2 = C1*65536+TH0*256+TL0)

//使用12MHz时钟,测量的最大范围是不大于500KHz。
*********************************************************/

#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
uchar disp[8]={0,0,0,0,0,0,0,0};

uchar FreStr[]="Friquency is:";

uchar T0count,T1count;

uchar code x[]={66,38,26,89,15,97,7,102,2,103,1,102,2,
97,7,89,15,78,26,66,38,38,66,26,78,15,
89,7,97,2,102,1,103,1,103,2,102,7,97,15,
89,26,78,38,66};
uchar ky,kc,count=255;
sbit L1=P1^1;

void delayms(uchar ms)

{
uchar i ;
while(ms--)
{
for(i = 0 ; i < 120 ; i++) ;
}
}

//LCD定义开始
//以下三个是定义LCD的引脚
sbit lcden=P0^5;
sbit lcdwrite=P0^6;
sbit lcdrs=P0^7;

//延时程序
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//lcd的写指令
void write_com(uchar com)
{
lcdrs=0;
lcden=0;
P2=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
//lcd的写数据
void write_data(uchar da)
{
lcdrs=1;
lcden=0;
P2=da;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
//初始化
void Lcd_init()
{
lcdwrite=0;
lcden=0;
write_com(0x38); //16*2显示,5*7点阵,8位数据
write_com(0x0c);//显示开,关光标
write_com(0x06); //移动光标
write_com(0x01);//清除LCD的显示内容
}
//LCD定义结束

//计算频率值
void calc()
{
uchar i;
long frequency;
frequency=(T0count*256+TH0)*256+TL0;
for(i=7;i>0;i--)
{
disp[i]=frequency%10;
frequency=frequency/10;
}
disp[0]=frequency;
}

void init()
{
T0count=0;
T1count=0;
TH0=0;
TL0=0;
}

void main()
{
uchar dis;
init();
Lcd_init();
TMOD=0x15;
TH1=(65536-5*110592/12)/256;
TL1=(65536-5*110592/12)/256%10;
ET1=1;
ET0=1;
EA=1;
TR1=1;
TR0=1;

//以下四句的作用是在P1.1引脚上形成1000Hz的脉冲,用导线连接到P3.4作为测试用。将其中
//高8位和低8位的初始值更改后可输出不同频率的脉冲。
T2MOD = 0x02;
TH2=255-x[ky];
TL2=255-x[ky];
ET2=1;
EX0=1;
TR2=1;
L1=1;

write_com(0x80);
for(dis=0;dis<12;dis++)
write_data(FreStr[dis]);

while(1)
{
write_com(0xC0);
for(dis=0;dis<8;dis++)
write_data(disp[dis]+0x30); //显示频率
}
}

//计算输入脉冲的次数
void time0() interrupt 1
{
T0count++;
}

//计算1s时间
void time1() interrupt 3
{
TH1=(65536-5*110592/12)/256;
TL1=(65536-5*110592/12)/256%10;

if(T1count==20)
{
calc();
init();
}
else T1count++;
}

//这是产生SPWM波形、
void M() interrupt 5
{
TH2=255-x[ky];
TL2=255-x[ky];
kc++;
if(kc==count)
{
kc=0;

L1=~L1;

ky++;

if(ky==49) ky=0;
}
}

//这是使用外部中断0可以调整输出波形的频率
void MM() interrupt 0
{
delayms(300);
if(INT0==0)
{
count=count-5;
if(count==0) count=255;
}
}

阅读全文

与基于stc51单片机的液位检测相关的资料

热点内容
sybaseisql命令 浏览:181
android权威编程指南pdf 浏览:661
哪些软件属于加密软件 浏览:644
文件夹75丝什么意思 浏览:468
最便宜sop8单片机 浏览:964
图解周易预测学pdf 浏览:418
c盘莫名奇妙多了几个文件夹 浏览:169
贵州花溪门票优惠app哪个好 浏览:801
如何说话不会让人有被命令的感觉 浏览:438
哪里可下载湘工惠app 浏览:263
福特python 浏览:310
pdf转换成word表格 浏览:351
无线远端服务器无响应是什么意思 浏览:670
两位整数倒序输出python 浏览:781
为什么我的世界天空服务器进不去 浏览:262
钉钉直播后的视频如何线上加密 浏览:503
听主的命令 浏览:208
全民上云时代云服务器 浏览:519
iphone不创建id如何下载app 浏览:972
windowsphp扩展安装 浏览:93