单片机实例之跑马灯资料共62页文档

合集下载

51单片机实用教程入门之跑马灯

51单片机实用教程入门之跑马灯

MCS-8051 单片机实用教程深圳伟凡数码 QQ:59059381上一节讲了 KEIL 软件的基本使用, 本节开始学习编程,编写第一个程序,如果从没学过的朋友不需要深入了解,只 要按照下面写出第一个程序。

好, 就来试试,很有意思的。

这里主要讲些技巧, 而不是专门的 C 语言,如过想学习更深入 的 C 语言, 请参考相关 C 语言书籍。

前面我们已经讲了怎样建立文件,这里就不多讲了。

按照下面动手写下面程序,当写好后, 我们就可以进行编译了, 点工具栏上的按钮或者 按键盘的功能键 F7 开始编译了,在最下面一个白色窗口显示编译结果, 0 Error(s)表示没有错误,正确的通过编译,0 Warning 表示 0 警告,这里 如果有 1 个或多个警告,并不影响程序的正确编译, 只是表明程序有多余的没有应用的程序。

下面表示程序已经正确的通过了. 如果你的也是这样的, 那就恭喜你成功了。

下面我们就来说说这个程序的基本知识,要记住的, a. 符号// 后面表示注释部分,或者程序的说明部分, 比如上面的程序名称, 日期等 b. /* */ 这个也是表示注释部分. 注意, 注释部分是不被编译的,注释是方便我们更能理解程序 c . #include<stdio.h> 这个表示头文件,表示我们要用到的函数或者定义,由#include<头文件名> 组成,编写规则头文件MCS-8051 单片机实用教程存深圳伟凡数码 QQ:59059382后面不能 有分号" ; ". #include<reg51.h> 也是头文件, 这是我们 51 单片机的头文件, 定义了单片机的特殊功能寄器的定义,我们可以打开头文件查看, 方法是: 将鼠标移动到文件名上, 点鼠标右键,出现以下菜单,点击蓝色部 分,这样就打开了 51 头文件。

打开 51 文件之后, 我们看到了对 51 单片机的端口定时器中断等进行了定义,想要了解含义,去看看单片机的资料, 这里不多讲。

单片机跑马灯

单片机跑马灯

中国地质大学江城学院《单片机原理及应用》课程设计学部班级学号姓名指导教师年月日目录第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]上电复位手动复位有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。

基于msp430g2553单片机跑马灯设计(DOC)

基于msp430g2553单片机跑马灯设计(DOC)

单片机的出现时计算机发展史上的一个重要里程碑,它开辟了计算机技术的另一个领域——嵌入式(Embedded)计算机领域。

所谓单片机就是把中央处理器、存储器、定时器、I/0接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。

单片机把微型计算机的各主要部分集成在一块芯片上,大大缩短了系统内信号传送距离,从而提高了系统的可靠性及运行速度。

所以单片机是典型的嵌入式系统,是嵌入式系统低端应用的最佳选择。

自20世纪70年代以来,单片机在工业测控、仪器仪表、航空航天、军事武器、家用电器等领域的应用越来越广泛,功能也越来越完善。

由单片机及各种微处理器、DSP所构成的嵌入式系统设计已成为电子技术产业发展的一项重要内容。

单片机技术也成为电子技术及自动化专业必须掌握的技术之一。

近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

本设计主要以msp430g2553单片机为基础应用I/O口,复位电路,晶振电路并写好底层程序,做出能应用于跑马灯的最小系统。

关键词:最小系统,嵌入式,msp430g2553,跑马灯1. 绪论 (3)2. 设计方案及分析 (5)2.1 设计目的 (5)2.2 设计要求 (5)2.3 LED灯管 (5)2.3.1 LED灯简介 (5)2.3.2 LED原理 (6)2.4 系统框图 (7)2.5 系统的软件设计 (7)2.5.1 程序编写部分 (7)2.5.2 延时的计算 (8)2.5.3 程序流程图 (8)2.5.4 跑马灯的效果描述 (9)2.6 系统调试及结果分析 (10)3. 总结和体会及遇到的问题 (12)4. 致谢 (13)附录 (14)参考文献 (20)1.绪论由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。

基于单片机多模式带音乐跑马灯设计文档

基于单片机多模式带音乐跑马灯设计文档

