STC51单片机-实验开发装置仿真-物联网应用系统设计

简介: STC51单片机-实验开发装置仿真-物联网应用系统设计

此项目是作为单片机应用系统设计,通过STC单片机实验开发装置的结构、原理电路、以及其所能实现的功能和应用,建立单片机实现多功能综合应用系统的整体概念,打下实际工程项目设计、开发、应用的较好基础。

  • 分析和熟悉实验装置的硬件结构
  • 分析和掌握实验装置的电路原理:器件工作原理、电路接口原理、端口和编址分配原理、电路的主要技术参数等
  • 分析和了解设计方法,理解器件的合理布局,装置的工艺设计及安装工艺

一、说明

系统是一个综合性单片机开发应用的系统,是以“单片机实验开发装置”为基础进行设计,包括:存储器扩展、I/O部件控制(LED、数码管、继电器、扬声器、矩阵键盘等电路。在Proteus虚拟仿真集成环境下设计了“单片机实验开发装置”的仿真电路,在Keil µVision4集成开发环境下,采用C51编程编程实现以下功能:

  • 用LED显示外部中断。LED花样自动循环显示,并自动控制显示的次数和时间间隔:①流水灯30遍;②高低4位交替闪亮10遍;③双流水灯30遍;④循环二进制加1结果1遍;⑤奇偶灯交替闪亮30遍。⑥二进制减1
  • 用矩阵式键盘的0-9数字键控制8段数码管显示0-9。将矩阵键盘的键值采用LED数码管显示出来,当按下数字键0-9时,在数码管上显示,要求每按一个新数字时,数码管显示新数字
  • 连接一个Proteus器件库有的LCD模块进行显示。在Keil µVision4集成开发环境下,采用C51编程,完成了LCD汉字动态显示控制,用按键控制显示“产教融合”的拼音

二、重点

  • 分析和熟悉实验装置的硬件结构
  • 分析和掌握实验装置的电路原理:器件工作原理、电路接口原理、端口和编址分配原理、电路的主要技术参数等
  • 在仿真调试中验证仿真电路设计的正确性和软件设计的正确性,实现设计的目标

三、实现

用LED显示外部中断

#include <reg52.h>
//#include <absacc.h>
//#define LED XBYTE[0x4000]
sbit P26 = P2^6;
sbit INT_0 = P3^2;
unsigned  int i=0;
//unsigned char key1=0,key=0;
unsigned int count=0;
unsigned char kd1=0x01,kd2=0x0f,kd3=0x03,kd4=0;kd5=0x55;kd6=0xff;
//功能:51单片机,12M,10ms延时程序 
void delay10ms(void)
{
  unsigned char  i,j,k;   //idata
    for(i=5;i>0;i--)
    for(j=4;j>0;j--)
    for(k=248;k>0;k--);
}
//500ms延时子程序(12MHZ)
void delay500ms(void)
{
    unsigned char  i,j,k;   //idata
    for(i=10;i>0;i--)
    for(j=132;j>0;j--)
    for(k=150;k>0;k--);
}
void main()
{ 
  EA=1;             //开总中断
  EX0=1;            //开外部中断0
  IT0=1;          //=1为边沿触发,至关重要
  while(1)
  {
        P1=0x0f;
      switch (count) 
         { case 0:P0=kd1; P26=1;P26=0;kd1<<=1;delay500ms();if (kd1==0) kd1=0x01;
                  break;
         case 1: P0=kd2;P26=1;P26=0;kd2=~kd2;delay500ms();
               break;
         case 2: P0=kd3;P26=1;P26=0;kd3<<=1; kd3<<=1;delay500ms();if (kd3==0x00) kd3=0x03;
               break;
         case 3: P0=kd4;P26=1;P26=0;delay500ms();kd4++;
             break;
         case 4: P0=kd5;P26=1;P26=0;delay500ms();kd5=~kd5;
             break;
         case 5: P0=kd6;P26=1;P26=0;delay500ms();kd6--;
             break;
         }
  }
}
void int0(void) interrupt 0
{
  EX0=0;
  delay10ms();
  if (INT_0==0)
    { count++;
      if (count==6) count=0;
      }
  EX0=1;
}            

用矩阵式键盘的0-9数字键控制8段数码管显示0-9

#include <reg51.h>
#include <string.h>
unsigned char data kd1=0x01,kd2=0x0f,kd3=0x03,kd4=0,key;
sbit P26=P2^6;
void delay()
{
     unsigned char data  i,j;
     for(i=0;i<255;i++)
        for(j=0;j<255;j++);
}
void main(void)
{
//   P1=0x0f; 此句放此不行,分析原因:其它语句对P1口信号有影响;
   while(1)
   { delay();        
     P1=0x0f;
   key=~P1;
   key=key&0x06;
     switch (key)
      {
    case 0:
         P0=kd1;
     P26=1;
     P26=0;
         kd1=kd1<<1;
         if (kd1==0)
            kd1=0x01;
         break;
       case 2:
         P0=kd2;
     P26=1;
     P26=0;
         kd2=~kd2; //不能用:kd2=!kd2,!不是按位取反,而是表达式的逻辑值取反。
         break;             
       case 4:
         P0=kd3;
     P26=1;
     P26=0;
//         kd3=kd3<<1; kd3=kd3<<1;
     kd3<<=1; kd3<<=1;   //注意:kd3<<1的写法不对
         if (kd3==0x00)
            kd3=0x03;
         break;
       case 6:
         P0=kd4;
     P26=1;
     P26=0;
         kd4++;
         break;
//     default: break;    //此句可不要
    }
   }
}

连接一个Proteus器件库有的LCD模块进行显示

#include <REGX52.H>
#include "LCD1602.h"
unsigned char TempBuffer[10];
void IntToStr(unsigned int t, unsigned char *str, unsigned char n) 
{
  unsigned char a[5]; char i, j;                                  
  a[0]=(t/10000)%10;         //取得整数值到数组           
  a[1]=(t/1000)%10;                                       
  a[2]=(t/100)%10;                                        
  a[3]=(t/10)%10;                                         
  a[4]=(t/1)%10;                                          
  for(i=0; i<5; i++)         //转成ASCII码               
    a[i]=a[i]+'0';                                      
  for(i=0; a[i]=='0' && i<=3; i++);                       
  for(j=5-n; j<i; j++)       //填充空格                   
    { *str=' ';  str++; }                               
  for(; i<5; i++)                                         
    { *str=a[i]; str++; }  //加入有效的数字            
  *str='\0'; 
} 
void Delay1ms(unsigned int count)
{
  unsigned int i,j;
  for(i=0;i<count;i++)
  for(j=0;j<120;j++);
}
main()
{
  unsigned int Count = 0;
  LCD_Initial();
  GotoXY(0,0);
  Print("ChanJiaoRongHe");
  GotoXY(0,1);
  Print("        Count");
  while(1)
  {
    IntToStr(Count++,&TempBuffer[0],5);
    GotoXY(3,1);
    Print(&TempBuffer[0]);
    Delay1ms(100);
  }
}

四、下载

详见:STC51单片机-实验开发装置仿真-物联网应用系统设计项目开发


相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
29天前
|
存储 传感器 物联网
新技术驱动未来:区块链、物联网、虚拟现实的蓬勃发展与创新应用
随着科技的迅猛发展,新兴技术如区块链、物联网、虚拟现实等正成为当今社会关注的焦点。本文将探讨这些新技术的发展趋势和广泛应用场景,展示它们在不同领域中的潜力与创新价值。
|
1月前
|
传感器 监控 IDE
基于单片机的温度监控系统设计
基于单片机的温度监控系统设计
55 0
|
7天前
|
供应链 安全 物联网
未来交织:区块链、物联网和虚拟现实的技术革新与融合应用
【4月更文挑战第13天】 在数字化时代的浪潮中,新兴技术正以前所未有的速度重塑着世界。本文将深入分析区块链技术的去中心化信任机制、物联网(IoT)的智能连接网络,以及虚拟现实(VR)的沉浸式体验如何独立发展并开始交汇融合,共同构建一个更加智能、安全和互动的未来。我们将探讨这些技术的发展趋势,揭示它们在各行各业的潜在应用场景,并讨论它们如何联合起来推动第四次工业革命。
|
18天前
|
供应链 监控 物联网
新技术趋势与应用:区块链、物联网和虚拟现实的未来
【4月更文挑战第2天】随着科技的飞速发展,新兴技术如区块链、物联网和虚拟现实等正在逐渐改变我们的生活。本文将探讨这些技术的发展趋势和应用场景,以及它们如何影响我们的日常生活和工作。
|
18天前
|
传感器 物联网 区块链
新兴科技之光:区块链、物联网与虚拟现实的发展趋势与应用探索
在当今数字化浪潮的推动下,新兴技术如区块链、物联网和虚拟现实正以惊人的速度发展。本文将深入探讨这些技术的发展趋势和广泛应用场景,揭示它们在改变着我们生活和工作方式的过程中所发挥的重要作用。区块链技术的去中心化特性使其在金融、物流和医疗等领域展现出巨大潜力,物联网则将连接万物,促进智能城市和智能家居的发展,而虚拟现实技术正逐渐赋能于教育、医疗和娱乐等各个领域。这些新兴技术的蓬勃发展必将为人类社会带来更多的创新和进步。
10 0
|
24天前
|
安全 物联网 区块链
新兴科技的潜力与挑战:区块链、物联网、虚拟现实的发展趋势与应用探讨
当谈到新兴科技时,人们往往会驻足于区块链、物联网和虚拟现实等领域。这些技术正在以前所未有的速度改变着我们的生活方式、商业模式和社会结构。本文将从技术发展的角度探讨这些新兴技术的潜力与挑战,并深入分析它们在不同领域的应用场景和前景。
11 0
|
24天前
|
供应链 监控 物联网
新技术浪潮:区块链、物联网与虚拟现实的发展趋势与应用探讨
在当今数字化时代,新兴技术如区块链、物联网和虚拟现实正以惊人的速度改变着我们的生活和工作方式。本文将探讨这些新技术的发展趋势和应用场景,分析它们在不同领域中的潜力和影响。
18 4
|
26天前
|
供应链 物联网 5G
新兴科技探索:区块链、物联网、虚拟现实的未来应用前景
在当今数字化快速发展的时代,新兴技术如区块链、物联网、虚拟现实等正逐渐改变我们的生活方式和商业模式。本文将深入探讨这些新技术的发展趋势和多样化应用场景,展望其在未来的巨大潜力。
|
28天前
|
物联网 区块链 vr&ar
新兴科技驱动未来发展:区块链、物联网和虚拟现实的趋势与应用探讨
随着科技的不断进步,新兴技术如区块链、物联网和虚拟现实正日益成为各行业关注的焦点。本文将就这些新兴技术的发展趋势和应用场景展开探讨,从而揭示它们在未来社会发展中的重要作用。
15 3
|
29天前
|
安全 物联网 区块链
新兴科技引领未来发展:探索区块链、物联网、虚拟现实的趋势与应用
在当今数字化飞速发展的时代,新兴技术如区块链、物联网、虚拟现实正逐渐成为引领未来发展的关键驱动力。本文将深入探讨这些技术的发展趋势和多样化应用场景,揭示它们对各行业的革新与影响。

热门文章

最新文章