单片机课程设计

发布 2022-10-04 22:00:28 阅读 9621

题目:**《八月桂花香》

班级。姓名。

指导老师。完成日期。

设计任务书。

摘要。本设计是基于单片机的数字**盒设计,由单片机at89c51芯片和lcd显示器为核心,辅以必要的电路,构成的一个单片机电子数字**盒。要求利用i/o口产生一定频率的方波,驱动蜂鸣器,发出不同的音调并采用lcd显示信息,从而演奏乐曲(最少三首乐曲,每首不少于30秒),开机时有英文欢迎提示字符,**时显示歌曲序号(或名称),可通过功能键选择乐曲,暂停,**。

本设计采用4*4键盘,用protel99来画系统硬件图,采用汇编语言进行编程,编程后利用keil c51来进行编译,再生成的hex文件装入芯片中,采用proteus软件来**,检验功能得以正常实现。该**盒的设计可以通过按键选择不同的曲目,**和暂停,并通过lcd显示歌曲号及**时间。 本设计键盘采用动态扫描方式。

每次扫描一行键盘,送此行低电平,读输入口的状态值,判断有没有键按下。若有键按下,根据读入口的值选择显示值并送至显示值寄存单元,判断键值,启动计数器t0,根据次值为偏移地址找到要选择的**的**的首地址,根据**产生一定频率的脉冲,驱动蜂鸣器,放出音。同时启动定时器t1,计算**的**的时间。

关键词:数字**盒 at89c51 lcd显示器 proteus软件 4*4键盘动态扫描 keil c5

一、引言。本文是应用mcs-51单片机原理和控制理论设计**演奏控制器的硬件电路,并利用汇编语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的**,再利用延迟来控制发音时间的长短。

把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的**。

这种控制电路结构简单,可靠性高,应用性强;软件程序适应范围广,对于不同的**只需要改变相应的定时常数即可。对单片机和**爱好者有一定的借鉴价值。

二、总体方案。

(1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的i/o反相,然后重复计时此半周期时间再对i/o口反相,就可在i/o脚上得到此频率的脉冲。

2)利用8951的内部定时器使其工作在计数器模式mode1下,改变记数值th0及tl0以产生不同频率的方法。例如频率为523hz,其周期t=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将i/o口反相,就可得到中音d0(523hz)。

记数脉冲值与频率的关系公式如下:

n=fi/2/fr n:记数值。

fi:内部计时一次为1微秒.故其频率为1mhz

fr;要产生的频率。

3):起记数值的求法如下:

t=65536-n=65536-fi/2/fr 例如:设k=65536,f=1000000=fi=1mhz,求低音d0(523hz),高音的d0(1046hz)的记数值。

低音d0的t=65536-500000/262=63627

中音d0的t=65536-500000/523=64580

高音d0的t=65536-500000/1047=65059

三、硬件设计。

3.1硬件电路

本设计中用到89c51单片机,喇叭,七段显示数码管led。(硬件电路原理图如图1所示)

3.2 原理说明

当键盘有键按下时,判断键值,启动计数器t0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器t1,显示歌曲号。

1) 硬件电路中用0int、1int分别接s1、s2作为上、下一曲的功能键

2) 用p1.0-p1.6控制七段码a,b,c,d,e,f。

3) 用p2.0口控制喇叭。

4) 电路为12mhz晶振频率工作,起振电路中c1,c2均为30pf。

硬件电路图。

四、软件设计。

本程序可以实现课程设计的基本要求,并可以通过按键**两首歌曲,程序流程图如下:

五、调试与**。

按照上面设计的电路在proteus软件内画图, 打开单片机软件开发系统keil,选择89c51单片机,在其中编写程序,运行生成一个后缀名为hex的文件,然后将该文件**到proteus中的at89c51单片机中进行**,观察实验现象。**能实现****,按键选择曲目,暂停,**功能。**成功后,安装好实验板,然后将**程序**到电路板内 ,观察结果。