高等教育自学考试毕业论文学生姓名:黎政昌考籍号: 911411101567 专业年级:二年级题目:基于单片机的多模式带音乐跑马灯设计指导教师:向诚评阅教师:2012年4月目录1设计的作用、目的 (3)2设计的具体实现 (3)2.1系统概述 (3)2.2单元电路设计与分析 (3)2.3电路的安装与调试 (8)3建议 (9)结论 (10)致谢 (11)参考文献 (12)4附录 (13)摘要跑马灯,顾名思义,就是“会像马儿一样跑动”的小灯,故取名“跑马灯”。

跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由多个LED发光二极管组成。

在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。

当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。

此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。

关键词:跑马灯,单片机,LED发光二极管1设计的作用、目的(1)使用32个彩色LED灯,用这32个发光二极管以不同的模式循环点亮;(2)三个功能键,K1模式键,通过按键调整显示结果,总共有10种模式;K2加速键;K3减速键;(3)十种模式通过一个共阳数码管显示出来,十个模式分别显示为0~9。

通过发光二极管的动态闪亮,显示非常炫目的效果,应用于各种建筑物,大楼,酒吧,KTV,夜总会等娱乐场所,拖尾灯,以及各种休闲娱乐场所用的动态灯光显示,通过此次设计,可以加深对51单片机的应用、C51编程和protues软件操作的能力。

了解51单片机的外围引脚,以及各个端口的功能,还可以通过对走马灯的程序编写让我们对程序的执行方式和特点有一个初步的认识,同时掌握C51软件与protues联机调试程序,对进一步学习单片机打下坚实基础。

2设计的具体实现2.1系统概述本设计的要求是设计一个有多种功能的走马灯,有多种不同的显示方式,加速功能和减速功能,这里的加速减速还有显示方式都是由单片机内部的程序控制,在这里我将32个光二极管分别接在P0和P1,通过程序控制这两个端口的电平高低,将32个光二极管的正极接电源,负极接P0和P1口,即发P0和P1口的相应端口为高电平时,发光二极管的两端都为高电平,所以发光二极管不亮,当发光二极管的相应端口为低电平时就能被点亮。

单片机—走马灯

单片机—走马灯

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位地址/数据复用。

单片机整套实验及程序(交通灯_跑马灯等)文档

单片机整套实验及程序(交通灯_跑马灯等)文档

实验1 跑马灯实验一、实验目的●初步学会Proteus ISIS和uVision2单片机集成开发环境的使用;●初步掌握采用汇编语言与C语言开发单片机系统的程序结构;●掌握80C51单片机通用I/O口的使用;●掌握单片机内部定时/计数器的使用及编程方法以及中断处理程序的编写方法。

二、实验设备及器件●硬件:PC机,HNIST-1型单片机实验系统●软件:Proteus ISIS单片机仿真环境,uVision2单片机集成开发环境三、实验内容●编写一段程序,采用P1口作为控制端口,使与P1口相接的四个发光二极管(D1、D2、D3、D4)按照一定的方式点亮。

如点亮方式为:先点亮D1,延时一段时间,再顺序点亮D2……D4,然后又是D4……D1,同时只能有一个灯亮;然后每隔一段时间一次使相邻两个灯亮,三个灯亮,四个灯亮,最后闪烁三次,接着循环变化。

●基于Proteus ISIS仿真环境完成上述功能的仿真。

●基于uVision2单片机集成开发环境与硬件平台完成程序的脱机运行。

四、实验原理图图3.1 跑马灯实验电路原理图电路原理图如上图3.1所示,AT89S52的P1.0~P1.3控制4个发光二极管,发光二极管按照一定次序发光,相邻发光二极管的发光时间间隔可以通过定时器控制,还可以通过软件延时实现。

