单片机跑马灯程序和图

单片机跑马灯程序和图
单片机跑马灯程序和图

#include"iom16v.h"

void Delay_1_ms(void)

{

unsigned char cnt_i,cnt_j;

for(cnt_i=0;cnt_i<40;cnt_i++)

{

for(cnt_j=0;cnt_j<33;cnt_j++) {

}

}

}

void Delay_n_ms(unsigned int n_ms) {

unsigned int cnt_i;

for(cnt_i=0;cnt_i

Delay_1_ms();

}

}

void main(void)

{

unsigned char cnt_i;

DDRB=0xFF;

PORTB=0xFF;

while(1)

{

for(cnt_i=0;cnt_i<8;cnt_i++)

{

PORTB=(1<

Delay_n_ms(50);

}

for(cnt_i=7;cnt_i>=0;cnt_i--)

{

PORTB=(1<

Delay_n_ms(50);

}

}

}

此程序是用单片机的p1口接八个led灯作跑马灯试验

拆字程序 Org 0000h Mov A , 2000H Add A ,#F0H MOV 2001H ,A MOV A ,2000H ADD A , #0FH MOV 2002H , A MOV A , 2001H ADD A , 2002H END 拆分BCD 码 ? *************************************************************************** ;此程序是用单片机的p1口接八个led灯作跑马灯试验,八个led依次亮了又熄灭,形成漂亮;的跑马灯。本人已经试验成功。 ;单片机教程网https://www.360docs.net/doc/b38991890.html, 原创

;该8路单片机跑马灯程序代码简单,电路也容易搭建,只需把led接在p1口上就可以了,希望大家能试验成功顺利的完成跑马灯报告 ;*************************************************************************** org 0000h loop0:cjne r0 ,#01h,rel,loop0 ;判断开关打开情况 ajmp start;跳转到程序开始 org 0030h;定义起始汇编地址 start: mov a,#0ffh ; clr c ; mov r2,#08h ;循环八次。 loop: rlc a ;带进位左移。 mov p1,a ;此时led灯开始有反映了。 call delay ;延时 djnz r2,loop ;循环(djnz条件判断) mov r2,#07h ; loop1: rrc a ;带进位右移 mov p1,a ;此时led灯开始有反映了。 call delay ; djnz r2,loop1 ;反复循环 jmp start ;回到程序的开头 delay: mov r3,#20 ;延时子程序 d1: mov r4,#20 d2: mov r5,#248 djnz r5,$ djnz r4,d2 ```````````````````````````````````````````````---------3路单片机跑马灯程序---------------------------------------

用单片机编写几种跑马灯

用单片机编写几种跑马灯 任务: 1、在电路板上实现跑马灯,一次1匹 2、在电路板上实现跑马灯,一次2匹 3、在电路板上实现4个二极管的同时闪烁 源程序1: /***********************************信息**************************************** **作者:刘海涛 **版本:初始版V1.0 **描叙:用电路板实现跑马灯。 **日期:2010年7月25日 *******************************************************************************/ /**********************************头文件*************************************** **头文件"reg52.h" *******************************************************************************/ /**********************************函数名*************************************** **函数名:延时函数delay() **输入:无 **输入:无 **宏定义:无 *******************************************************************************/ /**********************************宏定义*************************************** 宏定义:#define XBYTE ((unsigned char *)0x20000L) *******************************************************************************/ #include"reg52.h" delay(unsigned int dat) // 延时函数定义 { unsigned int i,j; for(i=0;i

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)

单片机跑马灯汇编程序与仿真

51单片机P1口跑马灯的汇编语言编程和protues仿真 ;跑马灯程序1 ;用软件技术器实现1秒间隔LED循环点亮 ;三层循环计数实现1秒延时,250*250*8=0.5秒 ;由于软件延时需要计算代码执行的时间,所以近似1秒 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV P1,#0FFH MOV A,#0FEH LOOP: MOV P1,A LCALL TIMEER RL A SJMP LOOP TIMEER: MOV R5,#08H LOOP1: MOV R6,#0FAH LOOP2: MOV R7,#0FAH LOOP3: DJNZ R7,LOOP3 DJNZ R6,LOOP2 DJNZ R5,LOOP1 RET END ;跑马灯程序2 ;定时/计数器1控制1秒间隔LED循环点亮 ORG 0000H LJMP MAIN ORG 001BH LJMP T1_INT ORG 0100H MAIN: MOV R0,#20 ;软计数器 MOV TMOD,#10H ;定时器1方式1 MOV P1,#0FFH ;熄灭所有LED MOV A,#0FEH ;点亮第一个LED MOV TH1,#3CH MOV TL1,#0B0H ;赋初值 SETB ET1 SETB EA ;开中断 SETB TR1 ;启动定时器 SJMP $ ;等待中断 T1_INT: MOV TH1,#3CH

MOV TL1,#0B0H ;赋初值 DEC R0 ;软计数 CJNE R0,#00H,LP RL A ;灯移位 MOV P1,A ;灯改变 MOV R0,#20 ;软计数器初值 LP: RETI ;跑马灯程序3 ;定时/计数器1控制1秒间隔LED循环点亮 ;外部中断1控制按键按下跑马灯启动或者停止 ORG 0000H LJMP MAIN ORG 0013H LJMP INT1_INT ;外部中断服务程序,按键触发 ORG 001BH LJMP T1_INT ;定时器中断,1秒中断一次 ORG 0100H MAIN: MOV R0,#20 ;软计数器计数次数 MOV TMOD,#10H ;定时器1方式1 MOV P1,#0FFH ;熄灭所有LED MOV A,#0FEH ;点亮第一个LED MOV TH1,#3CH MOV TL1,#0B0H ;定时器赋初值 SETB I T1 ;外中断1采用下降沿触发 SETB E X1 ;允许外部中断1 SETB ET1 ;允许定时器中断 SETB EA ;开中断 SETB TR1 ;启动定时器1 SJMP $ ;等待中断 T1_INT: MOV TH1,#3CH MOV TL1,#0B0H ;定时器赋初值 DEC R0 ;软计数 CJNE R0,#00H,LP ;判断计数次数是否达到,是则跳转 RL A ;灯移位 MOV P1,A ;灯改变 MOV R0,#20 ;软计数器初值 LP: RETI INT1_INT: MOV A,#0FFH ;按键按下,LED熄灭 MOV P1,A ;灯改变 CPL TR1 ;定时器改变开关状态 MOV A,#0FEH ;点亮第一个LED RETI ;中断返回

单片机跑马灯c语言程序

#include //头文件 #define uchar unsigned char //宏定义 sbit Beep = P3^4; // 蜂鸣器 uchar code led[]={ 0xff,0xfe,0xfd,0xf7,0xef,0xbf,0x7f,0x00 }; /**********延时子函数************/ void delay(unsigned int time) { unsigned int i,j; for(i=0;i0;j-=2) { P0 = led[j]; delay(500); } for(j=5;j>0;j-=2) { P0 = led[j]; delay(500); } } } /*****************计数器中断1***************/ void inttre() interrupt 3

{ unsigned int i,j; i=10; for(j=0;j<10;j++) { Beep=1; delay(i); Beep=0; delay(i); i+=60; } } /*******************外部中断1***************/ void inttrer() interrupt 2 { unsigned int i; for(i=1;i<7;i++) { P0 = led[i]; delay(500); } }

单片机汇编语言跑马灯

实验一跑马灯-亮灯左移右移循环 黄天佑 155 一、实验目的 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; 延时子程序 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:流水灯 二、 具体操作: 1、计数器功能 数码管的动态显示。每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。 2、流水灯 当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。 三、 程序流程图 开始 定时器T0 设置初值,启动定时器, 打开中断 复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开

四、程序 #include typedef unsigned char uint8; typedef unsigned int uint16; //类型定义 sbit P2_1 = P2^1; sbit P2_2 = P2^2; sbit P2_3 = P2^3; sbit P2_4 = P2^4; //位声明四个数码管开关 sbit Key2 = P3^2; sbit Key3 = P3^3; //位声明2个按键K2和K3 sbit Ledk = P2^0 ; //LED 开关 void delay(uint16 i); //延时函数声明 void refresh (); // 数码管刷新函数声明 void liushuideng(); //流水灯函数声明 uint8 number[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //数码管的真值表 uint8 out[4] = {0}; // 数组变量 uint16 counter=0; //用作计数器的变量 uint16 Time_counter=0; //用作定时器的变量 void main() //主函数 { TMOD = 0x01; //定时器0,工作方式一 TH0 = 0xFC; TL0 = 0x18; //定时器初值使每次循环为1ms TR0 = 0; //定时器0开始作 ET0 = 0; // 定时器中断关 EA = 0; // 关中断 while(1) //计数器模式 { Ledk =1 ; //led开关关 out[0]=number[counter%10]; //取个位 out[1]=number[counter%100/10]; //十位 out[2]=number[counter%1000/100]; //百位 out[3]=number[counter/1000]; //千位 if (!Key2) //计数器加1 { ++counter; //自加 out[0]=number[counter%10]; //取个位 out[1]=number[counter%100/10]; //十位 out[2]=number[counter%1000/100]; //百位 out[3]=number[counter/1000]; //千位

基于单片机的跑马灯课程设计(1)

电气及自动化课程设计报告题目:基于单片机的跑马灯课程设计 课程:单片机原理及其应用 学生姓名:刘昊杰 学生学号: 1414050319 年级: 2014级 专业:电气工程及其自动化 班级: 3班 指导教师:缪玉桂 机械与电气工程学院制 2016年11月

目录 1 设计的任务与要求 (1) 1.1 课程设计的任务 (1) 1.2课程设计的要求 (1) 2 芯片分析和设计概述 (2) 2.1 AT89C51芯片分析 (2) 3 设计概述 (5) 4 硬件电路设计 (6) 5 程序部分设计 (7) 6 实验总结 (12) 7 参考文献 (12)

基于单片机的跑马灯课程设计 学生:刘昊杰 指导教师:缪玉桂 机械与电气工程学院电气工程及其自动化专业 1 设计的任务与要求 1.1 课程设计的任务 (1)掌握单片机的接口技术及相关外围芯片的外特性,控制方法。 (2)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。 (3)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。 (4)与模拟电子技术,数字电子技术等课程相结合,进一步熟悉和掌握单片机的结构及工作原理,为以后所学的后续课程打下良好的基础。 (5)通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。 1.2课程设计的要求 该设计使用AT89C51芯片作为控制芯片,利用P1口连接8个发光二极管,通过I/O 的值控制“跑马灯”的亮灭,以达到显示效果。开始时所有灯全亮,按下按键S时开始跑马灯,再按下按键S时停止,再按下S时继续,并要求有多种亮暗组合。

基于单片机的跑马灯系统的设计与实现

《单片机及控制系统设计》 课程设计报告 题目:基于单片机的跑马灯系统的设计与实现院(系):机电与自动化学院 专业班级:电气自动化技术0901 学生姓名:詹志鹏 学号:20092822006 指导教师:汪媛 2011年12月26日至2012年1月10日 华中科技大学武昌分校

目录 1设计题目及要求 (1) 1.1设计题目 (1) 1.2设计目的 (1) 1.3控制要求 (1) 2硬件设计 (2) 2.1单片机简介 (2) 2.1.1 单片机的引脚 (2) 2.1.2单片机的内部结构 (3) 2.2电源电路 (4) 2.3时钟电路 (4) 2.4复位电路 (5) 2.5 EA/VPP(31脚)的功能和接法 (6) 2.6 P0 口外接上拉电阻 (6) 2.7 发光二级管 (7) 2.8 显示电路部分 (8) 2.9 AT89C51单片机最小系统 (9) 3 软件设计 (10) 3.1源程序与注释 (10) 3.2软件编译、调试与烧入 (11) 总结 (16) 附录实物图 (17) 参考文献 (18)

1.设计题目及要求 1.1设计题目 单片机小系统版控制LED灯 1.2设计目的 1.单片机最小应用系统的硬件设计技能训练; 2.ASM语言或C51语言软件编程与调试技能训练; 3.“下载及烧录(固化)程序”开发技能训练; 4.Protell软件应用技能训练; 1.3控制要求 按键及外部中断控制二级管灯(自右向左) 1.按键控制8个LED灯循环自右向左依次点亮 2.间隔时间可以自行设计 3.单号灯亮双号灯灭 7→ 5→ 3→ 1→ 7→ 5→ 3→ 1…… 1.外部中断控制8个LED灯循环自右向左依次点亮 2.间隔时间可以自行设计 3.双号灯亮单号灯灭 8→ 6→ 4→ 2→ 8→ 6→ 4→ 2…… 2.硬件设计 2.1单片机简介 2.1.1单片机的引脚 (1)电源:40号引脚VCC是芯片电源,接+5V。20号引脚VSS为电源接地端。

单片机跑马灯实验

实验一、输入输出实验 实验目的: 1、体验单片机的程序编写和运行过程 2、掌握汇编语言的设计编译和运行 实验内容: 用P0端口作输入,P1端口做输出。程序循环从P0端口读入数据,从P1端口输出。输出用LED灯显示。 实验步骤和方法: 1、搭电路。输入端口的6个口接开关接口,输出6个接口接LED灯。 2、编写程序 3、调试程序 实验要求: 1、先用proteus软件搭建电路,编写程序作仿真。 2、在软件里验证好程序再上实验平台验证

I/O实验程序: ORG 0000H MAIN: MOV P0,#0FFH LOOP: MOV A,P0 MOV P1,A LJMP LOOP END

实验二、跑马灯实验目的: 1、掌握单片机的输出 2、掌握子程序的调用方法 3、掌握定时的设置方法 实验内容: 8个LED灯轮流点亮,点亮间隔为1秒。 定时方法采用子程序调用,延时子程序已经编写好。实验步骤和方法: 1、搭电路。P1作输出端口,接LED灯。 2、编写程序 3、调试程序 实验要求: 1、先用proteus软件搭建电路,编写程序作仿真。 2、在软件里验证好程序再上实验平台验证。 附:延时子程序 DELAY: M OV R3,#20 ;延时0.2s D1: MOV R4,#20 D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET

跑马灯延时子程序 ORG 00H JMP MAIN ORG 30H MAIN: MOV A,#0FFH CLR C MOV R2,#08H ;循环八次LOOP: RLC A ;带进位左移 MOV P2,A MOV R7,#05H LOOP1: CALL DELAY DJNZ R7,LOOP1

单片机闪烁灯跑马灯控制课程设计

闪 烁 灯 跑 马 灯 控 制 系 统 河南工院

第1章概述 (3) 1.1设计的目的及意义 (3) 1.2单片机的概述与应用 (3) 第2章设计原理 (4) 2.1设计要求与基本思路 (4) 2.2设计方案选择 (5) 2.3设计框图 (5) 第3章硬件电路设计 (7) 3.1时钟电路 (7) 3.2扩展电路 (8) 第4章程序设计 (9) 4.1 程序设计思路与流程图 (9) 4.2程序清单与代码 (11) 4.3程序调试 (12) 第5章原件明细表 (13) 总结 (14) 参考文献 (15)

第1章概论 1.1设计的目的与意义 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。 闪烁灯控制系统是利用8051单片机的P1控制的8个发光二极管。可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭1秒,如此循环,紧急情况下,控制P3.1进行报警2S停止。 闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础 1.2单片机概述与应用 单片机是将CPU、存储器、定时/计数器以及I/O接口等主要部件集成在一块芯片上的微型计算机。单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的名称应是微控制器。目前国外已经普遍称之为微控制器。鉴于他完全作嵌入式应用,故又称为嵌入式微控制器 单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。 自从20世纪70年代推出单片机以来,作为微型计算机的一个分支,单片机经过30多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等(1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统。 (2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。 (3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。 (4)商用产品:如自动售货机、电子收款机、电子秤。

单片机跑马灯实验报告

2010年中职骨干教师国家级培训 单片机焊接与调试 实验报告 学员姓名:王军朝 专业:电子电器应用与维修 单位:山西省临猗县第一职业中学 时间:2010年7月23日

实验一熟悉最小单片机组装及keil的使用 实验题目: 用P1口的P1.0~P1.3作为输入,读取开关K0~K3上的数据,用P1.4~P1.7作为输出,控制发光二极管L0~L3。设晶振频率 fosc=12MHz,为更好的观察实验现象,要求程序在延时1S后再执行下一条。 实验目的:熟悉最小单片机组装及STC ISP和keil软件的使用,并进行调试。 实验内容:最小单片机的组装与焊接,熟悉实验环境,掌握keil 的使用方法;建立工程,编程,调试并运行程序。 基本要求:能够在计算机上使用相应的软件建立一个工程,应用简单指令编写简单的程序进行编译,并在实验板上调试成 功。 实验工具: 1、单片机测试平台:PC机,串口线,并口线,单片机开发板。 2、软件:keil51测试软件,STC软件,串口调试软件,定时器 /计数器初值测试软件。 3、万用表,尖嘴钳,斜口钳,镊子,剪刀,螺丝刀(十字/一 字),电烙铁,烙铁架,松香,焊锡,清洁棉,工具箱。 电路原理:

程序流程: 实现小灯随开关闭合亮的程流程图 实验步骤:

1、应的元件组装最小单片电路 成果图 2、进行编程 ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV SP,#60H ;主程序开始,设置堆栈SP为60H MOV A,#0FH MOV P1,A ;数据送P1口,设置P1.0~P1.3为输入NEXT:MOV A,P1 ;读K0~K3上的数据 SWAP A ;A的低4位与高4位交换 ORL A,#0FH ;A的高4位不变,低4位为全1 MOV P1,A ;送数据到L0~L3,设置P1.0~P1.3为输入LCALL DELAY ;调用延时子程序 LJMP NEXT ;循环

PROTEUS__跑马灯__单片机课程设计

三、电路设计及功能说明,硬件原理框图及电路图(包括接口芯片简介); 本次设计采用AT89C52芯片驱动可编程接口芯片8255的扩展来实现LED 灯的多种显示方式。让AT89C52芯片的P0口与8255芯片的三态双向数据总线D0~D7连接,实现数据传送。当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255的地址选择线A1、A0分别与AT89C52的P2.7和P2.6连接,通过定义不同的地址来定义8255芯片PA 口和PB 口的工作方式。读写命令线分别与单片机的读写命令线相连,片选线直接接地,复位线RESET 接单片机的P2.5。同时PA 口与8个LED 灯顺序连接。PB 口与8个LED 灯逆序连接,通过按键控制可以选择不同的运行模式,实现多种跑马灯的运行模式。 硬件原理框图 P1口 A T89C52 P0口 D0~D7 PA 口 PB 口 “顺”“逆”模式选择开关 …… …… 8255

电路图

接口芯片简介 (1)AT89C52 AT89C52是51系列单片机的一个型号,它 是ATMEL公司生产的。 AT89C52是一个低电压,高性能CMOS 8 位单片机,片内含8k bytes的可反复擦写的 Flash只读程序存储器和256 bytes的随机存 取数据存储器(RAM),器件采用ATMEL公司 的高密度、非易失性存储技术生产,兼容标准 MCS-51指令系统,片内置通用8位中央处理 器和Flash存储单元,功能强大的AT89C52 单片机可为您提供许多较复杂系统控制应用场合。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。 主要功能特性: · 兼容MCS51指令系统· 8k可反复擦写(>1000次)Flash ROM · 32个双向I/O口· 256x8bit内部RAM · 3个16位可编程定时/计数器中断· 时钟频率0-24MHz · 2个串行中断· 可编程UART串行通道 · 2个外部中断源· 共6个中断源 · 2个读写中断口线· 3级加密位 · 低功耗空闲和掉电模式· 软件设置睡眠和唤醒功能

单片机跑马灯实验报告

单片机跑马灯实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

学号序号 19 单片机原理与接口技术 实验报告 实验项目序号一 实验项目名称跑马灯实验 姓名卢志雄专业电子信息工程班级电信14-2BF 完成时间 2016年4月2日

一、实验内容 实验内容为3项,其中第1、2项必做。 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 跑马灯实验电路原理图三、程序流程图 图2 简单键控的流水灯程序流程图

四、源程序 1、基本的流水灯 #include<> #define uint unsigned int #define uchar unsigned char void delay( j ) //延时函数 data uint j; { data uint i; while(j--) for(i=0;i<250;i++); } void main( ) //主函数 { data uchar a; a=1; //保证只有一个点亮 while(1) //不断循环 { P2=~a; //低电平点亮 a=a<<1; //左移一位,右补0 if(a==0)a=1; //全0 delay(2250);} //流动点亮延时 } 2、简单键控的流水灯

51单片机跑马灯编程思路

51单片机跑马灯编程思路 #include //预处理文件里面定义了特殊寄存器的名称如P1 口定义为P1 void main(void) { //定义花样数据 const unsigned char design[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F, 0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF, 0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0, 0xE7,0xDB,0xBD,0x7E,0xFF}; unsigned int a; //定义循环用的变量 unsigned char b; //在C51 编程中因内存有限尽可能注意变量类型的使用 //尽可能使用少字节的类型,在大型的程序中很 受用 do{ for (b=0; b<32; b++) { for(a=0; a<30000; a++); //延时一段时间 P1 = design[b]; //读已定义的花样数据并写花样数据到P1 口 } }while(1); } 程序中的花样数据可以自以去定义,因这里我们的LED 要AT89C51 的P1 引脚为低电平才会点亮,所以我们要向P1 口的各引脚写数据O 对应连接的LED 才会被点亮,P1 口的八个引 脚刚好对应P1 口特殊寄存器的八个二进位,如向P1 口定数据0xFE,转成二进制就是11111110,最低位D0 为0 这里P1.0 引脚输出低电平,LED1 被点亮。如此类推,大家不难算 出自己想要做的效果了。

单片机跑马灯实验报告

学号14142200277序号19 单片机原理与接口技术 实验报告 实验项目序号一 实验项目名称跑马灯实验 姓名卢志雄专业电子信息工程班级电信14-2BF 完成时间2016年4月2日

一、实验内容 实验内容为3项,其中第1、2项必做。 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 跑马灯实验电路原理图

三、程序流程图 图2 简单键控的流水灯程序流程图 四、源程序 1、基本的流水灯 #include #define uint unsigned int #define uchar unsigned char void delay( j ) //延时函数 data uint j; { data uint i; while(j--) for(i=0;i<250;i++); } void main( ) //主函数 { data uchar a; a=1; //保证只有一个点亮

while(1) //不断循环 { P2=~a; //低电平点亮 a=a<<1; //左移一位,右补0 if(a==0)a=1; //全0 delay(2250);} //流动点亮延时 } 2、简单键控的流水灯 #include #define uchar unsigned char #define uint unsigned int void delay(uint i) { uchar t; while(i--) { for(t=0;t<120;t++); } } void main() { data uchar a; a=1; while(P2==0xff) { P0=~a; a=a<<1; if(a==0) a=1; delay(250); } while(P2==0xfe) { P0=~a;

单片机走马灯程序

#include unsigned char RunMode; //**********************************System Fuction************************************************* void Delay1ms(unsigned int count) { unsigned int i,j; for(i=0;i

基于单片机的跑马灯设计剖析

《EDA项目开发》课程设计 任务书 题目名称:基于单片机的跑马灯设计 专业电子工程技术 班级:电子143 姓名刘恒亮学号1430905031 学校:河南职业技术学院 指导教师:秦连铭 2016年6月5日

课程设计任务书 课程名称:微型计算机系统 设计题目:基于单片机的跑马灯设计 系统硬件要求: 根据实际要求,以MCS-51单片机为核心,设计3个按键,每个按键对应一个花样,可手动显示,即按一个按键,显示一种花样,也可以再设计一个按键用于连续显示每个花样,每个花样显示的时间和花样设计者自己规定,并在论文中给定。设计控制系统硬件电路,编写C语言或汇编语言程序,并用PROTEUS软件进行实时仿真。 要求: (1)扩展接口(8255或8155),设计至少4个按键 (2)设计至少32个LED (3)LED显示至少有3种花样,可单独显示也可自动循环显示 软件设计: 1)主程序设计 2)各功能子程序设计 其他要求: 1、每位同学独立完成本设计。 2、依据题目要求,提出系统设计方案。 3、设计系统电路原理图。 1、调试系统硬件电路、功能程序。 2、编制课程设计报告书并装订成册,报告书内容(按顺序) (1)报告书封面 (2)课程设计任务书 (3)系统设计方案的提出、分析 (4)系统中典型电路的分析 (5)系统软件结构框图 (6)系统电路原理图 (7)源程序 (8)课设字数不少于3000字

目录 第一节AT89C51芯片分析...............................................................I 第二节设计概述 (3) 第三节算法 (5) 第四节编程技巧 (7) 第五节电路设计及功能说明,硬件原理框图及电路图(包括接口芯片简介).8 第六节调试过程中的主要难点(自己遇到的)及解决思路和办法; (8) 课设结果及分析、收获、体会和建议; (9) 参考文献 (10) 附录1 (11) 附录2 (12)

单片机 跑马灯课程设计

摘要 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 第一章芯片分析和设计概述.. (2) 第一节AT89C51芯片分析 (2) 第二节设计概述 (5) 第二章硬件电路设计 (6) 第三章程序部分设计 (7) 参考文献 (12)

第一章芯片分析和设计概述 第一节AT89C51芯片分析 ATMEL的AT89S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51的芯片引脚图如下: 图1.1 AT89C51引脚图 各引脚的说明和功能分析如下: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编

61-单片机课程设计-可以调控的跑马灯

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而51单片机是各单片机中最为典型和最有代表性的一种。本课程设计是基于MCS51系列单片机所设计的,用AT89S52芯片控制跑马灯(流水灯),整个系统有8种跑马灯模式可以选择,K1是选择模式键,并将相应的模式在LED七段数码管中显示出来,K2可以对跑马灯的速度进行加速,K3可以对跑马灯的速度进行减速。整个系统可以实现对跑马灯模式的多层控制,还可以进行加减速。 关键词:MCS51、跑马灯、加减速、七段数码管

目录 1、引言 1.1、单片机基础知识 (3) 1.2、单片机的发展趋势 (3) 1.3、本课程设计的目的 (4) 1.4、仪器设备 (4) 1.5、课程设计的内容 (4) 1.6、本设计的题目与要求 (4) 2、总体设计 (4) 2.1、框图设计 (4) 2.2、电路原理图 (5) 2.3、系统材料清单 (5) 2.3.1、AT89C51芯片 (5) 2.3.2、共阳极七段数码显示管 (6) 2.3.3、发光二极管 (8) 2.3.4、轻触开关 (9) 2.4、软件设计 (10) 2.4.1、c语言编程 (10) 2.3.2、软件硬件仿真 (12) 3、实物焊接 (13) 4、结束语 (14) 5、参考文献 (16) 6、附录 (17)

一、引言 1.1 单片机基础知识 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。 单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。 现在,这种单片机的使用领域已十分广泛。彩电、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地融入我们每个人的生活之中。 单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。 MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS- 48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进行理论基础学习。MCS-51系列单片机主要包括8031、8051和8751等通用产品。 1.2 单片机的发展趋势 单片机现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD (液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越

相关文档
最新文档