资源简介
单片机,C语言代码,数码管显示模块,温度感应模块,软硬件结合
代码片段和文件信息
#include //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include “eeprom52.h“
//数码管段选定义 0 1 2 3 4 5 6 7 8 9
uchar code smg_du[]={0xc00xf90xa40xb00x990x920x820xf80x800x90
0x880x830xc60xa10x860x8e0xff}; //断码
//数码管位选定义
uchar code smg_we[]={0xef0xdf0xbf0x7f};
uchar dis_smg[8] = {0xc00xf90xa40xb00x990x920x820xf8};
uchar smg_i = 3; //显示数码管的个位数
sbit dq = P2^4; //18b20 IO口的定义
sbit beep = P2^3; //蜂鸣器IO口定义
bit flag_lj_en; //按键连加使能
bit flag_lj_3_en; //按键连3次连加后使能 加的数就越大了
uchar key_timeflag_value; //用做连加的中间变量
bit key_500ms ;
uint temperature ; //
bit flag_300ms ;
uchar menu_1; //菜单设计的变量
uint t_high = 300t_low = 100; //温度上下限报警值
/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{
uint ij;
for(i=0;i for(j=0;j<120;j++);
}
/***********************小延时函数*****************************/
void delay_uint(uint q)
{
while(q--);
}
/***********************数码显示函数*****************************/
void display()
{
static uchar i;
i++;
if(i >= smg_i)
i = 0;
P1 = 0xff; //消隐
P3 = smg_we[i]; //位选
P1 = dis_smg[i]; //段选
}
/******************把数据保存到单片机内部eepom中******************/
void write_eeprom()
{
SectorErase(0x2000);
byte_write(0x2000 t_high % 256);
byte_write(0x2001 t_high / 256);
byte_write(0x2002 t_low % 256);
byte_write(0x2003 t_low / 256);
byte_write(0x2055 a_a);
}
/******************把数据从单片机内部eepom中读出来*****************/
void read_eeprom()
{
t_high = byte_read(0x2001);
t_high <<= 8;
t_high |= byte_read(0x2000);
t_low = byte_read(0x2003);
t_low <<= 8;
t_low |= byte_read(0x2002);
a_a = byte_read(0x2055);
}
/**************开机初始化保存的数据*****************/
void init_eeprom()
{
read_eeprom(); //先读
if(a_a != 1) //新的单片机初始单片机内问eeprom
{
t_high = 300;
t_low = 100;
a_a = 1;
write_eeprom(); //保存数据
}
}
/***********************18b20初始化函数*****************************/
void init_18b20()
{
bit q;
dq = 1; //把总线拿高
delay_uint(1); //15us
dq = 0; //给复位脉冲
delay_uint(80); //750us
dq = 1; //把总线拿高 等待
delay_uint(10); //110us
q = dq; //读取18b20初始化信号
delay_uint(20); //200us
dq = 1; //把总线拿高 释放总线
}
/*************写18b20内的数据***************/
void write_18b20(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{ //写数据是低位开始
dq = 0; //把总线拿低写时间隙开始
dq = dat & 0x01; //向18b20总线写数据了
delay_uint(5); // 60us
dq = 1; //释放总线
dat >>= 1;
}
}
/*************读取18b20内的数据***************/
uchar read_18b20()
{
uchar ivalue;
for(i=0;i<8;i++)
{
dq = 0; //把总线拿低读时间隙开始
value >>= 1; //读数据是低位开始
dq = 1; //释放总线
if(dq == 1) //开始读写数据
value |= 0x80;
delay_uint(5); //60us 读一个时间隙最少要保持60us的时间
}
return value; //返回数据
}
/*****
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-01-05 20:43 程序、仿真和原理图\程序\
文件 3081 2013-11-26 14:44 程序、仿真和原理图\程序\eeprom52.h
文件 18580 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示
文件 1060 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示.build_log.htm
文件 8813 2014-02-27 12:48 程序、仿真和原理图\程序\温度控制数码管显示.c
文件 7941 2012-12-13 21:53 程序、仿真和原理图\程序\温度控制数码管显示.c.bak
文件 6339 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示.hex
文件 68 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示.lnp
文件 813 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示.LST
文件 27252 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示.M51
文件 22299 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示.OBJ
文件 257 2014-03-03 16:33 程序、仿真和原理图\程序\温度控制数码管显示.plg
文件 85242 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示.uvgui.Lenovo
文件 5771 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示.uvopt
文件 13910 2018-12-30 17:06 程序、仿真和原理图\程序\温度控制数码管显示.uvproj
文件 55281 2014-02-27 20:18 程序、仿真和原理图\程序\温度控制数码管显示_uvopt.bak
文件 0 2013-07-03 16:28 程序、仿真和原理图\程序\温度控制数码管显示_uvproj.bak
目录 0 2019-05-06 16:09 程序、仿真和原理图\仿真图\
文件 131740 2013-12-21 11:14 程序、仿真和原理图\仿真图\Last Loaded 温度上下限数码管.DBK
文件 6339 2013-12-24 16:09 程序、仿真和原理图\仿真图\温度控制数码管显示.hex
文件 131812 2014-03-03 16:36 程序、仿真和原理图\仿真图\温度上下限数码管.DSN
文件 3000 2019-05-14 10:45 程序、仿真和原理图\仿真图\温度上下限数码管.pdsprj.DESKTOP-9TJPPFC.Batman.workspace
文件 1626 2014-07-02 20:28 程序、仿真和原理图\仿真图\温度上下限数码管.PWI
目录 0 2019-05-06 16:09 程序、仿真和原理图\原理图\
文件 222208 2014-03-06 15:00 程序、仿真和原理图\原理图\DXP格式 温度上下限 蜂鸣器报警.SchDoc
文件 75782 2014-05-02 12:14 程序、仿真和原理图\原理图\DXP格式 温度上下限 蜂鸣器报警.SchDocPreview
文件 220887 2014-03-06 15:01 程序、仿真和原理图\原理图\PDF格式 温度上下限 蜂鸣器报警.pdf
文件 51468 2014-03-06 15:00 程序、仿真和原理图\原理图\protel99格式 温度上下限 蜂鸣器报警.sch
文件 26624 2014-03-06 15:01 程序、仿真和原理图\原理图\Word格式.doc
文件 179 2013-12-07 15:35 程序、仿真和原理图\原理图\打开方式.txt
相关资源
- stm32库函数代码自动生成器V1.2
- 单片机电子密码锁
- 单片机程序(附初级、中级、高级共
- 按键可调万年历(单片机程序)
- 51单片机数码管四层电梯模拟系统
- MPU6050读取原始加速度、角速度及温度
- 基于51单片机的温控系统
- 一个模糊PID温度控制算法源代码
- 51单片机protues文件(KST-51.DSN)
- 51单片机交通灯设计
- 基于51单片机的简易计算器
- 单片机按键长按
- 基于51单片机多路超声波报警设计
- 51单片机红外智能小车
- 单片机控制绕线机.c
- Arduino-LM35-LCD1602数字温度计实验.doc
- qt上位机采集51单片机温湿度数据
- AVR单片机SPI通讯程序 (C语言源代码)
- BP神经网络C语言工程当前最终版
- 汉字取模软件----单片机使用必备
- 基于51单片机射频RFID卡考勤上课上班
- 可以在单片机上计算的BP神经网络C语
- 基于51单片机的888光立方设计.rar
- 单片机C语言与PROTUES仿真技能实训
- DES和3DES加密算法,C语言,适用于单片
- 51单片机DS18B20温度计C语言程序附详解
- 郭天祥51单片机C语言教程配套光盘
- 新概念51单片机C语言教程第2版郭天祥
- C语言实现51单片机和ADC0809芯片的AD模
- C语言实战——基于51单片机的RFID射频
评论
共有 条评论