五、软件流程图与参考程序● 主程序流程图如下:● 参考程序 #include<reg52.h> #include<intrins.h>#define uchar unsigned char #define uint unsigned intuchar aa ,num ,speed ,flag;uchar code table[]={0x0e ,0x0d ,0x0b ,0x07}; uchar code table1[]={0x0a ,0x05,0x09,0x06};uchar codetable2[]={0x0c ,0x09,0x03,0x08,0x01,0x0e ,0x0c ,0x08,0x00}; void delay(uint z)//延时函数 {uint x;uchar y;for(x=z;x>0;x--) for(y=200;y>0;y--); }void init()//条件初始化函数 { flag=0;speed=10;//控制跑马灯流水速度 TMOD=0x01;//中断方式开 始初始化(定时器、中断、标志位设置)Flag=1? 流水灯操作 结 束YNTH0=(65535-50000)/256;TL0=(65536-50000)%256;//初值EA=1;//打开总中断ET0=1;//打开外中断0TR0=1;}void main(){init();//调用初始化函数while(1){if(flag){delay(2000);//调用延时函数for(num=0;num<4;num++)//从左至右间隔一个依次闪烁{P1=table[num];delay(2000);}for(num=3;num>0;num--)//从左至右间隔一个依次闪烁{P1=table[num];delay(2000);}for(num=0;num<4;num++)//从左至右间隔两个依次闪烁{P1=table1[num];delay(2000);}for(num=3;num>0;num--)//从左至右间隔两个依次闪烁{P1=table1[num];delay(2000);}for(num=0;num<6;num++)//两个,三个,四个跑马灯依次闪烁{P1=table2[num];delay(2000);}for(num=0;num<5;num++)//闪烁5次{P1=0xff;//全暗delay(2000);P1=0X00;//全亮delay(2000);}speed=speed-3;//变速if(speed==4){speed=10;}}}}void timer0() interrupt 1//中断函数{TH0=(65535-50000)/256;TL0=(65536-50000)%256;aa++;if(aa==speed){aa=0;flag=1;}}六、实验思考题●请用汇编指令完成本实验内容,深刻理解汇编语言程序设计结构。

单片机 跑马灯实验精选全文

单片机 跑马灯实验精选全文

可编辑修改精选全文完整版实验一跑马灯实验一、实验内容1、基本的流水灯根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。

每点亮一个LED,采用软件延时一段时间。

2、简单键控的流水灯不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。

松手后,又按正序点亮流水灯。

3、键控的流水灯上电,不点亮LED,按一下K1键,按正序点亮流水灯。

按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。

二、实验方案1、总体方案设计考虑到K4键未被使用,所以将实验内容中的三项合并到一个主函数中:K4键代替实验内容第二项中的K1键;单片机一开机即执行实验内容第一项;K1、K2、K3键实现实验内容第三项。

所用硬件:AT89C52、BUTTON、LED-BLUE、电源输入:P2.0-K1;P2.1-K2;P2.2-K3;P2.3-K4。

低电平有效输出:P0.0~P0.7-D0~D7。

LED组连线采用共阳极,低电平有效软件设计:软件延时采用延时函数delay(t),可调整延迟时间:void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}由于涉及到按键变化所以要设置一个变量oldK保留按键键值,要在延时程序中检测是否按键,当按键后立即设置oldK的值。

按键判断采用在while循环中利用条件语句判断P2的值然后执行该键对应的代码段,达到相应的响应。

为了让K4键的效果优化,即状态变化从当前已亮灯开始顺序点亮或逆序点亮,利用全局变量n来记录灯号,利用算法即可实现。

主要算法:1、全局变量的定义:uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;2、顺序、逆序点亮流水灯:void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}3、实验内容第二项流水灯灯亮顺序变换:void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){out=D[n];n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}4、对应实验内容第一项,开机顺序点亮流水灯:while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}2、实验原理图图2-1 实验原理图3、程序流程图图2-2 程序流程图三、源程序#include"reg51.h"#define uchar unsigned char#define uint unsigned int#define out P0uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;//记录当前亮的灯号void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}void delay10ms(){uint i;for(i=0;i<10000;i++);}void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}int delay4(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK){ //按键变化退出循环return 1;}}return 0;}void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}void main(){oldK=K[0];while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}while(1){out=AllOff;if((P2&0x0f)!=0x0f){//检测有键按下delay10ms();//延时10ms再去检测//P2.0_K1键按下正序点亮流水灯if(P2==K[1]){oldK=K[1];while(1){forward();if(P2!=K[1]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.1_K2键按下逆序点亮流水灯if(P2==K[2]){while(1){backward();if(P2!=K[2]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.2_K3键按下关闭全部LEDif(P2==K[3]){oldK=K[3];out=AllOff;}//P2.3_K4键按下长按逆序点亮流水灯,不按正序点亮流水灯,直到其他键按下停止if(P2==K[4]){hold();}}}}四、实验结果1、基本的流水灯:开机后即重复顺序点亮流水灯,等待其他按键。

最新单片机实例之跑马灯专业知识讲座

最新单片机实例之跑马灯专业知识讲座