能实现****,按键换曲等功能。

程序调试**现的问题及解决的办法:

1) 有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写得不规范导致的,例如有的ret返回指令一定要按正确格式书写或在两行指令间最好不要留空行。

2) 程序中的跳转指令的运用很重要,为保险起见,都用ljmp,我们就遇到过跳转指令用错程序无法正常运行的现象。当用jnz指令时,跳转范围比较少,这时要用一个标号中转。

3) 编程时要注意,在程序开始时,要写入各定时器中断的入口地址。

4) 编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。

5) 编程前要加流程图,这样会使思路清晰,例如数字**盒的设计思路完全可以按着***的工作方式列写流程图。

6) lcd计时正常显示的解决办法:

a. 两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在方式3,计250us,由于定时中断过于频繁,使cpu负载过大,导致**不能正常**,时间不能正常显示。

解决办法:将定时器1设定在工作方式1,16位计数,计50ms,效果有很大改观。但还有问题。

b. 当**为全4拍起始时,此时**节奏与定时器t1中断频率错开,lcd显示和****都会好一些。

c. 另外,在歌曲中,当遇到一个音符发音为4拍,在编曲中为*ch,因时间较长,当定时器t1此时来中断时,就会对歌曲**产生影响,若改为发音一拍,中断对歌曲**影响减弱,但**效果变差。

改进方案:若采用可以定时时间更长的单片机,可以避免所有问题。

六、总结。1) 本学期学习单片机的课时不多,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,明显的改善了,首先对于硬件电路的工作原理有了进一步的学习,同时有了一个提升;软件方面,在程序的设计,程序的调试方面都有了很大的进步。

2) 在一个好的氛围里才能静下心来做东西,在这一段时间里,寝室成员都认真对待这次课程设计,在遇到不懂的地方互相讨论,查阅资料,互助解决问题。另外在编程**现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,这是我们第一次利用汇编语言编写程序实现各功能。我们也是这么做的,这一点在这次的课程设计中十分重要。

3) 通过这次课程设计,我体会到了成功的喜悦,听着自己设计的程序**到单片机中**出**,心理非常自豪。这次的课程设计在一定程度上改变了我学习单片机这门课程的态度,从最初的认为学它没有什么实际意义,到如今爱上单片机学习,并希望能将理论运用到实践,设计出更好更完整的系统。我明白了一个人要想做好一件事,就必须具备自信心,耐心,还要有毅力,要胆大心细,要勇于尝试,要手脑并用,最后才能交出一份令人满意的答卷。

七、参考文献。

1] 李林功、吴飞青、王兵、丁晓。编著《单片机原理与应用》.机械工业出版社,2011年7月。

2] 郭天祥。主编《新概念51单片机c语言教程》.电子工业出版社,2009年12月。

3] 徐惠民。主编《微机原理与接**术》.高等教育出版社,2007年8月。

4] 张毅刚、彭喜元、姜守达、乔立岩。编著《新编mcs-51单片机应用设计》.哈尔滨工业大学出版社,2008年4月。

5] 彭伟。主编《单片机c语言程序设计实训100例—基于8051+proteus**》.电子工业出版社,2011年8月。

附录一:**《八月桂花香》汇编程序:

org 0000h

ljmp start

org 000bh

inc 20h ;中断服务,中断计数器加1

mov th0,#0d8h

mov tl0,#0efh ;12m晶振,形成10毫秒中断。

retistart:

mov sp,#50h

mov th0,#0d8h

mov tl0,#0efh

mov tmod,#01h

mov ie,#82h

music0:

nopmov dptr,#dat ;表头地址送dptr

mov 20h,#00h ;中断计数器清0

music1:

nopclr a

movc a,@a+dptr ;查表取**。

jz end0 ;是00h,则结束。

cjne a,#0ffh,music5 ;如果是休止符,往下执行。

ljmp music3

music5:

nopmov r6,a ;r6=18h音符的频率。

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...