深对51单片机及其接口电路的理解,掌握定时/计数器、中断的应用编程技术及程序的调试方法。

2.实验内容

利用C8051F310单片机设计一个倒计时定时器,功能要求如下:

模式1:基本功能

主要技术指标要求如下:

1.  定时时间为9秒,定时精度为1秒 。

2.  在LED数码管上显示剩余时间。

3.  时间到0时,蜂鸣器鸣响1次(0.5秒钟)。

4.  通过KINT键实现启动和暂停功能,暂停时D9灯亮。

5.  利用单片机内部定时器定时,KINT键输入和定时器控制均要求采用中断方式。

模式2:提高要求

1. 定时时间可通过键盘设定,最大为200秒。

2. 其它个性化设计。

二、设计思路

1.给主程序,T0、T1中断和外部KINT键中断设置入口地址;

2.初始化,将所要用到的寄存器都清零,将T0,T1的中断都开启,都设为方式1模式,并装填各自的TH和TL,设好定时时间;

3.采用数据指针,指向TABLE表,TABLE表中存取数码管中0-9的转换值;

4.进行键盘扫描程序,若无键盘按下,则继续主程序;若有键盘按下,进入按键识别程序,识别出具体哪个按键按下。若为数字键,则将相应的数字暂存人R6;若为功能键,则转入相应的功能程序。当有键盘按下时,R5自加1,当R5=2时,将其清零;

5.当为数字键时,将按下的键值,根据R5的大小,将R6转存入R2、R3、R4即百、十、个位。当R5=0,R6值转存入R2;当R5=1,R6值转存入R3;当R5=2,R6值转存入R4;

6.控制P0.6,P0.7的0/1值,根据需求点亮数码管;

7.当KINT键按下时,开启T0计时控制位,T0开始计时。计时1秒后,秒数减一。数码管上显示的数字相应的减一;

8.当KINT键再次按下,计时停止,关闭T0计时控制位,T0停止计时,数码管显示的数字不变。

9.当计时到达000时,关闭T0计时,开启T1计时,开启蜂鸣器,蜂鸣0.5秒后,关闭T1计时和蜂鸣器。

10.当为功能键时,转入功能子程序,完成相应的功能。

三、资源分配

R0: 用于300ms延迟循环

R1: 用于10ms消抖循环

R2:存取数码管百位

R3:存取数码管十位

R4:存取数码管个位

R5:用于控制暂存值R5的转存到R2或R3或R4

R6:用于键盘输入值暂存

R7:用于个性化设计延时

000BH:T0中断入口地址

0013H:外部中断KINT键入口地址

001BH:T1中断入口地址

P0.0:控制LED灯D9的开关

P0.1:控制外部中断KINT键

P0.6:数码管位位控

P0.7:数码管位位控

P1:控制数码管段的开关

P2:P0.0-P0.3行扫描,P0.4-P0.7列扫描

P3.1:控制蜂鸣器

TABLE:数码管0-9数字转换表

四、流程图主程序:

判断有无按键按下子程序

扫描子程序

百十个赋值子程序

键盘释放子程序

10ms消抖子程序

蜂鸣子程序

外部KINT键中断

T0中断

T1中断

五、源代码 (含文件头说明、语句行注释)

;Filename: F310_frame.asm

;Designed by: 贺森涛

;Date:  2019/05/28

;P1:ABCDEFG,dp  P0.7和P0.6控制哪个数码管亮

;P2.0-P2.7行输入4,列输入4

;K0-K9数字键,K10键转个性化设计程序

;-------------------------------------------------------------------------------

$include(C8051F310.inc)

LED                            BIT P0.0

BEEP              BIT P3.1

KINT              BIT P0.1

INIT SEGMENT CODE

rseg INIT

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0INT

ORG 0013H

LJMP KINT0

ORG 001BH

LJMP T1INT

ORG 0100H

MAIN:

LCALL Init_Device                 ;设备初始化

LCALL INIT0                                                        ;定时器初始化

MOV R0,#0                                             ;延迟循环

MOV R1,#0                                             ;消抖循环

MOV R2,#0                                             ;百位

MOV R3,#0                                             ;十位

MOV R4,#0                                                        ;个位

MOV R5,#0                                                        ;位选信号

MOV R6,#0                                                        ;键盘输入数值

MOV R7,#0             ;个性化设计用

MOV DPTR,#TABLE                            ;0-9转换表

CLR BEEP

CLR LED

LOOP:                                                                                                  ;LED数码管不停显示

ACALL LED100

MOV A,R2

MOVC A,@A+DPTR                                          ;百位

MOV P1,A

ACALL DELAY_300ms

ACALL LED10

MOV A,R3

MOVC A,@A+DPTR                                          ;十位

MOV P1,A

ACALL DELAY_300ms

ACALL LED1

MOV A,R4

MOVC A,@A+DPTR                                          ;个位

MOV P1,A

ACALL DELAY_300ms

JB LED,LOOP                            ;等待键盘

LCALL KKEY

AJMP LOOP

;-----------------定时器初始化子程序--------------------------------------------

INIT0:

SETB EX1                              ;开外部中断允许

[1] [2] [3] [4] [5] [6] [7]