文档来源于网络,文档所提供的信息仅供参考之用,不能作为科学依据,请勿模 仿。文档如有不当之处,请联系本人或网站删除。
三、程序设计
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章课程设计内容及要求 (5)第2章引言 (6)第3章系统硬件电路设计 (7)第4章系统软件设计 (12)第5章课程设计心得 (14)第6章参考文献 (15)第7章附录(实物图,程序清单) (16)第1章课程设计内容及要求一、设计内容:1.1.1、了解各种元器件在电路中的作用和一些芯片的功能,并学会掌握Keil和proteus两个软件;1.1.2、对照原理图在proteus软件中画出原理电路图;1.1.3、检查焊接好的硬件实物图并检验实物图效果;1.1.4、根据实物图写出程序并仿真,并结合Keil和proteus两个软件进行调试和仿真。

二、设计要求:1.2.1外部功能按键连接于(INT0/1)作用时,分别实现开始、停止的功能。

具体过程为:按开始键,LED循环显示,按停止键时,LED循环状态暂停,若正巧最后一个LED被点亮,而其他LED皆熄灭时,表示该操作人获胜,赢得游戏,同时蜂鸣器鸣响较长时间,以示庆祝。

反之则蜂鸣器鸣响较短时间示意输掉游戏。

下次再按下开始键,游戏又开始;1.2.2、按下开关K1,实现跑马灯模式则进行灯循环点亮;1.2.3、按下开关K2,跑马灯停止循环,并停在LED灯中的一个;1.2.4、若是停在P1.0~P1.6中的一个,则响起短时间的音乐并表示游戏失败;1.2.5、若是停在P1.7LED灯时,则该对应的这LED 灯亮并响起较长时间的音乐并表示游戏胜利。

第2章引言跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由多个LED发光二极管组成。

在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。

当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。

此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。

本设计使用AT89C2051芯片,利用P1的8个端口连接8个发光二极管,通过P1.0到P1.7的值控制“跑马灯”的亮灭,以达到显示效果。

单片机整套实验及程序(交通灯_跑马灯等)

单片机整套实验及程序(交通灯_跑马灯等)

实验1 跑马灯实验一、实验目的●初步学会Proteus ISIS和uVision2单片机集成开发环境的使用;●初步掌握采用汇编语言与C语言开发单片机系统的程序结构;●掌握80C51单片机通用I/O口的使用;●掌握单片机内部定时/计数器的使用及编程方法以及中断处理程序的编写方法。

二、实验设备及器件●硬件:PC机,HNIST-1型单片机实验系统●软件:Proteus ISIS单片机仿真环境,uVision2单片机集成开发环境三、实验内容●编写一段程序,采用P1口作为控制端口,使与P1口相接的四个发光二极管(D1、D2、D3、D4)按照一定的方式点亮。

如点亮方式为:先点亮D1,延时一段时间,再顺序点亮D2……D4,然后又是D4……D1,同时只能有一个灯亮;然后每隔一段时间一次使相邻两个灯亮,三个灯亮,四个灯亮,最后闪烁三次,接着循环变化。

●基于Proteus ISIS仿真环境完成上述功能的仿真。

●基于uVision2单片机集成开发环境与硬件平台完成程序的脱机运行。

四、实验原理图图3.1 跑马灯实验电路原理图电路原理图如上图3.1所示,AT89S52的P1.0~P1.3控制4个发光二极管,发光二极管按照一定次序发光,相邻发光二极管的发光时间间隔可以通过定时器控制,还可以通过软件延时实现。

五、软件流程图与参考程序●主程序流程图如下:●参考程序#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar aa,num,speed,flag;uchar code table[]={0x0e,0x0d,0x0b,0x07};uchar code table1[]={0x0a,0x05,0x09,0x06};uchar codetable2[]={0x0c,0x09,0x03,0x08,0x01,0x0e,0x0c,0x08,0x00};void delay(uint z)//延时函数{uint x;uchar y;for(x=z;x>0;x--)for(y=200;y>0;y--);}void init()//条件初始化函数{ flag=0;speed=10;//控制跑马灯流水速度TMOD=0x01;//中断方式TH0=(65535-50000)/256;TL0=(65536-50000)%256;//初值EA=1;//打开总中断ET0=1;//打开外中断0TR0=1;}void main(){init();//调用初始化函数while(1){if(flag){delay(2000);//调用延时函数for(num=0;num<4;num++)//从左至右间隔一个依次闪烁{P1=table[num];delay(2000);}for(num=3;num>0;num--)//从左至右间隔一个依次闪烁{P1=table[num];delay(2000);}for(num=0;num<4;num++)//从左至右间隔两个依次闪烁{P1=table1[num];delay(2000);}for(num=3;num>0;num--)//从左至右间隔两个依次闪烁{P1=table1[num];delay(2000);}for(num=0;num<6;num++)//两个,三个,四个跑马灯依次闪烁{P1=table2[num];delay(2000);}for(num=0;num<5;num++)//闪烁5次{P1=0xff;//全暗delay(2000);P1=0X00;//全亮delay(2000);}speed=speed-3;//变速if(speed==4){speed=10;}}}}void timer0() interrupt 1//中断函数{TH0=(65535-50000)/256;TL0=(65536-50000)%256;aa++;if(aa==speed){aa=0;flag=1;}}六、实验思考题●请用汇编指令完成本实验内容,深刻理解汇编语言程序设计结构。

