单片机跑马灯PPT
单片机汇编语言跑马灯
单片机汇编语言跑马灯实验一跑马灯-亮灯左移右移循环黄天佑 20132301155一、实验目的1、进一步熟悉keil C仿真软件及单片机实验板的使用。
2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
3、掌握应用KEIL软件编辑、编译源汇编程序的操作方法。
4、了解单片机汇编语言程序的设计和调试方法。
二、实验原理1、实验板硬件电路图2、单片机流水灯程序设计(1)流水灯程序设计思路及程序流程。
实现流水灯的方法有很多,这里介绍一种。
开始灯向左移(2)产生流水灯效果程序(逐条程序加注释)start:mov R0,#8 ; 设置左移8次mov A,#0FEH; 存入开始亮灯的位置LOOP: mov P0,A; 传送P0并输出ACALL DELAY; 调用延时程序RL A; 左移1位DJNZ R0,LOOP; 判断移送次数mov R1,#8; 设置右移8次LOOP1:RR A; 右移1位mov P0,A; 传送到P0口并输出ACALL DELAY; 调用延时程序DJNZ R1,LOOP1; 判断右移次数JMP start; 重新设定显示DELAY: mov R5,#10; 延时0.1s子程序D1: mov R6,#100;D2: mov R7,#100;DJNZ R7,$;DJNZ R6,D2;DJNZ R5,D1;RET ; 子程序返回END ; 程序结束三、实验步骤及调试过程1、汇编语言程序的编写与调试(1)新建一个工程(2)保存文件,设一个文件名(3)找到对应单片机的芯片,这里我们选AT89C51即可接着我们新建一个文本写程序(1)(2)保存文件名,注意文件名的后缀应该为.asm (汇编语言程序的格式)接着把我们的文本导入到工程里面去:(1)(2)点击Add,再Close即可2.汇编语言程序编译及下载(1)这里要设置一个输出.hex文件(2)点击生成工程相应的文件同时可以观察下面的结果:0 Error(s),即可。
单片机课程设计--跑马灯设计
单片机课程设计(跑马灯设计)专业:电气自动化摘要AT89C51是一种带4K字节闪存可编程可擦除只读存储器)(FPEROM—Flash Programmable and Erasable Read Only Memory 的低电压、高性能CMOS 8位微处理器,即单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
该设计使用A T89C51芯片作为控制芯片,利用P1口连接8个发光二极管,通过I/O的值控制“跑马灯”的亮灭,以达到显示效果。
开始时所有灯全亮,按下按键S时开始跑马灯,再按下按键S时停止,再按下S时继续,并要求有多种亮暗组合。
时继续,并要求有多种亮暗组合。
按键跑马灯 按键单片机 跑马灯关键词:A T89C51单片机目录摘要 (I)第一章芯片分析和设计概述 (3)第一节 AT89C51芯片分析 (3)第一节第二节 设计概述 (8)第二节第二章硬件电路设计 (9)第三章程序部分设计 (10)参考文献 (18)第一章 芯片分析和设计概述第一节 AT89C51芯片分析ATMEL 的AT89S51是一种高效微控制器,将多功能8位CPU 和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
且价廉的方案。
AT89C51AT89C51的芯片引脚图如下:的芯片引脚图如下:图1.1 AT89C51引脚图引脚图各引脚的说明和功能分析如下:各引脚的说明和功能分析如下:VCC VCC:供电电压。
:供电电压。
:供电电压。
GND GND:接地。
:接地。
:接地。
P0口:口:P0P0口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
时,被定义为高阻输入。
P0P0能够用于外部程序数据存储器,它可以被定义为数据外部程序数据存储器,它可以被定义为数据//地址的第八位。
单片机跑马灯
中国地质大学江城学院《单片机原理及应用》课程设计学部班级学号姓名指导教师年月日目录第1章系统开发的基本原理 (3)1.1 复位电路及时钟电路 (3)1.2 跑马灯的基本原理 (4)1.3 数码管的基本原理 (5)1.4 键盘的基本原理 (5)第2章系统硬件设计 (6)2.1 MCS-51单片机介绍 (6)2.2 74HC573锁存器介绍 (7)2.3 74HC02或非门介绍 (7)2.4 4511译码器介绍 (8)2.5 数码管介绍 (9)2.6 系统硬件电路设计 (10)第3章系统软件设计 (12)3.1 软件设计架构 (12)3.2 主程序模块 (13)3.3 跑马灯程序模块 (18)3.4 键盘程序模块 (18)3.5 数码管程序模块 (19)第4章系统测试 (19)4.1 测试方法 (19)4.2 测试考虑的因素 (20)4.3 测试结论 (20)第5章课程设计小结 (20)摘要:单片机最小系统,无论对单片机初学人员还是开发人员都具有十分重要的意义,可以利用最小系统进行编程实现工业控制。
单片机最小系统电路板在单片机开发市场和大学生电子设计方面十分流行。
本次课程设计包括AT89S52单片机最小系统(包括复位和时钟电路)及供电系统、4×4矩阵键盘、独立4个8段LED数码管显示电路。
利用Protel电路设计软件进行原理图设计,PCB布线,借此巩固单片机应用、模拟电路、数字电路课程及学会工程软件protel的使用。
第1章系统开发的基本原理对51 系列单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、输入/ 输出设备等。
本次课程设计的系统还包括流水灯、4*4矩阵键盘和二位数码管显示。
1.1 复位电路及时钟电路复位电路和时钟电路是维持单片机最小系统运行的基本模块。
复位电路通常分为两种:上电复位和手动复位。
[2]上电复位手动复位有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。
单片机实例之跑马灯PPT课件
40
常用的调试按钮
KEIL 软件开发平台
复位按钮全,速按停运止全进速入跳循运跳过环行出循并单环步并执执单行行到断点处
下后,所行有的
系统状态将变
单步执行步执过行程
成初始状态。
图3-27 调试按钮
.
41
KEIL 软件开发平台
二、ISP软件的使用
打开下载软件,双击目录下的文件 ISP析,实现任务的思路是:程序 开始时,给某一变量赋初始值0xFE,然后每次将 数据左移后送入P1口直到所有循环次数输出完毕, 再次重复整个过程。根据思路得出的程序框图如 图3-29所示。
.
46
图3-29 程序流程图
.
47
(1)C语言程序:
#include "reg51.h"
#include "intrins.h"
退出此程序。
.
42
.
43
任务二 跑马灯
本任务让图3-28中的LED依次点亮
图3-28 LED硬件图
.
44
程序设计分析
为了让图3-28所示的LED依次点亮,就是要求从P1口从 P1.0至P1.7依次输出低电平,其余引脚都输出高电平,就 能让被接在端口的彩灯依次点亮。
从输出的具体的数据来看,第一个LED点亮需要的输 出数据,是对应于P1.0的位为0,其余位为1,组合为一个 字节时对应的二进制位从高到低为:1111 1110,即十六 进制数0xFE;同理,第二个LED点亮对应的数为:1111 1101,化为十六进制数为0xFD。
图3-10 目标1属性设置窗口
.
24
KEIL 软件开发平台
图3-11 目标1输出窗口设置
.
《单片机原理及应用》跑马灯
《单片机原理及应用》跑马灯设计说明书第一章设计任务此次单片机设计任务是要求:按下按键三之后,灯的上半部分(四个灯)和下半部分交替闪烁9次,按下按键四之后,灯光全亮全灭九次。
在执行跑马灯的代码时,按下按键四,执行全亮全灭的时候,再按下按键三,灯光会先执行按键三的指令,然后再执行按键四的指令,也就是说按键三比按键四的优先级高,这就是此次单片机的设计任务。
第二章硬件设计在参考之前的跑马灯模拟电路的基础上,进行改造,完成相关模拟电路的设计。
在此次硬件设计的过程中,又让我再次的熟悉了电路的组成,元件的位置以及名称和连接,还有单片机内的系统及其功能。
首先是晶振电路,单片机最小系统的三要素之一,它在不停的振荡,为单片机系统提供基准时钟信号,是单片机的“心脏”。
电容的作用是帮助晶振起振,并维持振荡信号的稳定。
其次,复位电路主要功能是完成单片机上电初始功能,同时保障在单片机程序出现跑飞时能让它恢复正常状态,其实就是一个RC电路,RC的取值根据所需的复位时间来计算。
为实现跑马灯等功能,在P1端口接上8个LED灯,同时在P3口连上四个按键,实现中断功能。
此次硬件设计中,我做的唯一不足的就是忘记修改元件的具体数据,下次必须注意。
第三章软件设计在此次软件设计中,我做的很差,存在有许多问题,中间的各个代码都出现了问题,通过此次的失败,我总结了经验,明白了中断设计的函数应该怎那么写,参考了一下往日的作业,基本弄清了这类代码应该怎么写,但是仍然不熟练,还是需要多加练习,多加思考,争取能够自己独立写出程序代码。
第四章调试过程调试失败,在改进之后的代码进入调试之后,还是成功了的。
第五章总结此次单片机设计测试中主要考察了中断系统的使用,同时在硬件的设计上也有了更多的要求,在编写代码的同时还需要自主的设计和铺设电路,此次代码编写需要考虑全面,容易缺少程序,需要细心编写。
同时,在编写代码的时候,容易出错,出错的时候不能够慌,应该细心下来思考问题所在,此次测试中,看出来了我自身写代码的经验不足,使得代码编写非常错误,还有就是平时训练的还是比较少,以后应该多加训练。
单片机—走马灯
1 设计方案通过模式键来改变单片的工作模式,进行程序控制,一共有九个模式。
LED 等工作在不同的模式下,有不同的现象。
加速减速开关来控制灯泡的闪亮快慢。
复位电路用来初始化芯片的工作状态。
2AT89S5介绍主要性能● 与MCS-51单片机产品兼容● 8K字节在系统可编程Flash存储器● 1000次擦写周期● 全静态操作:0Hz~33Hz● 三级加密程序存储器● 32个可编程I/O口线● 三个16位定时器/计数器● 八个中断源● 全双工UART串行通道● 低功耗空闲和掉电模式● 掉电后中断可唤醒● 看门狗定时器● 双数据指针● 掉电标识符功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
VCC : 电源GND: 地P0 口:P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL 逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
最新单片机实例之跑马灯专业知识讲座
文档来源于网络,文档所提供的信息仅供参考之用,不能作为科学依据,请勿模 仿。文档如有不当之处,请联系本人或网站删除。
三、程序设计
P1.0端口的LED闪亮
AT89S51
单片机的 I/O端口
P1.0
+Vcc
图3-3 单片机驱动一只发光二极管的原理电路
文档来源于网络,文档所提供的信息仅供参考之用,不能作为科学依据,请勿模 仿。文档如有不当之处,请联系本人或网站删除。
0.5秒延时的汇编程序:
MOV R6,#5
SS:
MOV R7, #200
LOOP: MOV R5, #249
DJNZ R5, $
DJNZ R7,LOOP
DJNZ R6,SS
整个子程序延时为: {[2μs×249+1+2]×200+2}×5=501010μs
文档来源于网络,文档所提供的信息仅供参考之用,不能作为科学依据,请勿模 仿。文档如有不当之处,请联系本人或网站删除。
文档来源于网络,文档所提供的信息仅供参考之用,不能作为科学依据,请勿模 仿。文档如有不当之处,请联系本人或网站删除。
任务一 一只LED的闪烁
一、课题目标
本课题就是以发光二极管为例,用单片机控制8只发 光二极管,实现逐个点亮、全亮、闪烁等花样显示。
为了便于理解,采用从简单的单只发光二极管的点亮 和熄灭控制开始,到实现八只发光二极管组成的各种样式 闪亮彩灯控制。
文档来源于网络,文档所提供的信息仅供参考之用,不能作为科学依据,请勿模 仿。文档如有不当之处,请联系本人或网站删除。
二、电路原理
图3-1 LED显示电路原理图
文档来源于网络,文档所提供的信息仅供参考之用,不能作为科学依据,请勿模 仿。文档如有不当之处,请联系本人或网站删除。
跑马灯原理图
跑马灯原理图
跑马灯,又称为滚动广告牌,是一种常见的信息展示设备,其原理图如下所示:
1. 控制器,跑马灯的控制器是整个设备的核心部件,它负责接收外部输入的信息,并根据预设的程序控制LED灯的显示效果。
控制器通常采用单片机或者嵌入
式系统,具有较强的数据处理和存储能力。
2. LED灯,LED灯是跑马灯的显示元件,它具有高亮度、低能耗、长寿命等
优点,因此在跑马灯中得到了广泛应用。
LED灯的排列方式多种多样,可以根据
实际需求进行定制。
3. 电源模块,跑马灯的电源模块通常采用直流电源,为LED灯提供稳定的工
作电压和电流,保证LED灯的正常工作。
4. 通讯接口,为了方便控制跑马灯的显示内容,通常会在跑马灯上设置通讯接口,可以通过有线或者无线方式与外部设备进行通讯,实现信息的更新和控制。
跑马灯的工作原理是,控制器接收到外部输入的信息后,将其转化为LED灯
的控制信号,并通过电源模块为LED灯提供工作电源,LED灯按照控制信号的要
求进行显示,从而实现文字、图形等信息的滚动显示效果。
跑马灯广泛应用于商场、车站、广场等公共场所,用于发布广告、宣传信息、
公告等内容。
其优点是信息更新方便快捷,显示效果醒目,能够吸引人们的注意力,是一种较为有效的宣传工具。
总的来说,跑马灯的原理图包括控制器、LED灯、电源模块和通讯接口四个主要部件,通过这些部件的协同工作,实现了信息的滚动显示效果,为人们的生活和工作提供了便利。
单片机课程设计--跑马灯设计
单片机课程设计(跑马灯设计)专业:电气自动化摘要AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,即单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
该设计使用AT89C51芯片作为控制芯片,利用P1口连接8个发光二极管,通过I/O的值控制“跑马灯”的亮灭,以达到显示效果。
开始时所有灯全亮,按下按键S时开始跑马灯,再按下按键S时停止,再按下S时继续,并要求有多种亮暗组合。
关键词:AT89C51单片机跑马灯按键目录摘要 (I)第一章芯片分析和设计概述 (3)第一节AT89C51芯片分析 (3)第二节设计概述 (8)第二章硬件电路设计 (9)第三章程序部分设计 (10)参考文献 (18)第一章芯片分析和设计概述第一节AT89C51芯片分析ATMEL的AT89S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51的芯片引脚图如下:图1.1 AT89C51引脚图各引脚的说明和功能分析如下:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH 编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
MCS-51单片机控制跑马灯的三种方法
MCS-51单片机控制跑马灯的三种方法
在MCS一51单片机的控制系统中,它的四个并行8位输入输出端口P0一P3是我们经常使用的。
在并行端口的编程学习中,跑马灯是单片机并行端口输出控制的典型实例。
所谓跑马灯,是指将八个发光二极管分别连接到单片机的某一并行端口的八根线上,通过编程控制这八个发光二极管从低到高或从高到低依次点亮。
图1 跑马灯电路图
如图1所示,将8个发光二极管阴极接到MCS一51单片机P1端口的8根端口线上,阳极通过限流电阻接+5V电源。
要让发光二极管点亮,则对应的端口线应该为低电平(0);而要让其熄灭,对应的端I=I线应该为高电平(1)。
由此,我们假定跑马灯由端I=1的低位向高位轮流点亮.可以得到如下状态:
表1 跑马灯状态表
从表1可以看出,P1端口的状态共有8种,在跑马灯的显示过程中.这8种状态依次出现,循环往复。
而要实现跑马灯的这种显示功能.我们可以采用三种方法:
(1)穷举法;
(2)移位法;
(3)查表法。
下面分别来介绍一下这三种方法。
一、穷举法对于单片机的显示状态来说,它的8种状态是循环显示的。
所谓穷举法。
是指将单片机所有的显示状态全部列举出来。
写在程序的主函数中,通过while(1)的死循环来实现这些状态的循环显示。
程序如下:
#include<reg51.h>//延时函数.延时0.5s
voiddelay()。
单片机跑马灯
1、前言 (2)2、硬件电路设计 (2)2.1、AT89C51芯片分析 (2)2.2、电路连接图 (5)2.3、主控制系统 (5)2.4时钟振荡电路 (6)2.5、复位电路 (7)2.6、元件清单 (7)3、软件设计与流程图 (8)3.1、流程图 (8)4、调试总结 (10)跑马灯设计摘要:本文设计一个闪烁跑马灯控制器,该控制器可以控制8个灯顺序亮灭。
单片机上电后,当开关k1闭合时8个灯依次从左向右亮,并且每个灯亮的时间为1秒钟,然后全亮,之后开始显示1~9。
当开关k2闭合时,8个灯依次从右向左亮。
当k3闭合时,8个灯全灭。
关键词:AT89C51芯片;跑马灯;单片机;1、前言AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,即单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
本文设计一个闪烁跑马灯控制器,该控制器可以控制8个灯顺序亮灭。
单片机上电后,当开关k1闭合时8个灯依次从左向右亮,并且每个灯亮的时间为1秒钟,然后全亮,之后开始显示1~9。
当开关k2闭合时,8个灯依次从右向左亮。
当k3闭合时,8个灯全灭。
2、硬件电路设计2.1、AT89C51芯片分析ATMEL的AT89S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51的芯片引脚图如下:图1 AT89C51引脚图各引脚的说明和功能分析如下:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
单片机跑马灯课程设计ppt课件
关资料,但怎么也没找到,感觉很是沮丧。
•
•
第二天我们又到了图书馆,把几乎所有关于单片机的
书都翻遍了,最后终于找到了三本有关闪烁灯和终端方面
的资料,但却没有和课程设计要求一模一样的。
•
17
•
刚开始我们试着用汇编语言编程,但发现汇编的指令
太多,本题目的8个LED灯都接在单片机的P2口,共有三
种花样和两个中断系统,用汇编实在不好把所有的程序编
• ① RST(Reset)功能:复位信号输入端。
• ② VPD功能:在Vcc掉电情况下,接备用电源。
• ⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
• ① EA功能:内外ROM选择端。
• ② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源 Vpp。
• ⒋ I/O线
1.设计硬件电路,画出电路原理图; 2.画出程序流程图; 3.编制程序,写出源程序代码; 4.写出5000字的详细说明书,要求字迹工整,原理叙 述正确,会计算主要元器件的一些参数,并选择元器件; 5.个人总结。
3
前言
•
随着单片机的问世和飞速发展,掀起了计算
机工程应用的一场新革命,使计算机控制技术广
• 80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还
具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)
6
51单片机的中断系统
• 中断系统: • 8051单片机的中断系统简单实用,其基本特点是:有5个
固定的可屏蔽中断源,3个在片内,2个在片外,它们在程 序存储器中各有固定的中断入口地址,由此进入中断服务 程序;5个中断源有两级中断优先级,可形成中断嵌套;2 个特殊功能寄存器用于中断控制和条件设置的 编程。 • 中断系统的结构: 5个中断源的符号、名称及产生的条件如下。 INT0:外部中断0,由P3.2端口线引入,低电平或下跳 沿引起。 INT1:外部中断1,由P3.3端口线引入,低电平或下跳 沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。 T1:定时器/计数器l中断,由T1计满回零引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接 收后引起。 整个中断系统的结构框图见下图一所示。
单片机应用技术任务4 制作跑马灯
条件不成立时结束循环。
3、循环结构
循环的结构形式 do-while循环
结构形式 do {语句块;} while(表达式);
Y 语句块 表达式为真 N
先执行语句块,再判断条 件。条件成立时,再次执 行语句块,条件不成立时 结束循环。
3、循环结构
循环的结构形式 for循环 结构形式
按位或:将一个变量的某些位置1,而保持其他位不变。 方法:将变量和一个常数按位相或,常数按以下方法设置:保持不变的位取 0,置1位取1。例如: unsigned a=a|0x32; char a; //0x32=00110010B,将a的第1、4、5位置1
2、位操作运算
按位运算的应用 按位异或 对一个变量的某些位取反,而保持其他位不变。 方法:将变量和一个常数按位异或,常数按以下方法设置:保持 不变的位取0,取反位取1。例如: unsigned a=a^0x0f;
2、位操作运算
运算法则 位运算 0&X=0 1&X=X 0|X=X 1|X=1 说明 X和0相与,结果为0 X和1相与,结果不变 X和0相或,结果不变 X和1相或,结果为1
0^X=X
1^X=~X ~0=1 ~1=0
X和0相异或,结果不变
X和1相异或,结果为X的反 0的反是1 1的反是0
<<、 >>:将运算符左边的操作数的各位二进制位全部左移或右移
求解表达式1
for(表达式1;表达式2;表达式3)
{语句块;} 单片机应用程序常用循环结构: while(1) {语句块;} 各表达式之用分号间隔。 可以无表达式n,但分号不可省。
表达式2为真 Y 语句块 求解表达式3
2 跑马灯
1 跑马灯对于学习单片机编程的人来说,“跑马灯”这个词再熟悉不过了,它基本是我们入门的第一个例子。
本章我们就以“跑马灯”为例子,讲解nRF51822软件编程的第一课:GPIO。
1.1 nRF51822 AK board硬件介绍1.1.1 AK board (PCA10001)的LED资源AK board PCA10001上有两个按键和五个用户可编程的LED,它们被连接到nRF51822芯片的特定引脚上。
请看 Table 1.Part GPIO ShortButton0 P0.16Button1 P0.17LED 0 P0.18 SB6LED 1 P0.19 SB7LED 2 P0.20 SB8LED 3 P0.21 SB9LED 4 P0.22 SB10Table 1 按键和 LED 连接1.1.2 AK board (PCA10001)LED原理图按键是低电平有效的,就是说按下按键后,IO的输入端会被连接到地。
按键没有外部的上拉电阻,所以如果要使用P0.16 和 P0.17 引脚上的两个按键,需要使能引脚的内部上拉电阻。
Figure 1 buttonsLED是高电平有效的,就是说写一个逻辑的 (‘1’) 到相应的输出引脚,将点亮LED。
Figure 2 LEDs1.1.3 AK board (PCA10001)LED三维图3D图,请看:1.2 nRF51822的GPIO1.2.1 nRF51822的GPIO框图Figure 3 GPIO1.3 nRF51822的GPIO寄存器Figure 3 GPIO registers1.3.1 nRF51822的GPIO寄存器简介Register Offset Description保留0x000 保留位[321]OUT 0x504 写GPIO端口,bit0对应pin0,bit1对应pin1...OUTSET 0x508 set单一GPIO端口,写“1”到0x00只能将pin0拉高,对其他pin 无效OUTCLR 0x50C clear单一GPIO端口,写“1”到0x00只能将pin0拉低,对其他pin 无效IN 0x510 读GPIO端口,bit0对应pin0,bit1对应pin1...Register Offset Description DIR 0x514 设置GPIO端口方向,类同于OUT DIRSET 0x518 设置GPIO端口方向,类同于OUTSET DIRCLR 0x51C 设置GPIO端口方向,类同于OUTCLR 保留0x520 保留位[120]PIN_CNF[0] 0x700 pin0的配置,详见后续内容....PIN_CNF[31] 0x77C pin31的配置,详见后续内容Table 2 GPIO 寄存器简介1.3.2 GPIO的PIN_CNF[x]寄存器PIN_CNF[x]1.3.3 GPIO 的PIN_CNF[x]寄存器简介 IDField Description A DIR 设置pin[x]的方向,与DIR(0x514)等寄存器关联,修改其中一个另外一个自动改变B INPUT 设置pin[x]的INPUT 缓冲,为了省电可以写“1”断开缓冲,但是使用前必须写“0”连接上CPULL 设置pin[x]的上下拉电阻,使用标准值为13kΩ的内部电阻 DDRIVE 设置pin[x]的驱动强度,std. drive, 0.5 mA ,high-drive, 5 mA E DRIVE 设置pin[x]的电平感知,写“1”感知高电平,写“0”感知低电平Table 3 GPIO 的PIN_CNF[x]寄存器简介1.4 官方blink代码样例使用官方例程即可点亮LED0和LED1的blink程序(安装SDK后,源代码位于<keil path>\ARM\Device\Nordic\nRF51822\Board\PCA10001\blinky_example\)main函数请看:int main(void){uint8_t output_state = 0;// Configure LED-pins as outputsnrf_gpio_range_cfg_output(LED_START, LED_STOP);while(true){nrf_gpio_port_write(LED_PORT, 1 << (output_state + LED_OFFSET));output_state = (output_state + 1) & BLINKY_STATE_MASK;nrf_delay_ms(100);}}相关宏定义位于头文件"pca10001.h"内:#ifndef PCA10001_H#define PCA10001_H#define LED_START 18#define LED0 18#define LED_STOP 19#define LED1 19#define LED_PORT NRF_GPIO_PORT_SELECT_PORT2#define LED_OFFSET 2#define BUTTON_START 16#define BUTTON0 16#define BUTTON_STOP 17#define BUTTON1 17#define RX_PIN_NUMBER 11#define TX_PIN_NUMBER 9#define CTS_PIN_NUMBER 10#define RTS_PIN_NUMBER 8#define HWFC true#define BLINKY_STATE_MASK 0x01#endif1.5 编译、下载与演示1. 在Keil μVision中打开 Blinky 工程,或者双击blinky.uvproj 文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 学年第二学期 • 1-4周 系统设计实现,软硬件整体调试,中期检查,撰写设计报 告初稿。 • 5-8周 修改检查设计成果、测试程序,设计报告定稿,准备答 辩。
二、设计目标
本课题主要任务是基于单片机跑马灯电路 设计。最终实现一排跑马灯进行各种样式的亮 灯形式,在中断程序中处理多个按键动作的响 应,以控制一排跑马灯的工作。分别实现LED 灯的左循环,右循环,中间向外循环,外边向 中间循环等模式。
三、设计思路
主程序的设计思路为,开 始时执行左右流水灯,在中断服 务程序中,首先读取按键状态, 然后延时10ms,再次读取按键 状态。把两次获得的按键状态 比较,如果不同,就表示是抖 动,退出中断;否则,就去判 断是哪个按键按下。 如果是k2,就执行左跑马灯; 如果是k3,就执行右跑马灯; 如果是k4,就执行亮点向中间 移动; 如果是k5,就执行亮点向两边 移动。
• 设计采用置标志位的方法, 即在主程序中设定一个标志 位,不断的对这个标志进行 查询:如果是标志为状态1, 就执行双向跑马灯;如果是 状态2,就执行左向跑马灯; 如果是状态3,就执行右向跑 马灯,依次类推。而在中断 服务程序中,只需要进行如 下工作:去抖动,键识别, 改变标志位。
四、提交的成果
1 系统的完整代码; 2实物电路板,实现LED灯的左循环,右循环,中间向外循环 ,外边向中间循环等 3 毕业设计报告。
五、进度计划
• 学年第一学期 • 6-10周 资料查询与分析,初步完成系统硬件结构框图及程序流程图 设计 • 11-12周 完善硬件结构及程序流程设计思路,撰写开题报告。 • 13-17周 系统设计,各模块电路及程序设计、仿真调试。 • 寒假 系统设计及程序总体仿真调试。
基于单片机的 跑马灯电路设计班级:11计本2 姓名:Fra bibliotek冠曾目录
一、选题背景与意义 二、设计目标 三、设计思路 四、提交的成果 五、进度计划
一、选题背景与意义
单片机的应用 目前单片机渗透到我们生活的 各个领域,几乎很难找到哪个领域没有单片机的踪迹。 导弹的导航装置,飞机上各种仪表的控制,计算机的 网络通讯与数据传输.单片机具有体积小、功耗低、控 制功能强、扩展灵活、微型化和使用方便等优点,广 泛应用于仪器仪表中. 本次毕业设计给了我一个实践的机会,锻炼了 自己适应社会的能力以及意志。在实践中也加深了对 理论知识的理解。积累了经验。为毕业后走向社会打 下了良好的基础