标题: 基于stm32的oled温度采集源程序Proteus仿真 [打印本页]

作者: 雨后无语    时间: 2021-4-18 16:19
标题: 基于stm32的oled温度采集源程序Proteus仿真
这是我最近刚做的oled仿真设计,基于proteus8.11版本(其他版本打不开的),能够显示温度、调节阈值。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


部分单片机代码如下:

#include "sys.h"
#include "usart.h"               
#include "delay.h"        
#include "led.h"
#include "key.h"
#include "oled.h"
#include "beep.h"
#include "rtc.h"
#include "ds18b20.h"

u8 year_buf[4];
u8 month_buf[2];
u8 day_buf[2];
u8 temp_buf[4];
u8 war[8];
u8 text[8];
u8 yuzhi=30;
int main(void)
{               
        short tem,tem1;
        u8 B1_Flag=0;
        u16 temp;
        u8 key;
        delay_init();             //延时初始化
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  Gpio_IIC_Init();
        beep_Init();
        Key_Init();
        OLED_Init();
        delay_ms(200);
        OLED_CLS();
        OLED_Refresh();

        while(1)
        {
                tem = DS18B20_Get_Temp_Pin_11();        //获取温度
                if(        tem>0)
                {        
                        sprintf((char *)war,"Tem:%d%d.%d",tem/100,tem%100/10,tem%10);
                }
                else
                {        
                        tem1=(int)tem;
                        tem1=abs(tem1);
                        tem1=-(tem);
                        tem1=tem1+1;
                        sprintf((char *)war,"Tem:-%d%d.%d",tem1/100,tem1%100/10,tem1%10);
               
                }
                OLED_P8x16Str(8,2,war);

                sprintf((char *)war,"yuzhi:%d",yuzhi);
                OLED_P8x16Str(8,0,war);
                if(tem>yuzhi*10)
                {
                        PBeep=0;
                }
                if(tem<=yuzhi*10)
                {
                        PBeep=1;
                }


                key=KEY_Scan();
                if(key!=0)
                {
                        switch(key)
                        {
                                case 1:
                                                                                        yuzhi++;        
                        }

Keil代码与Proteus8.13仿真下载:
程序.7z (230.27 KB, 下载次数: 607)
仿真.zip (80.98 KB, 下载次数: 643)



作者: Kevin123321    时间: 2021-5-7 13:11
找了很久终于找到了,感谢楼主!
作者: 殊荣125    时间: 2021-5-25 15:46
protues8.11的安装包哪里找啊

作者: 51mcu    时间: 2021-6-13 21:15
仿真可以,但是实物温度显示为0,求大佬指导一下
作者: 641572636    时间: 2021-6-15 18:42
51mcu 发表于 2021-6-13 21:15
仿真可以,但是实物温度显示为0,求大佬指导一下

我的实物温度显示也一直为0,我以为是DS18B20坏了,然后我换了两个都显示不出来
作者: 51mcu    时间: 2021-7-9 12:54
641572636 发表于 2021-6-15 18:42
我的实物温度显示也一直为0,我以为是DS18B20坏了,然后我换了两个都显示不出来

试验了一下,是程序问题。
作者: TK加菲    时间: 2021-10-4 13:28
请问一下 元件库里没有OLED12864I2C怎么办
作者: TK加菲    时间: 2021-10-4 13:29
请问一下 元件库里没有OLED12864I2C 怎么办 需要去哪里下载
作者: liuyiyi    时间: 2021-12-3 15:52
楼主,提示要Proteus8.11才能打开呢
作者: 轻染    时间: 2021-12-21 19:54
TK加菲 发表于 2021-10-4 13:29
请问一下 元件库里没有OLED12864I2C 怎么办 需要去哪里下载

兄弟你在元器件库找到了吗
作者: SJH0206    时间: 2022-4-20 20:44
为什么一打开OLED显示日期,怎么才能显示温度啊
作者: zhaxiaobian_er    时间: 2022-5-1 07:43
为你的分享精神点赞,谢谢你。
作者: mick32    时间: 2022-5-1 17:07
Working nice with Proteus 8.12 sp0 Load 65%
Thanks for project
作者: kr2199    时间: 2022-9-24 09:30
楼主有没有日历时钟的代码

捕获.PNG (13.08 KB, 下载次数: 80)

捕获.PNG

作者: cooldog123pp    时间: 2022-10-30 09:04
多谢分享,比较一下代码和我自己有什么区别
作者: bikerljl23    时间: 2023-1-12 16:40
请问一下,oled的仿真文件是在哪里找的得嘞,能不能分享下嘞
作者: BenAndrew    时间: 2023-1-14 11:47
有人元器件解决了吗

作者: 已飞的鹰    时间: 2023-4-12 12:23
641572636 发表于 2021-6-15 18:42
我的实物温度显示也一直为0,我以为是DS18B20坏了,然后我换了两个都显示不出来

程序是阉割版,程序不完整
作者: cza520    时间: 2024-3-28 21:28
51mcu 发表于 2021-6-13 21:15
仿真可以,但是实物温度显示为0,求大佬指导一下

你们解决了吗

作者: kk17328    时间: 2024-3-29 18:38
51mcu 发表于 2021-6-13 21:15
仿真可以,但是实物温度显示为0,求大佬指导一下

你是用8.11吗?我用8.15打开,采样都是0,还以为是8.15不匹配。是程序的问题吗?

作者: 有半岛铁盒    时间: 2024-4-8 22:06
TK加菲 发表于 2021-10-4 13:29
请问一下 元件库里没有OLED12864I2C 怎么办 需要去哪里下载

兄弟 componentsearchengine这里可以下载模型 原理图都可以显示 添加入库后 但是仿真报错





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1