51单片机的音乐跑马灯设计

51单片机的音乐跑马灯设计

摘要单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。

近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。

本设计使用AT89C52芯片,利用P0的8个端口连接8个发光二极管,P1的8个端口连接8个发光二极管,通过P0.0到P0.7的值和P1.0到P1.7的值控制“跑马灯”的亮灭,以达到显示效果。

设计的中断程序要对多个按键动作进行响应,灯光变换的花样有15种,用模式按钮切换。

按下模式按钮键,程序将按十五种模式切换,每按一次模式按钮键,切换一次跑马灯模式,而加速按钮和减速按钮可以改变闪烁速度;最后一种模式为音乐模式,加速按钮可切换音乐。

在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。

当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。

此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。

关键词:音乐跑马灯;AT89C52单片机;74LS245驱动芯片;LED发光二极管1 设计概述 (1)1.1设计目的 (1)1.2设计作用 (1)1.3设计要求 (1)1.4系统设计框图 (1)2元器件介绍 (3)2.1AT89C52单片机 (3)2.2驱动芯片74LS245 (3)2.3其他元件及功能 (4)3 硬件电路设计 (6)3.1单片机最小系统 (6)3.2LED显示部分 (7)3.3按钮控制部分 (7)3.4数码管显示电路 (8)3.5蜂鸣器部分 (8)3.6系统总电路图 (9)4 软件设计 (10)4.1 程序流程图 (10)4.2 程序设计 (10)5 结束语 (32)参考文献 (33)1 设计概述1.1设计目的利用所学单片机的理论知识进行软硬件整体设计,培养学生分析、解决问题的能力,锻炼学生理论联系实际、综合应用的能力。

最新单片机汇编语言跑马灯

最新单片机汇编语言跑马灯

实验一跑马灯-亮灯左移右移循环黄天佑 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),即可。

51单片机走马灯实验报告

51单片机走马灯实验报告

微机原理及单片机应用实验实验报告实验跑马灯一、实验内容开关控制输出方式,共四种,开关拨到k1时奇数灯亮,开关拨到k2时偶数灯亮,开关k3时奇数偶数灯轮流亮,开关拨到k4时从左到右依次亮,开关拨到k5时从右到左依次亮。

二、实验步骤①依次L1-L8接入P1.0-P1,7,将P3接入高低电平开关②编程③实现三、实验原理图四.实验程序清单ORG 0000HPX00: MOV P1,#0FFH KEY : MOV A,#0FEHPO00: JB P3.0,PO01JNB P3.0,PO02PO01: MOV A,#055HMOV P1,ALJMP PO00PO02: JB P3.1,PO03JNB P3.1,PO04PO03: MOV A,#0AAHMOV P1,ALJMP PO00PO04: JB P3.2,PO05JNB P3.2,PO06PO05:MOV A,#0FEHK1:MOV P1,AJNB P3.2,LASTAJMP W1W1:RL ASJMP K1C1:MOV R6,#0A0HMOV R7,#0FFHK2:MOV R7,#0FFHK3:DJNZ R7,K3DJNZ R6,K2LJMP W1PO06:JB P3.3,PO07JNB P3.3,PO08PO07:MOV A,#7FHK4:MOV P1,AJNB P3.3, LASTAJMP W2W2: RR ASJMP K4C2: MOV R6,#0A0HMOV R7,#0FFHK5:MOV R7,#0FFHK6:DJNZ R7,K6DJNZ R6,K5LJMP W2PO08:JB P3.4,PO09JNB P3.4,LASTPO09:MOV A,#55HMOV P1,AMOV R6,#0A0HMOV R7,#0FFHK7:MOV R7,#0FFHK8:DJNZ R7,K8DJNZ R6,K7MOV A,#0AAHMOV P1,AMOV R6,#0A0HMOV R7 ,#0FFHK9:MOV R7,#0FFHK10:DJNZ R7,K10DJNZ R6,K9LJMP PO08LAST:MOV P1,#0FFHLJMP PO00END五、实验总结参考8255交通灯实验,加上延时程序以及查询式的跳转方法实现跑马灯。

