2024-07-15 01:39:23 +08:00
|
|
|
|
/**************************************************************************************
|
|
|
|
|
深圳市普中科技有限公司(PRECHIN 普中)
|
|
|
|
|
技术支持:www.prechin.net
|
|
|
|
|
|
|
|
|
|
实验名称:DS18B20温度传感器实验
|
|
|
|
|
接线说明:
|
|
|
|
|
实验现象:下载程序后,插上DS18B20温度传感器,数码管显示检测的温度值
|
|
|
|
|
注意事项:注意温度传感器的方向,在接口处我们已经用丝印画了一个凸起,
|
|
|
|
|
所以只需要将温度传感器对应插入即可
|
|
|
|
|
***************************************************************************************/
|
|
|
|
|
#include "public.h"
|
|
|
|
|
#include "uart.h"
|
|
|
|
|
#include "stdio.h"
|
2024-07-15 02:40:56 +08:00
|
|
|
|
#include "led.h"
|
2024-07-15 01:39:23 +08:00
|
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
|
* 函 数 名 : main
|
|
|
|
|
* 函数功能 : 主函数
|
|
|
|
|
* 输 入 : 无
|
|
|
|
|
* 输 出 : 无
|
|
|
|
|
*******************************************************************************/
|
|
|
|
|
void main(void)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
uart_init(0XFA);//波特率为9600
|
|
|
|
|
|
2024-07-15 02:40:56 +08:00
|
|
|
|
u8 i = 0x01;
|
2024-07-15 01:39:23 +08:00
|
|
|
|
while(1)
|
2024-07-15 02:40:56 +08:00
|
|
|
|
{
|
|
|
|
|
// 实验一:点亮LED
|
|
|
|
|
// led_all_on();
|
|
|
|
|
// delay_ms(1000);
|
|
|
|
|
// led_all_off();
|
|
|
|
|
// delay_ms(1000);
|
|
|
|
|
// 实验二:流水灯
|
2024-07-15 02:58:54 +08:00
|
|
|
|
// LED = ~i;
|
|
|
|
|
// i = rotate_left(i,1);
|
|
|
|
|
// delay_ms(1000);
|
|
|
|
|
// 实验三:蜂鸣器
|
|
|
|
|
BEEP=!BEEP;
|
|
|
|
|
delay_10us(100);
|
2024-07-15 02:40:56 +08:00
|
|
|
|
|
2024-07-15 02:58:54 +08:00
|
|
|
|
// printf("Hello,world!\r\n");
|
2024-07-15 01:39:23 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void uart(void) __interrupt (4) //串口通信中断函数
|
|
|
|
|
{
|
|
|
|
|
u8 rec_data;
|
|
|
|
|
|
|
|
|
|
if(RI)
|
|
|
|
|
{
|
|
|
|
|
RI = 0; //清除接收中断标志位
|
|
|
|
|
rec_data=SBUF; //存储接收到的数据
|
|
|
|
|
SBUF=rec_data; //将接收到的数据放入到发送寄存器
|
|
|
|
|
while(!TI); //等待发送数据完成
|
|
|
|
|
TI=0; //清除发送完成标志?
|
|
|
|
|
auto_reset(rec_data);
|
|
|
|
|
}
|
|
|
|
|
if(TI)
|
|
|
|
|
{
|
|
|
|
|
TI = 0;
|
|
|
|
|
busy = 0;
|
|
|
|
|
}
|
2024-07-15 03:07:57 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void time0(void) __interrupt (1) //定时器0中断函数
|
|
|
|
|
{
|
|
|
|
|
static u16 i;//定义静态变量i
|
|
|
|
|
TH0=0XFC; //给定时器赋初值,定时1ms
|
|
|
|
|
TL0=0X18;
|
|
|
|
|
time0_delay_cnt++;//计数器自增
|
2024-07-15 01:39:23 +08:00
|
|
|
|
}
|