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
目录
相关文章
|
2天前
|
供应链 安全 物联网
新技术趋势与应用:区块链、物联网和虚拟现实的未来发展
本文将探讨新兴技术如区块链、物联网和虚拟现实的发展趋势和应用场景。区块链技术作为一种分布式数据库,具有去中心化、安全透明等特点,被广泛应用于金融、供应链等领域。物联网技术通过将物品与互联网连接,实现智能化管理和控制,应用于智能家居、智能交通等场景。虚拟现实技术则通过模拟虚拟环境,提供沉浸式体验,应用于游戏、教育等领域。这些技术的发展将深刻影响我们的生活和社会。
9 2
|
5天前
|
安全 物联网 区块链
未来已来:区块链技术在物联网与虚拟现实中的革新应用
【8月更文挑战第66天】随着科技的飞速发展,区块链、物联网(IoT)和虚拟现实(VR)等技术逐渐从概念走向现实,它们之间的融合预示着一个更加智能、互联的未来。本文将探讨这些技术的发展趋势,并通过实际代码示例,展示它们如何相互促进,共同构建一个更加安全、高效的数字生态系统。
46 19
|
3天前
|
传感器 存储 运维
智能城市中的物联网技术应用与挑战
本文旨在探讨智能城市中物联网(IoT)技术的应用及其面临的主要挑战。通过分析当前智能城市建设中物联网的实际应用案例,揭示其在提高城市管理效率、优化资源使用等方面的显著效果。同时,本文指出了在数据安全、隐私保护和技术标准统一等方面存在的问题,并提出了相应的解决思路和建议。希望通过对这些问题的深入分析,为未来智能城市的可持续发展提供参考。
|
8天前
|
传感器 安全 物联网
新技术趋势与应用随着科技的不断进步,新兴技术如区块链、物联网和虚拟现实等正迅速改变我们的世界。这些技术不仅在各自领域内展现出强大的潜力,还在相互融合中催生出更多创新应用场景。本文将探讨这些新兴技术的发展趋势及其在各行业中的应用前景,通过通俗易懂的语言和清晰的条理,带领读者了解其内涵和意义。
本文旨在探讨区块链技术、物联网和虚拟现实等新兴技术的发展趋势及其在各个行业的应用场景。通过分析这些技术的独特优势和潜在缺陷,揭示它们对未来社会和经济可能带来的深远影响。同时,结合实际案例,展示这些技术如何解决现实问题,为各行各业提供新的发展机遇。
27 4
|
8天前
|
供应链 安全 物联网
新技术趋势与应用:区块链、物联网与虚拟现实的融合与创新
本文探讨了新兴技术如区块链、物联网和虚拟现实(VR)的发展趋势及其在不同领域的应用场景。通过分析这些技术的特性,揭示了它们在金融、医疗、制造等行业的潜在影响力。文章还讨论了这些技术相互融合的可能性,以及如何共同推动产业变革。 #
|
6天前
|
存储 安全 物联网
未来触手可及:区块链技术、物联网与虚拟现实的融合趋势
【9月更文挑战第34天】本文将探讨当前最具变革性的三大技术——区块链、物联网(IoT)和虚拟现实(VR)——如何独立及联合塑造我们的未来。我们将深入分析每种技术的内在工作机制、发展趋势,以及它们如何相互交织创造出新的应用场景,进而推动社会进步和经济发展。
|
4天前
|
供应链 物联网 区块链
未来技术的浪潮之下——区块链、物联网与虚拟现实的融合与发展
【9月更文挑战第35天】在技术不断进步的今天,新兴技术如区块链、物联网和虚拟现实正在改变我们的生活方式。本文将深入探讨这些技术的发展趋势,以及它们如何在不同领域中应用,从而带来创新和便利。我们将通过具体的例子来展示这些技术如何相互融合,共同推动社会向前发展。
|
6天前
|
存储 供应链 物联网
未来已来:区块链、物联网与虚拟现实技术的融合创新
【9月更文挑战第34天】本文将深入探索当前技术前沿的三大热点——区块链、物联网和虚拟现实,分析它们各自的发展趋势以及在实际应用中的潜力。我们将通过浅显易懂的语言和生动的例子,展示这些技术是如何相互促进,共同塑造未来的数字世界。
|
7天前
|
存储 安全 物联网
未来触手可及:探索区块链、物联网和虚拟现实技术的融合与革新
【9月更文挑战第33天】 在科技的浪潮中,新技术如区块链、物联网(IoT)和虚拟现实(VR)不断涌现,它们正逐步改变我们的生活方式、工作模式和社会结构。本文将深入探讨这些技术的最新发展趋势,并展示它们如何在实际应用中相互交织,共同塑造一个更加智能、互联的未来世界。
|
2天前
|
供应链 监控 物联网
未来已来:探索区块链技术与物联网、虚拟现实的融合创新
在这篇文章中,我们将穿越技术的迷雾,深入探讨区块链、物联网(IoT)、和虚拟现实(VR)这三大技术的最新发展动态。我们将一起见证它们如何从独立的技术分支,逐渐走向深度融合,共同构建起一个全新的数字生态系统。通过分析这些技术的内在联系和相互作用,我们能够预见一个更加智能、互联的未来世界。文章将提供对这些技术趋势的深刻见解,并展示它们在现实世界中的应用场景,从而揭示它们对未来社会的潜在影响。
10 2