单片机实例之跑马灯资料PPT文档62页

单片机实例之跑马灯资料PPT文档62页

36、自己的鞋子,自己知道紧在哪里。——西班牙
37、我们唯一不会改正的缺点是软弱。——拉罗什福科
xiexie! 38、我这个人走得很慢,但是我从不后退。——亚伯拉罕·林肯
39、勿问成功的秘诀为何,且尽全力做你应该做的事吧。——美华纳
单片机实例之跑马灯资料
16、自己选择的路、跪着也要把它走 完。 17、一般情况下)不想三年以后的事, 只想现 在的事 。现在 有成就 ,以后 才能更 辉煌。
18、敢于向黑暗宣战的人,心里必须 充满光 明。 19、学习的关键--重复。
20、懦弱的人只会裹足不前,莽撞的 人只能 引为烧 身,只 有真正 勇敢的 人才能 所向披 靡。
40、学而不思则罔,思而不学则殆。——孔子

AVR第1讲实例一跑马灯

AVR第1讲实例一跑马灯

第1讲实例一跑马灯程序什么是单片机?定义:单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲:一块芯片就成了一台计算机。

特点:它的体积小、质量轻、价格便宜。

应用:单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

其它:学习使用单片机是了解计算机原理与结构的最佳选择。

单片机的种类多8位单片机:51系列(8031,8051,AT89C51/52,AT89S51/52),AVR(ATmega 16/32/128),华邦的W77xx、W78xx系列,Motorola单片机: M68HC11,M68HC12 等等16位单片机:PIC系列单片机16cxx 16fxx,32位单片机:32位的单片机像ARM7、ARM9等AVR芯片入门AVR单片机有3个档次:低档Tiny;中档AT90S系列 (正在淘汰或转型到Mega中);高档ATmega系列AVR单片机: 主要有ATmega8/16/32/64/128(存储容量为8/16/32/64/128 KB)等。

ATmeg16,40脚PDIP封装,44脚TQFP封装产品特性•高性能、低功耗的 8 位AVR®微处理器•先进的RISC 结构– 131 条指令–大多数指令执行时间为单个时钟周期– 32个8 位通用工作寄存器–全静态工作–工作于16 MHz 时性能高达16 MIPS–只需两个时钟周期的硬件乘法器•非易失性程序和数据存储器– 16K 字节的系统内可编程Flash擦写寿命: 10,000 次–具有独立锁定位的可选Boot 代码区通过片上Boot 程序实现系统内编程真正的同时读写操作– 512 字节的EEPROM擦写寿命: 100,000 次– 1K字节的片内SRAM–可以对锁定位进行编程以实现用户程序的加密•外设特点–两个具有独立预分频器和比较器功能的8 位定时器/ 计数器–一个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器–具有独立振荡器的实时计数器RTC–四通道PWM– 8路10 位ADC8 个单端通道TQFP 封装的7 个差分通道2 个具有可编程增益(1x, 10x, 或200x)的差分通道–面向字节的两线接口–两个可编程的串行USART–可工作于主机/ 从机模式的SPI 串行接口–具有独立片内振荡器的可编程看门狗定时器–片内模拟比较器•特殊的处理器特点–上电复位以及可编程的掉电检测–片内经过标定的RC 振荡器–片内/ 片外中断源– 6种睡眠模式: 空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby 模式以及扩展的Standby 模式• JTAG 接口( 与IEEE 1149.1 标准兼容)–符合JTAG 标准的边界扫描功能–支持扩展的片内调试功能–通过JTAG 接口实现对Flash、EEPROM、熔丝位和锁定位的编程• I/O 和封装– 32 个可编程的I/O 口– 40引脚PDIP 封装, 44 引脚TQFP 封装, 与44 引脚MLF 封装•工作电压:– ATmega16L:2.7 - 5.5V– ATmega16:4.5 - 5.5V•速度等级– 0 - 8 MHz ATmega16L– 0 - 16 MHz ATmega16• ATmega16L 在1 MHz, 3V, 25°C 时的功耗–正常模式: 1.1 mA–空闲模式: 0.35 mA–掉电模式: < 1 μA新手入门的第一个范例实验要求:编写一段C代码,控制8只发光二极管的跑马灯程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档