• 大小: 133KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-01-27
  • 语言: 其他
  • 标签: 仿真  

资源简介

本仿真是对单片机系统及程序进行仿真,仿真时借用了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

评论

共有 条评论