找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6785|回复: 0
打印 上一主题 下一主题
收起左侧

单片机外部中断控制流水灯实验说明书 面包板搭建电路

[复制链接]
跳转到指定楼层
楼主
ID:417592 发表于 2019-1-12 21:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

实验中断显示控制

  • 项目功能

单片机控制led灯亮和灭,led灯初始状态从左到右两个灯间隔一个灯循环亮灭,然后从右到左循环亮灭,,当按下按键,led灯全亮,然后全灭。然后再恢复循环。

二、实验过程

(一)实验项目的方案分析

1.设计原理

STC12C5A60S2单片机内部包括微处理器、存储器(存放程序指令或数据的ROM、RAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。它们通过地址总线、数据总线和控制总线连接起来。

本实验充分利用了8051芯片的I/O引脚。系统已采用STC12C5A60S2系列单片机为中心器件来设计数码管显示系统,实现数码管循环显示。

2.器件配置清单

表1器件配置表

名称

型号

数值

数量

面包板

MB-102

165*55*10(mm)

1

单片机

Stc12c5a60s2


1

按键

直插式


1

公对母连接线

40P彩色杜邦线

21cm

1

公对公连接线



1

Led

直插式

5mm

1


(二)实验项目的硬件电路设计

    通过Proteus仿真电路软件搭建电路,电路图如图所示。


图1硬件设计图

(三)实验项目的程序设计

1、C51程序编写


2、keil软件调试截图

   通过Keil软件进行C51控制程序的编写,通过不断调试修改,最终的调试好的Keil

程序截图如图2所示。

图2调试无措的Keil程序

(四)实验项目的虚拟仿真

打开Keil C软件将上面程序输入,调试无误后编译输出".hex"文件,打开Proteus软件,将之前编译好的".hex"文件加入到芯片中,开始运行仿真。


(五)实验项目的实际验证电路及验证结果

    将单片机C51程序编译无误后,生成HEX文件,通过STC-ISP下载到单片机中,下载的软件界面如图4所示,搭建的实际电路如图5所示。

图4下载HEX文件到单片机


图5面包板搭建的实际电路


以下为实际效果的截图:


总结:

感觉中断程序比前两个程序流水灯以及数码管显示要难一些,写程序过程中遇到当按下按键,led亮7个,有一个没亮,检查发现是写错了。改正后又有一些其他问题,在经过反复改正后,终于完成了。


单片机源程序如下:


  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define              LED P0
  6. sbit key=P3^2;
  7. uint i;                                      
  8. void delay_1ms(uint t)
  9. {
  10.   uint i;                                                      
  11.   while(t--)                                                      
  12.   for(i=0;i<120;i++);                                                         
  13. }
  14. main()
  15. {
  16. EA=1;
  17. EX0=1;
  18. IT0=1;                                                                                   
  19. while(1)                                                                                                                  
  20. {
  21.   LED=0xfa;                                                                                                   
  22.   for(i=0;i<5;i++)                                                                                    
  23.   {
  24.   delay_1ms(1000);                                                                       
  25.   LED=(LED<<1)|0x01;                                                                       
  26.   }                                                                                                                                             
  27.   for(i=0;i<5;i++)                                                                       
  28.   {
  29.   delay_1ms(1000);                                                                       
  30.   LED=(LED>>1)|0x80;                                                                       
  31.   }                                                                                                                                          
  32. }
  33. }
  34. void EX_INT0() interrupt 0
  35. { P1=0X00;
  36. delay_1ms(1000);
  37.   P1=0XFF;
  38.   }
复制代码

完整的Word格式文档51黑下载地址:

外部中断说明书.doc (1.21 MB, 下载次数: 15)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表