C8051汇编语言递归,基于C8051F310单片机的LED灯控制器汇编语言程序调试相关推荐

  1. 单片机彩灯c语言程序设计,(定稿)毕业论文基于AT89C51单片机的LED彩灯控制器设计(完整版)...

    <[毕业论文]基于AT89C51单片机的LED彩灯控制器设计.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)毕业论文基于AT89C51单片机的LED彩灯控制器设计(完整版) ...

  2. 基于51单片机的led灯控制小实验

    该小实验是为了更好的理解51单片机的使用,其完成的要求如下: 1.第一个键控制两个灯的翻转; 2.第二个键控制一个灯的翻转; 3.第三个键接在51单片机的外部中断口,每检测到一次,翻转三下; 4.第四 ...

  3. 基于at89c51单片机的led数字倒计时器设计c语言,课程设计(论文)-基于AT89C51单片机的LED数字倒计时器设计.docx...

    单片机原理及其应用课程设计 课 题: 基于AT89C51单片机的LED数字倒计时器设计专 业: 电工程及其自动化班 级: 2013 级 4班学 号: 姓 名: 设计日期: 2015年6月6日--201 ...

  4. 基于at89c51单片机的led数字倒计时器设计c语言,课程设计(论文)-基于AT89C51单片机的LED数字倒计时器设计精选.docx...

    课程设计(论文)-基于AT89C51单片机的LED数字倒计时器设计精选 单片机原理及其应用课程设计课题:基于AT89C51单片机的LED数字倒计时器设计专业:电工程及其自动化班级: 2013 级4班学 ...

  5. 基于at89c51单片机的led数字倒计时器设计c语言,at89c51单片机led数字倒计时器课程设计论文-本科毕业设计.doc...

    课 题: AT89C51单片机LED数字倒计时器 专 业: 班 级: 学 号: 姓 名: 指导教师: 设计日期: 成 绩: 重庆大学城市科技学院电气学院 目录 一.设计目的作用1 二.设计要求1 三. ...

  6. 基于at89c51单片机的led数字倒计时器设计c语言,基于AT89C51单片机的LED数字倒计时器设计1.docx...

    基于AT89C51单片机的LED数字倒计时器设计1 单片机原理及其应用课程设计课 题: 基于AT89C51单片机的LED数字倒计时器设计专 业: 电工程及其自动化班 级: 2013 级 4班学 号: ...

  7. 基于51单片机十字路口交通灯_5s黄灯闪烁

    基于51单片机十字路口交通灯_5s黄灯闪烁 目录标题 基于51单片机十字路口交通灯_5s黄灯闪烁 功能要求 仿真图 程序 主要程序代码 程序讲解 倒计时的产生 红黄绿灯状态处理 倒计时显示处理 资料清 ...

  8. 基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s

    基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s (程序+仿真+参考报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号J011 目录标题 基于5 ...

  9. 基于AT89C51单片机的交通灯控制系统的设计

    一.前言 本文中交通灯系统采用MSC-51单片机AT89C51核心来设计交通灯控制器,利用单片机的外围扩展,显示电路构成基本硬件,编程实现对定时.控制.显示电路的控制,调试仿真,完成设计.本系统实现了 ...

最新文章

  1. 科研指导:机器学习与自然语言处理
  2. itest系统学生登录不了_四川省中小学生艺术测评管理系统登录平台https://www.soyohui.com/app/165187/...
  3. 动态查询设置mysql慢查询
  4. 道路游戏(洛谷 P1070)
  5. C++友元函数访问私有成员
  6. 反编译工具的使用和字节码文件的查看(Binary Viewer)
  7. 英语答题测试的软件叫什么,英语做题软件哪个好 有答案解析的英语做题软件分享...
  8. Adobe CTO:Android将超预期获50%份额
  9. [转]进程间通信 - ipcrm
  10. 【推荐实践】模型化召回在陌陌社交推荐的探索和应用.pdf(附下载链接)
  11. html5media 原理,HTML媒体(Media)是什么
  12. C Linux 文件加锁 lock fcntl
  13. node + express + sockio 在线聊天室
  14. 爬虫二 cookie正则
  15. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_13-删除页面-前端-Api调用...
  16. Docker Toolbox下配置国内镜像源-阿里云加速器
  17. 瑞星杀毒软件linux序列号,瑞星杀毒软件2007光盘零售版是面向 Linux的?
  18. Oracle集成基础安装包+补丁包
  19. iscsi btrfs 扩容操作
  20. mac +xcode 下WebDriverAgent环境配置

热门文章

  1. oracle的sum函数精度问题_Excel中的这些烧脑问题,你遇到过几种?
  2. 搭建apache_??4、Apache环境web搭建
  3. C语言中用链表构建栈讲解,C语言数据结构之使用链表模拟栈的实例
  4. C语言输入数字出现相应答案,写一个函数 输入一个十六进制数,输出相应的十进制数。...
  5. java列表展开折叠,Android在开发中的实用技巧之ExpandableListView简单实现商品列表折叠...
  6. android usb没有读写节点,2019踩坑无数含泪写下最新教程系列(三)树莓派挂载android(树莓派通过usb读取手机里面档案)...
  7. postman导出Collections后再导入时,打开内容为空
  8. pycharm导入本地文件,程序运行正常,但导入模块时出现红色波浪线
  9. 软件测试:我该坚持在一个人的岗位还是辞职?
  10. 我一个软件测试,为什么要转开发?