微机原理课程设计音乐跑马灯程序

合集下载

单片机原理与应用课程设计-基于单片机的音乐跑马灯设计

单片机原理与应用课程设计-基于单片机的音乐跑马灯设计

单片机原理与应用课程设计设计课题:音乐跑马灯班级:小组成员:时间:2013年1月6日音乐跑马灯的设计一、实验内容:1.使用8个发光管作跑马灯,其中有3种亮灭模式。

2.有专门的开关K1~K3用来切换跑马灯的模式。

3.每一种跑马灯模式用LED数码管进行显示1、2、3。

4.当跑马灯处于某种模式时,有对应的音乐响起。

有三首曲子可以选着。

提示:亮灭模式自己设计,可以从速度或者点亮方法上设计。

响音乐的程序可以参考实验手册上《电子音响》部分。

二、实验原理:用三个开关控制音乐跑马灯的三种模式,每一种模式都是在LED数码管显示模式的号码的同时先响音乐后闪灯。

跑马灯采用P3口作为输入口,外接三个开关用来控制跑马灯的亮灭模式。

P1口做输出口,P1口接的8个发光二极管L1~L8按16进制方式点亮发光二极管,即8个发光管相当于8位的二进制位。

当数值为1时,L1点亮;数值为2=00000010B时,L2点亮;数值为4=00000100时,L3点亮,依次类推。

不同的音符对应不同的频率,所以只要用不同频率的信号驱动喇叭,就能发出不同的音符了,所以转换为使用定时器在P1.7引脚输出某一频率的方波脉冲即可。

单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,因此单片机奏乐只需弄清楚两个概念,也就是“音调”和“节拍”。

音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间,乐谱中每一个音符都与某一个特定的频率相对应,所以只需要产生不同频率的方波信号(产生不同音调),并且延时不同的时间(产生不同节拍),即可完成音乐的播放。

三、硬件原理:1.跑马灯亮灭模式原理图,如图(1)所示。

图(1) 跑马灯亮灭模式原理图2.让喇叭响音乐的原理图,如图(2)所示。

图(2) 电子音响原理图3.使第三个LED数码管显示1、2、3、4、5,如图(3)和(4)所示。

图(3) LED共阳极连接原理图图(4) LED数据显示示意图用三个开关(K1~K3)控制音乐跑马灯的三种模式,每一种模式都是在LED 数码管显示模式的号码的同时先响音乐后闪灯。

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

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

单片机闪烁灯跑马灯控制课程设计单片机闪烁灯跑马灯控制课程设计报告一、引言本课程设计旨在通过学习和实践单片机(MCU)编程,实现闪烁灯和跑马灯的控制。

我们将使用嵌入式C语言编程,通过了解单片机的内部结构、电路设计和编程流程,深入理解单片机的工作原理和应用。

二、系统硬件设计本课程设计选用51单片机作为主控芯片,外接8个LED灯和1个按键。

硬件电路设计如下:1.单片机:采用AT89C51,该芯片具有32K字节的Flash存储器,256字节的RAM,以及两个16位定时器/计数器。

2.LED灯:采用普通LED灯珠,与单片机引脚相连,通过编程控制LED灯的亮灭状态。

3.按键:采用机械按键,与单片机的外部中断0(EX0)相连,用于触发闪烁灯和跑马灯的切换。

三、系统软件设计1.闪烁灯模式:在此模式下,8个LED灯将按照一定的频率交替闪烁。

我们可以通过计时器和GPIO口控制LED灯的亮灭状态。

