资源简介
本仿真是对单片机系统及程序进行仿真,仿真时借用了NE555产生延迟信号,模拟超声波的发送出去遇障碍物后返回的过程。仿真时通过调节RV1值的大小,以改变延时长短,模拟出距离的远近。

代码片段和文件信息
////////////////////////////////////////////////////////////
// AT89C2051超声波测距系统 //
// 2015年1月 //
// 晶振:12M //
// 系统盲区值:25厘米 //
// 测量上限:350厘米 //
////////////////////////////////////////////////////////////
#include
#include //调用_nop_()单周期延时
#define csbout P3_1 //超声波发送
#define csbint P3_2 //超声波接收
#define csbc=0.034 //超声波速度,单位:厘米/微秒
#define bg P3_0 //定义第一路报警输出端口
#define bga P3_7 //定义第二路报警输出端口
sbit LED1 = P3^3; //数码管位驱动
sbit LED2 = P3^5; //数码管位驱动
sbit LED3 = P3^4; //数码管位驱动
unsigned char csbdsbuffer[3]xm1xm2xm0;//显示标识
unsigned char convert[10]={0x0A0xFA0x4C0x680xB80x290x090x7A0x080x28};//0~9段码
unsigned int stisj1sj2sj3mqssx1; //定义程序中使用到的变量
bit clxsd; //定义程序中使用到的变量
void csbcj();
void delay(i); //延时函数
void scanLED(); //显示函数
void showOnce(); //显示循环函数
void timeToBuffer(); //显示转换函数
void main() //主函数
{
EA=1; //开中断
TMOD=0x11; //设定时器工作方式
ET0=1; //定时器0中断允许
ET1=1; //定时器1中断允许
TH0=0x00; //定时器0高位置0
TL0=0x00; //定时器0低位置0
TH1=0x9E; //定时器1高位置0x9E
TL1=0x57; //定时器1低位置0x57 即定时器1为25毫秒中继一次
csbds=0; //计时变量初值置0
csbint=1; //超声波输入检测端口置1(高电平)
csbout=1; //超声波输出端口置1
cl=0; //测量标志置1
sj1=26; //设置测量最小值为26厘米
sj2=50; //设置报警值为50厘米(可根据自己的需要在测量最大值与最小值之间任意设置)
sj3=400; //设置测量最大值为400厘米。测量最小值与最大值的确定是根据测量发送电路及接收电路的性能而确定的。
TR1=1; //启动定时器1
while(1)
{
csbcj(); //调用超声波测距程序
if(s>sj3) //测量值大于测量最大值时显示“CCC“
{
buffer[2]=0x0F; /*C*/
buffer[1]=0x0F; /*C*/
buffer[0]=0x0F; /*C*/
xsd=1; //小数点显示位置1,即不显示
}
else if(s {
buffer[2]=0xFD; /*-*/
buffer[1]=0xFD; /*-*/
buffer[0]=0xFD; /*-*/
xsd=1; //小数点显示位置1,即不显示
}
else timeToBuffer(); //调用转换段码功能模块
if(s {
bg=0; //第一路报警
bga=0; //第二路报警
}
else {bg=1;bga=1;} // 停止第一路、第一路报警
scanLED(); //调用显示函数
}
}
void scanLED() //显示功能模块
{
P1=buffer[0]; //个位数(数码管段)显示值送单片机的P1口
LED1=0; //开启百位数显示(个位数显示的位驱动有效)
delay(50); //延时
LED1=1; //关闭百位数显示
delay(50); //延时
P1=buffer[1]; //十分位数(数码管段)显示值送单片机的P1口
LED2=0; //开启十分位数显示(十分位数显示的位驱动有效)
delay(50); //延时
LED2=1; //关闭十分位数显示
delay(50); //延时
P1=buffer[2]; //百分位数(数码管段)显示值送单片机的P1口
LED3=0; //开启百分位数显示(百分位数显示的位驱动有效)
delay(50); //延时
LED3=1; //关闭百分位数显示
delay(50); //延时
if(xsd==0) //小数点显示处理
{
P1=0xF7;/*.*/ //小数点(数码管段)显示值送单片机的P1口
LED1=0; //开启小数点显示(小数点显示的位驱动有效)
delay(50); //延时
LED1=1; //关闭小数点显示
delay(50); //延时
}
}
void timeToBuffer() //转换段码功能模块
{
xm0=s/100; //求个数显示值
xm
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-10-08 21:01 AT89C2051超声波测距板源程序\
文件 10519 2015-04-22 19:56 AT89C2051超声波测距板源程序\BF-CSB-300
文件 13114 2015-02-13 16:33 AT89C2051超声波测距板源程序\BF-CSB-300.LST
文件 12751 2015-04-22 19:56 AT89C2051超声波测距板源程序\BF-CSB-300.M51
文件 10574 2015-02-13 16:33 AT89C2051超声波测距板源程序\BF-CSB-300.OBJ
文件 2166 2013-04-23 20:11 AT89C2051超声波测距板源程序\BF-CSB-300.Uv2.bak
文件 51 2015-02-13 16:33 AT89C2051超声波测距板源程序\BF-CSB-300.__i
文件 5656 2015-02-13 16:30 AT89C2051超声波测距板源程序\BF-CSB-300.c
文件 3446 2015-04-22 19:56 AT89C2051超声波测距板源程序\BF-CSB-300.hex
文件 53 2015-04-22 19:56 AT89C2051超声波测距板源程序\BF-CSB-300.lnp
文件 1287 2014-01-19 21:25 AT89C2051超声波测距板源程序\BF-CSB-300.opt.bak
文件 450 2015-04-22 20:02 AT89C2051超声波测距板源程序\BF-CSB-300.plg
文件 57463 2015-04-22 20:02 AT89C2051超声波测距板源程序\BF-CSB-300.uvopt
文件 13419 2014-01-19 22:20 AT89C2051超声波测距板源程序\BF-CSB-300.uvproj
文件 1288 2014-01-14 22:21 AT89C2051超声波测距板源程序\BF-CSB-300_Opt.Bak
文件 2047 2011-05-15 08:04 AT89C2051超声波测距板源程序\BF-CSB-300_Uv2.Bak
文件 57463 2015-02-13 16:33 AT89C2051超声波测距板源程序\BF-CSB-300_uvopt.bak
文件 5115 2002-04-16 15:32 AT89C2051超声波测距板源程序\STARTUP.A51
文件 11665 2014-01-19 22:07 AT89C2051超声波测距板源程序\STARTUP.LST
文件 749 2014-01-19 22:07 AT89C2051超声波测距板源程序\STARTUP.OBJ
目录 0 2017-10-08 21:01 超声波测距系统仿真\
文件 213300 2015-02-15 12:38 超声波测距系统仿真\Last Loaded 单片机的超声波测距系统仿真.DBK
文件 213297 2014-12-25 23:08 超声波测距系统仿真\Last Loaded 基于AT89S51单片机的超声波测距系统仿真.DBK
文件 213300 2017-10-08 21:04 超声波测距系统仿真\单片机的超声波测距系统仿真.DSN
文件 792 2017-10-08 21:04 超声波测距系统仿真\单片机的超声波测距系统仿真.PWI
文件 1126 2014-12-26 07:37 超声波测距系统仿真\基于AT89S51单片机的超声波测距系统仿真.PWI
文件 792 2014-05-06 19:14 超声波测距系统仿真\基于AT89S51单片机的超声波测距系统仿真1.PWI
相关资源
- 基本放大电路multisim仿真.ms14
- 一个labview仿真的函数信号发生器.vi
- 60个HFSS 仿真模型库
- Quartus II 15.0中仿真Altera三速以太网I
- Quartus II 15.0中仿真Altera三速以太网I
- 51单片机PWM程序,占空比、周期可调整
- 瑞利信道的仿真,包括信号的调制,
- proteus仿真 AT89C51输出各种波形
- 一种红外遥控编解码仿真
- 00
- 毕业论文之温度传感器DS18B20(源码
- 51单片机基于protues的几个仿真实例
- saber 扫频分析仿真文件
- 武汉理工大学 单片机课程设计 16*16点
- 步进电机protues仿真
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
- 数据采集系统——ADC0808的应用,单片
- DS18B20分布式多点测温的Proteus仿真
- 报文模拟仿真测试工具2.0
- MSK调制解调的systemview仿真
- PC-1D太阳能仿真软件
- 单片机数字时钟包附电路图 源程序
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
- 16X16点阵程序(附仿真图和源程序)
- 三维地形的仿真显示实现了对地图的
- ASK调制与解调VHDL程序及仿真
评论
共有 条评论