1.求超声波发生器的单机单片机源代码
2.如何将单片机程序编译为c语言源代码?
3.单片机语言include<reg52.h>是什么意思
求超声波发生器的单片机源代码
//设计:ch
//模块使用方法:一个控制口发一个US以上的高电平,就可以在接收口等待高电平输出.
//一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测
//距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了
//波特率(晶振M)
#include <reg.h>
#include <intrins.h> //调用 _nop_(); 延时函数
#define uchar unsigned char
#define uint unsigned int
sbit trigger=P2^0; //触发引脚
sbit rx=P2^1; //接收引脚
sbit key=P3^6; //按键
unsigned char key_scan(void);
uchar chaoshengbo(void);
void uart_init(void);
void uart(uchar distance);
void chaoshengbo_init(void);
uchar distance; //距离
void main()
{
uart_init(); //串口初始化
chaoshengbo_init(); //超声波初始化
uart('A') ; //串口发送'A'
while(1)
{
if (key_scan() == 1) //按键按下
{
distance = chaoshengbo(); //超声波测距
uart(distance); //串口发送距离 单位厘米
}
}
}
unsigned char key_scan(void) //按键查询
{
unsigned char on = 0,i;
while(1)
{
if(key==0) //判断是否按下
{
for(i=0;i<;i++); //软件延时
if(key==0) //再次判断是否按下
{
on = 1;
break; //跳出循环
}
}
}
while(key==0);
return 1;
}
void uart_init(void) //串口初始化,用的片源是T1
{
TMOD=TMOD & 0x0f | 0x;
TH1=0Xfd; //波特率(晶振M)
TL1=0Xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
}
void uart(uchar distance) //发送一个字节
{
SBUF = distance;
while(!TI);
TI = 0;
}
void chaoshengbo_init(void) //超声波初始化
{
trigger = 0;
}
uchar chaoshengbo(void) //超声波测距,返回厘米值
{
trigger=1; //给至少us的码单码高电平信号
_nop_();
_nop_();
_nop_(); //延时
_nop_();
_nop_();
_nop_();
TMOD=TMOD & 0xf0 |0x; //T0初始化
TH0=0X0;
TL0=0X0;
trigger=0;
while(!rx); //等待上升沿
EA = 0; //关中断
TR0=1; //开启T0定时器
while(rx); //等待下降沿
TR0=0; //关闭T0定时器
EA = 1; //开中断
return (TH0*+TL0)*0./2; //计算距离 单位厘米
}
如何将单片机程序编译为c语言源代码?
1、首先在电脑桌面中,机游源码管理git双击“Keil4”图标打开软件。戏源 2、单机点击上部菜单栏中的片源“工程”,在下拉菜单中选择“新建工程文件”。码单码 3、机游把工程文件保存到目标文件夹里去,戏源工程文件命名可以随意写入一些数字。单机avro源码编译 4、片源选择单片机类型,码单码根据实际情况进行选择,机游例如“Atmel”中的戏源“C”。 5、consul 源码语言点击“文件”,在“文件”的下拉菜单中选择新建。 6、最后把新建的文件保存到之前的工程组里去,文件命名的go web 源码时候在后面加上“.c”就可以自动形成c文件。单片机语言include<reg.h>是什么意思
在单片机编程领域,`#include ` 这行代码具有特定含义。这是一个预处理指令,用于在实际编译前将名为 "reg.h" 的头文件包含到当前的源代码文件中。头文件 "reg.h" 针对系列的openstack源码大全单片机,其中定义了一系列与硬件相关的宏、寄存器类型以及一些常用的函数原型。
通过包含 "reg.h",程序员能够直接使用头文件中定义的符号,如端口地址、特殊功能寄存器(SFRs)等,而无需在源代码中手动定义这些常量。这不仅简化了代码编写过程,也使得代码更加清晰易读。
例如,头文件中可能会定义 `SFR P0 = 0x`,这表示P0端口的地址是0x。使用 `P0` 而不是直接的地址值,使得代码更加直观,并且易于维护。
总结来说,`#include ` 的作用是引入与系列单片机相关的硬件定义和操作函数,让开发者能够以更高的抽象层次与单片机交互,提升编程的效率和代码的可维护性。