void blink_LED(void) {int i;while(1) {for(i = 0; i < 8; i++) {P1_0 = ~P1_0; // 翻转LED状态delay(500); // 延时,控制闪烁频率}}}2.跑马灯模式:在此模式下,8个LED灯将按照一定的顺序依次点亮。

我们可以通过计时器和GPIO口控制LED灯的亮灭状态。

void marquee_LED(void) {int i;int led_state[8] = {0, 1, 0, 1, 0, 1, 0, 1}; // LED状态数组,初始为交替亮灭while(1) {for(i = 0; i < 8; i++) {P1_0 = led_state[i]; // 设置LED状态delay(50); // 延时,控制跑马灯速度}}}四、按键处理程序我们通过外部中断0(EX0)接收按键信号,当按键按下时,将切换闪烁灯和跑马灯模式。

按键处理程序如下:void EX0_ISR(void) interrupt 0 { // EX0中断服务程序if (key_flag) { // 如果按键已经被按下过if (key_value == 0) { // 如果按键状态为低电平marquee_LED(); // 切换到跑马灯模式key_flag = 0; // 标记按键状态已经改变} else { // 如果按键状态为高电平blink_LED(); // 切换到闪烁灯模式key_flag = 0; // 标记按键状态已经改变}key_value = ~key_value; // 翻转按键状态值} else { // 如果按键还没有被按下过key_value = ~key_value; // 翻转按键状态值if (key_value == 0) { // 如果按键状态为低电平blink_LED(); // 切换到闪烁灯模式key_flag = 1; // 标记按键状态已经改变} else { // 如果按键状态为高电平marquee_LED(); // 切换到跑马灯模式key_flag = 1; // 标记按键状态已经改变}}}。

《微型计算机系统》课程设计基于单片机的跑马灯设计大学论文

《微型计算机系统》课程设计基于单片机的跑马灯设计大学论文

《微型计算机系统》课程设计任务书题目名称:基于单片机的跑马灯设计专业自动化班自本132 姓名刘鑫伟学号201328201 学校:青岛理工大学自动化学院指导教师:史贺男2015年11月30日青岛理工大学自动化工程学院课程设计任务书课程名称:微型计算机系统设计题目:基于单片机的跑马灯设计系统硬件要求:根据实际要求,以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芯片分析ATMEL的AT89S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

微机原理————走马灯实验设计

微机原理————走马灯实验设计

微型计算机技术课程设计指导教师:赵立辉李鹏学生班级:计科10802学生姓名:陈东学号:200803939班内序号:11目录1.……………………………………………………….课设目的2.………………………………………………………课设内容3.…………………………………………问题分析及设计思路4.…………………………………………电路设计及功能说明5.………………………………硬件原理图及接口芯片的介绍6.……………………………………程序流程图及相关源程序7. …………………………………………………实验结果及分析8.…………………………………………………………课设总结一.课设目的1.通过本设计,使学生综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制工作奠定一定的基础。

2.主要掌握接口芯片8253、8255A等可编程器件的使用,掌握译码器74LS138的使用。

3.学会用汇编语言编写一个较完整的实用程序。

4.掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。

二.课设内容1.功能要求:采用8253设计一个1s定时电路,将定时信号接到8255的PC 口的某一位,编程查询该位的状态,若为低电平,则从8255A的PA口输出不同的值使和PA口相接的发光二极管依次变化,实现走马灯的效果。

按下Esc键结束程序。

2.设计所需器材及介绍①一块实验面包板(内含时钟信号1MHz或2MHz)。

②可编程芯片8253、8255A、74LS138、74LS245各一片。

74LS06两片,发光二极管8个,排电阻一个。

③导线若干。

④示波器、万用表、常用工具等共用(从实验室现借现还)三.问题分析及设计思路1.利用74LS138设计地址译码电路,8255A端口地址:300H~303H,8253的端口地址:304H~307H。

2.74LS245用于总线和8253、8255A之间的双向传输和隔离。

微机原理(基于PROTEUS的跑马灯系统设计及仿真)

微机原理(基于PROTEUS的跑马灯系统设计及仿真)

学号:课程设计题目基于PROTEUS的跑马灯系统设计及仿真学院自动化学院专业自动化班级姓名指导教师2012 年 1 月12 日任务书目录引言 (1)1总体方案论证 (2)1.1功能分析 (2)1.2系统连接图设计 (2)1.2.1锁存控制电路 (5)1.2.2可编程并行通信接口芯片8255A (6)2程序流程图设计及其说明 (9)3关键程序段落说明 (11)3.1数据段定义 (11)3.2程序初始化 (11)3.3芯片初始化 (12)3.4初始LED亮灭状态 (12)3.5检测按键开关子程序 (12)3.6延时程序片段 (14)3.7灯光变换控制 (15)4程序调试说明 (16)5结果记录及分析 (17)心得体会 (19)参考文献 (20)引言微型计算机简称微机,由于具备人脑某些功能,所有又叫做微机。

是由大规模集成电路组成的、体积较小的电子计算机。

它是以微处理器为基础,配以存储器及输入输出接口电路和相应的辅助电路构成的裸机。

把微型计算机集成在一个芯片上即构成单片微型计算机。

学习微机原理与接口技术,主要容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言、设计以及微型计算机各个组成部分,而其中很大一块就是汇编语言的学习。

汇编语言是面向机器的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

用汇编语言编写的程序由于目标程序占用存少,运行速度快,它有着高级语言不可替代的用途。

因此,学习汇编语言是很必要的,通过学习汇编语言可以体会它的作用。

通过本次课程设计让我们进一步深入汇编语言的学习,掌握简单的接口设计技术,将理论知识联系实际,进一步学习微机原理与接口技术的相关知识,为以后深入学习打下良好的基础。

1总体方案论证1.1功能分析此次课程设计的要求为,设计微型计算机最小系统,实现跑马灯的模拟显示功能。

具体要求为:(1)、输入设备三个启动按钮、一个停止按钮,输出设备为八个跑马灯;(2)、三个启动按钮对应三种跑马灯显示效果,按下任意一个启动按钮,跑马灯显示对应的效果,按下停止按钮则跑马灯全部熄灭。

微机原理跑马灯课设报告参考模板

微机原理跑马灯课设报告参考模板

微机原理课程设计说明书设计题目:跑马灯学院计算机科学与工程学院专业计算机科学与技术专业班级学生学号同组者指导教师2014 年春季学期目录一、实验简介 (3)1、基本要求 (3)2、设计提示 (3)3、进一步设计要求 (3)二、实验原理 (3)1、实验原理描述 (3)2、8254芯片 (4)2.1、8254芯片组成部分 (4)2.2、8254芯片工作方式 (4)3、8255芯片 (5)3.1、8255芯片的组成部分 (5)3.2、8255芯片工作方式 (6)4、实验原理图 (7)三、实验流程图与源程序 (7)1、流程图 (7)1.1、主程序流程图 (8)1.2 Appmain 子程序流程图 (8)1.3 灯跳转阶段流程图 (10)2、源程序(见附录) (11)四、实验结果与测试 (11)五、实验提高与扩展 (11)六、个人心得与体会 (12)附录 (13)一、实验简介:1、基本要求:采用8254精确定时,LED的点亮规律为LED7--->LED0,每一个LED的点亮时间间隔由逻辑电平开关K1、K2、K3选择,K1的时间间隔为0.5s,K2的时间间隔为1.0s,K3的时间间隔为1.5s。

当主机键盘按下任意键时停止演示。

2、设计提示:采用8255的A口接LED灯,B口接逻辑电平开关K1、K2与K3。

在8254的中断服务程序中完成对灯的控制,主程序检测灯的变化,改变点亮LED的时间间隔。

3、进一步设计要求:将LED的点亮规律变为LED7--->LED0--->LED7。

二、实验原理:1、实验原理描述:该实验中跑马灯采用8255和8254芯片来实现,利用8254芯片来做定时器,采用8254的方式3(方波发声器),因此在8254芯中采用级联的方法,以此来控制跑马灯中实现0.5s,1.0s,1.5s的效果片;在8255芯片中将A口当做输出口连接LED灯,B口一个输入口来掌控三个逻辑开关的打开与关闭,选择三种不同的时间间隔,C7口作为另一个输入口连接着8254芯片的OUT1口来读从8254芯片传来的三种不同大小的频率之一,以此来实现具有三种不同时间间隔跳转的跑马灯。

微机原理(基于PROTEUS的跑马灯系统设计及仿真)资料

微机原理(基于PROTEUS的跑马灯系统设计及仿真)资料

课程设计题目基于PROTEUS的跑马灯系统设计及仿真学院自动化学院专业自动化班级姓名指导教师2012 年 1 月12 日任务书目录引言 (1)1总体方案论证 (2)1.1功能分析 (2)1.2系统连接图设计 (2)1.2.1锁存控制电路 (5)1.2.2可编程并行通信接口芯片8255A (6)2程序流程图设计及其说明 (9)3关键程序段落说明 (11)3.1数据段定义 (11)3.2程序初始化 (11)3.3芯片初始化 (12)3.4初始LED亮灭状态 (12)3.5检测按键开关子程序 (12)3.6延时程序片段 (14)3.7灯光变换控制 (15)4程序调试说明 (16)5结果记录及分析 (17)心得体会 (19)参考文献.................................................................. 错误!未定义书签。

引言微型计算机简称微机,由于具备人脑某些功能,所有又叫做微机。

是由大规模集成电路组成的、体积较小的电子计算机。

它是以微处理器为基础,配以内存储器及输入输出接口电路和相应的辅助电路构成的裸机。

把微型计算机集成在一个芯片上即构成单片微型计算机。

学习微机原理与接口技术,主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言、设计以及微型计算机各个组成部分,而其中很大一块就是汇编语言的学习。

汇编语言是面向机器的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

用汇编语言编写的程序由于目标程序占用内存少,运行速度快,它有着高级语言不可替代的用途。

因此,学习汇编语言是很必要的,通过学习汇编语言可以体会它的作用。

通过本次课程设计让我们进一步深入汇编语言的学习,掌握简单的接口设计技术,将理论知识联系实际,进一步学习微机原理与接口技术的相关知识,为以后深入学习打下良好的基础。

1总体方案论证1.1功能分析此次课程设计的要求为,设计微型计算机最小系统,实现跑马灯的模拟显示功能。

微机原理与接口技术课程设计音乐流水灯

微机原理与接口技术课程设计音乐流水灯

微机原理与接口技术课程设计音乐流水灯专业:自动化班级:1530202姓名:何名春学号:201530020226指导老师:胡文龙一、课程设计题目音乐流水灯二、设计目的和要求(1)、目的a、增强对8255和8253芯片的认识b、掌握8255和8253的工作方式及应用编程。

b、熟悉这类的硬件电路c、提高汇编编程的能力d、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法e、掌握实时处理程序的编制和调试方法。

(2)、要求(a)、利用芯片8255和8253实现8个发光LED流水形式,并且在灯依次亮是加上音调,即利用8255和8253实现音乐背景下8个LED 跑马灯功能。

(b)、利用8253经过驱动电路使发出至少4个音调,8255控制8个LED形成流水灯,(c)、用一个按键控制灯全灭和音调全停。

(d)、软件用循环灯和循环音调,使用移位和数组的方式,不能单独的编写一个灯亮一个灯灭的多个程序组合。

三、设计流程图否四、硬件电路8255与8253组合电路图五、原理分析8255:通过8255的PA口控制8个LED灯,以实现流水的形式,并用一个PB口控制一个开关,以实现闭合开关执行功能,断开开关就实现灯灭、音停。

8255的PC口控制8253的GATE口,以实现GATE=1,就开始计时,则发出音调,否则,则反之。

8253:在CLK输入一个时钟信号,通过8MHZ经过393以输入时钟信号,再输出信号OUT输出给功放电路,驱动扬声器,以达到发出音乐六、软件分析通过对8255和8253的控制字,以让8255的PA输入,PB输出,PC输出,8253选择计数器1,根据硬件的连接,再定义控制字总程序DATA SEGMENTDATA ENDSCODE SEGMENT PUBLIC 'CODE'ASSUME CS:CODEmy_8253_0 equ 400hmy_8253_1 equ 402hmy_8253_2 equ 404hmy_8253_com equ 406hmy_8255_a equ 200hmy_8255_b equ 202hmy_8255_c equ 204hmy_8255_com equ 206hy dw 080h,096h,0aeh,0c5h,0d8h,0e9h,0f5h,0FFH,099H,0c5H,0 aehm dw 3816d,3610d,3413d,3215d,3039d,2865d,2703d,2551d,240 9dSTART:; Write your code hereagain: mov al,90Hmov dx,206hout dx,almov dx,200hin al,dxTEST al,03hjz disp_3test al,01hjz disp_1test al,02hjz disp_2test al,00hjz judgejmp againdisp_1:xor ax,axmov bl,101B mov si,0dxxx:mov dx,406hmov al,36hout dx,almov dx,400hmov ax,y[si]out dx,almov al,ahout dx,alrol bl,1mov al,blmov dx,202hout dx,almov cx,00fffh loop $jmp judgeyyy: inc sijl xxxloop disp_1 disp_2:xor ax,axmov bl,01B mov si,0d sss:mov dx,406hmov al,76hout dx,almov dx,402hmov ax,m[si]out dx,almov al,ahout dx,alror bl,1mov dx,202h out dx,almov cx,0108Bh loop $jmp judge zzz: inc sicmp si,18jl ssstest al,01hjz againloop disp_2disp_3:mov dx,406h mov al,76hout dx,almov ax,01hout dx,almov al,ahout dx,almov dx,406hmov al,36hout dx,almov dx,400hmov ax,01hout dx,almov al,ahout dx,almov al,11111111b mov dx,202hout dx,aljmp againjudge:mov al,90Hmov dx,206h out dx,almov dx,200h in al,dxtest al,03h jz disp_3test al,01h jz yyytest al,02h jz zzztest al,00h mov dx,406hmov al,36hout dx,almov dx,400hmov ax,1out dx,almov al,ahout dx,almov dx,406hmov al,76hout dx,almov dx,402hmov ax,1out dx,almov al,ahout dx,al jz again jmp judgeENDLESS:JMP ENDLESSCODE ENDSEND START七、心得体会早在上课的时候老师就说了课程设计,开始以为时间还早,并没有提前去构思,等到要做课程设计的时候,发现自己并不知道该怎么做,然后就回顾了一下以往做的实验,再自己通过看书上的例子,和网上的例子,先一个一个单独实现,开始先单独把流水灯做了出来,然后再把声音做出来,两个虽然都单独做出来了,但是存在很多问题,开始时,灯只要仿真就全亮,并没有实现流水功能,之后进行了调试与程序的修改,最后实现了流水灯。

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

dseg segment
num dw 0
num1 dw 0
data1 db 0FEh,0FDh,0FBh,0F7h,0EFh,0DFh,0BFh,7Fh
data2 db 7Fh,0BFh,0DFh,0EFh,0F7h,0FBh,0FDh,0FEh
data3 db 7Eh,0BDh,0DBh,0E7h,0E7h,0DBh,0BDh,7Eh
data4 db 0fch,0f9h,0f3h,0e7h,0e7h,0cfh,09fh,03fh
data5 db 03fh,09fh,0cfh,0e7h,0e7h,0f3h,0f9h,0fch
dseg ends
code segment
assume cs:code,ds:dseg
start:
mov ax,dseg
mov ds,ax
mov dx,406h
mov al,36h
out dx,al
mov ax,20000
mov dx,400h
out dx,al
mov al,ah
mov dx,400h
out dx,al ;初始化8253
mov dx,0206h ;取8255A的控制端口的地址
mov al,8bh ;初始化8255A的A口为输出模式,B口为输入模式,c输入out dx,al
mov dx,0200h ;取8255的端口A的地址
mov al,0FFh ;使8255的PA0-PA7全为1
out dx,al
mov dx,0202h ;取8255的端口B的地址
in al,dx ;检测B口输入信号
mov dx,0200h ;取8255的端口A的地址
mov al,0FFh ;使8255的PA0-PA7全为1
out dx,al ;使所有的灯LED全灭
ledflash proc ;检测开关闭合,以便确定哪种闪烁方式
mov dx,0202h ;取8255A的端口B的地址
in al,dx ;检测B口输入信号
choice1:
cmp al,07eh
jne choice2
mov si,offset data1 ;置第一种灯光变幻组合
jmp here
choice2:
cmp al,07dh
jne choice3
mov si,offset data2 ;置第二种灯光变幻组合
jmp here
choice3:
cmp al,07bh
jne choice4
mov si,offset data3 ;置第三种灯光变幻组合
jmp here
choice4:
cmp al,077h
jne choice5
mov si,offset data4 ;置第四种灯光变幻组合
jmp here
choice5:
cmp al,06fh
jne choice6
mov si,offset data5 ;置第五种灯光变幻组合
jmp here
choice6:
cmp al,05fh
jne choice7
mov al,0
mov dx,0200h
out dx,al
choice7: ;每盏灯亮完检测开关,如果停止开关没有按下跳到choice5
cmp al,07fh
jne choice8
jmp exit
choice8:
cmp num,0h;检测num是否为0,若为0扫描开关,若不为0继续执行
jne here
jmp ledflash
here:
mov bx,num
mov al,[si+bx]
mov dx,0200h ;取8255的端口A的地址
out dx,al ;输出加电数据到端口A
inc num ;改变数字变量的值
cmp num,09h
je exit
call delay
jmp ledflash
exit:
mov num,0
jmp ledflash
ret
ledflash endp
delay proc near
dl4: mov dx,0204h
in al,dx
and al,01h
cmp al,1
jz dl4
ret
delay endp
code ends
end start。

相关文档
最新文档