基于单片机的可存储数字温度计的系统,要求如下:(1)该系统自带存储温度的功能,必须使用数码管动态显示模块、存储器模块。(2)完整的描述系统实现的原理并画出实现框图或流程图,,并用C51实现
时间: 2024-03-23 09:41:05 浏览: 136
好的,下面是基于单片机的可存储数字温度计系统的实现原理和流程图,以及C51的程序实现。
1. 实现原理
该系统通过读取温度传感器的数据,并将其存储到存储器模块中,同时使用数码管动态显示模块将当前温度值显示出来。系统的主要实现流程如下:
温度传感器 -> 单片机 -> 存储器模块 -> 数码管动态显示模块
2. 实现流程图
![基于单片机的可存储数字温度计的系统实现流程图](https://img-blog.csdn.net/20180917095747856?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbm9fYmFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)
3. 程序实现
首先,我们需要定义一些常数和变量,如下所示:
```
#include <reg52.h>
#define DSPORT P0 // 数码管动态显示端口
#define DS1 0x01 // 数码管的第1位
#define DS2 0x02 // 数码管的第2位
#define DS3 0x04 // 数码管的第3位
#define DS4 0x08 // 数码管的第4位
#define DS5 0x10 // 数码管的第5位
#define DS6 0x20 // 数码管的第6位
#define DS7 0x40 // 数码管的第7位
#define DS8 0x80 // 数码管的第8位
#define ADDR P2 // 存储器模块地址端口
#define DATA P1 // 存储器模块数据端口
#define TEMP_ADDR 0x00 // 存储温度的地址
unsigned char code tab[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66,
0x6d, 0x7d, 0x07, 0x7f, 0x6f}; // 数码管显示表
unsigned char temp = 0; // 记录当前温度值
```
接下来,我们需要定义一些函数,如下所示:
```
// 数码管显示函数
void ds_display(unsigned char ds_num, unsigned char ds_data)
{
DSPORT = ds_num; // 选择数码管
DATA = tab[ds_data]; // 数码管显示表
}
// 存储器读函数
unsigned char mem_read(unsigned char addr)
{
unsigned char dat;
ADDR = addr; // 存储器模块地址
dat = DATA; // 读取存储器中的数据
return dat;
}
// 存储器写函数
void mem_write(unsigned char addr, unsigned char dat)
{
ADDR = addr; // 存储器模块地址
DATA = dat; // 写入数据到存储器中
}
```
然后,我们需要实现主函数,如下所示:
```
void main()
{
unsigned char i;
temp = mem_read(TEMP_ADDR); // 从存储器中读取温度值
while(1)
{
// 数码管动态显示当前温度值
ds_display(DS1, temp % 10);
ds_display(DS2, temp / 10 % 10);
ds_display(DS3, 10);
ds_display(DS4, 12);
ds_display(DS5, 0);
ds_display(DS6, 12);
ds_display(DS7, 12);
ds_display(DS8, 12);
// 延时
for(i = 0; i < 20; i++);
// 从温度传感器读取当前温度值
temp = ...; // 读取温度传感器数据
// 将当前温度值写入存储器中
mem_write(TEMP_ADDR, temp); // 写入当前温度值到存储器中
}
}
```
在主函数中,我们首先从存储器中读取温度值,并使用数码管动态显示出来。然后,通过温度传感器读取当前温度值,并将其写入存储器中。循环执行以上操作,实现可存储数字温度计的功能。
以上是基于单片机的可存储数字温度计系统的实现原理和流程图,以及C51的程序实现。需要注意的是,程序中的一些细节和具体实现方式可能因为硬件环境和需求而有所不同,需要根据实际情况进行相应的调整和改进。
阅读全文