带有LCD显示的音乐倒数计数器设计
音乐倒数播放器含源程序

设计要求利用A T89C51单片机结合字符型LCD 显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
定时闹钟的基本功能如下。
字符型LCD (16 * 2)显示器。
显示格式为“TIME 分分:秒秒”。
用4个按键操作来设置当前想要倒计数的时间。
一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
程序执行后工作指示灯LED 闪动,表示程序开始执行,按下操作键K1~K4动作如下。
K1—可调整倒计数的时间1~60分钟。
K2—设置倒计数的时间为5分钟,显示“0500”。
K3—设置倒计数的时间为10分钟,显示“1000”。
K4—设置倒计数的时间为20分钟,显示“2000”。
复位后LCD 的画面应能显示倒计时的分钟和秒数,此时按K1键 则在LCD 上显示出设置画面。
此时,若: a. 按操作键K2—增加倒计数的时间1分钟。
b. 按操作键K3—减少倒计数的时间1分钟。
c. 按操作键K4—设置完成。
VCCXTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC133uFC233uF234567891RP1RESPACK-8LS1SOUNDERK2K3K4K1D1LED-GREENR2200D 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S 1V D D 2V E E3LCD1LM016LQ1NPNR110kC31nFR310k源程序:#include<reg51.h>//头文件 #define uint unsigned int #define uchar unsigned char#define busy 0x80sbit k1=P1^0;//按键位定义sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit RS=P2^0;//LCD位定义sbit RW=P2^1;sbit E=P2^2;sbit led=P3^6;sbit sound=P3^7;uchar code table[]={'0','1','2','3','4','5','6','7','8','9'};uchar code table1[]={"105090440037 "};uchar code table2[]={" 10 dian zi "};uchar code table3[]={"TIME 00:00 "};uchar code table4[]={"TIME 05:00 "};uchar code table5[]={"TIME 10:00 "};uchar code table6[]={"TIME 20:00 "};uchar code table7[]={" TIME OUT! "};uchar d,e,num,t,shishi,shige,fenshi,fenge,miaoshi,miaoge, b,b1,count,aa,s1,s2,s3,s4;uint counter=0;//乐谱简表uchar code array[]={0x18, 0x30, 0x1C, 0x10,0x20, 0x40, 0x1C, 0x10,0x18, 0x10, 0x20, 0x10,0x1C, 0x10, 0x18, 0x40,0x1C, 0x20, 0x20, 0x20,0x1C, 0x20, 0x18, 0x20,0x20, 0x80, 0xFF, 0x20,0x30, 0x1C, 0x10, 0x18,0x20, 0x15, 0x20, 0x1C,0x20, 0x20, 0x20, 0x26,0x40, 0x20, 0x20, 0x2B,0x20, 0x26, 0x20, 0x20,0x20, 0x30, 0x80, 0xFF,0x20, 0x20, 0x1C, 0x10,0x18, 0x10, 0x20, 0x20,0x26, 0x20, 0x2B, 0x20,0x30, 0x20, 0x2B, 0x40,0x20, 0x20, 0x1C, 0x10,0x18, 0x10, 0x20, 0x20,0x26, 0x20, 0x2B, 0x20,0x30, 0x20, 0x2B, 0x40,0x20, 0x30, 0x1C, 0x10,0x18, 0x20, 0x15, 0x20,0x1C, 0x20, 0x20, 0x20,0x26, 0x40, 0x20, 0x20,0x2B, 0x20, 0x26, 0x20,0x20, 0x20, 0x30, 0x80,0x20, 0x30, 0x1C, 0x10,0x20, 0x10, 0x1C, 0x10,0x20, 0x20, 0x26, 0x20,0x2B, 0x20, 0x30, 0x20,0x2B, 0x40, 0x20, 0x15,0x1F, 0x05, 0x20, 0x10,0x1C, 0x10, 0x20, 0x20,0x26, 0x20, 0x2B, 0x20,0x30, 0x20, 0x2B, 0x40,0x20, 0x30, 0x1C, 0x10,0x18, 0x20, 0x15, 0x20,0x1C, 0x20, 0x20, 0x20,0x26, 0x40, 0x20, 0x20,0x2B, 0x20, 0x26, 0x20,0x20, 0x20, 0x30, 0x30,0x20, 0x30, 0x1C, 0x10,0x18, 0x40, 0x1C, 0x20,0x20, 0x20, 0x26, 0x40,0x13, 0x60, 0x18, 0x20,0x15, 0x40, 0x13, 0x40,0x18, 0x80, 0x00};char shi,fen,miao;//*****************1秒延时程序********************* void delay(uchar z){uchar x,y;for(x=z;x>0;x--)for(y=200;y>0;y--);}bit lcd_busy()//测试LCD忙碌状态{bit result;E=0;RS=0;//指令RW=1;//读出E=1;delay(4);//高电平读出1usresult=(bit)(P0&busy);E=0;return result;}//**********************LCD写命令程序****************void write_com(uchar com)//写命令{while(lcd_busy());RS=0;delay(5);RW=0;delay(5);E=0;delay(5);P0=com;E=1;delay(10);E=0;}//***************************LCD写数据程序******************** void write_Data(uchar Data)//写数据{while(lcd_busy());RS=1;delay(5);RW=0;delay(5);E=0;P0=Data;delay(5);E=1;delay(10);E=0;}//**********************LCD初始化程序************************* void LCD_init()//lcd初始化{write_com(0x01);//清屏delay(5);write_com(0x38);//功能设定delay(5);write_com(0x0c);//光标不闪烁delay(5);write_com(0x06);//lcd模式设定i/d=1//计数地址加1delay(5);}//********************LCD全局初始化程序********************* void init()//全局出初始化{{t=0;s1=0;s2=0;s3=0;s4=0;led=1;TMOD=0X11;//设置定时器1在工作方式1TH0=0xff;TL0=0xff;TH1=(65536-50000)/256;//给定时器1装初值TL1=(65536-50000)%256;EA=1;//开启总中断ET0=1;//开启外部中断0中断ET1=1;//开启定时器1中断TR0=0;TR1=0;}LCD_init();//初始化显示屏write_com(0x80+2);for(num=0;num<16;num++){write_Data(table1[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<16;num++){write_Data(table2[num]);delay(5);}}//**********************按键扫描程序****************** void key_check(){if(k1==0){delay(200);if(k1==0){s1++;if(s1==2){s1=0;}if(s1==1){TR1=0;//中断计时1write_com(0x80+0x42);for(num=0;num<16;num++)//显示00:00{write_Data(table3[num]);delay(5);}write_com(0x80+0x4a);write_com(0x0f);//打开光标闪烁fen=0;miao=0;//设定时间为00:00}}}{delay(200);if(k2==0){s2++;delay(200);if(s1==1&&s4!=1){fen++;//设置分加1s2=0;if(fen==61){fen=0;}fenge=fen%10;fenshi=fen/10;write_com(0x80+0x4a);write_Data(table[fenge]);write_com(0x80+0x49);write_Data(table[fenshi]);}if(s1==0){TR1=0;//中断计时1write_com(0x0c);//关闭光标闪烁write_com(0x80+0x42);for(num=0;num<16;num++)//显示05:00{write_Data(table4[num]);delay(5);}fen=5;miao=0;//设定时间为05:00TR1=1;}}}if(k3==0){delay(200);if(k3==0){s3++;if(s1==1&&s4!=1)fen--;//设置分减1if(fen==-1){fen=60;}fenge=fen%10;fenshi=fen/10;write_com(0x80+0x4a);write_Data(table[fenge]);write_com(0x80+0x49);write_Data(table[fenshi]);}if(s1==0){TR1=0;//中断计时1write_com(0x0c);//关闭光标闪烁write_com(0x80+0x42);for(num=0;num<16;num++){write_Data(table5[num]);//显示10:00delay(5);}fen=10,miao=0;//设定时间为10:00TR1=1;}}}if(k4==0){delay(200);if(k4==0){if(s1==1||s2==1||s3==1||s4==1){write_com(0x0b);//关闭光标闪烁TR1=1;//完成设置,释放中断1}if(s1!=1&&s2!=1&&s3!=1&&s4!=1){TR1=0;//中断计时1write_com(0x0b);//关闭光标闪烁write_com(0x80+0x42);for(num=0;num<16;num++)//显示20:00{write_Data(table6[num]);delay(5);}fen=20;miao=0;//设定时间为20:00TR1=1;}s1=0;s2=0;s3=0;//k1,k2,k3计数清0s4++;if(s4==3){s4=1;}}}}void sound_delay(uchar n)//音乐延时程序{uint i,j;for(i=0;i<n;i++){for(j=0;j<3;j++);}}//*****************音乐播放程序****************void playmusic()//音乐程序{uint i;uchar sound_signal;//定义音符大小uchar sound_pace;while(1){i=0;while(array[i]!=0x00){if(array[i]==0xff)//如果是休止符,延时100ms,进入下一个循环{TR0=0;i++;delay(100);continue;}sound_signal=array[i];//从表中取得音符大小i=i+1;sound_pace=array[i];//从表中取得节拍大小TR0=1;while(counter!=sound_pace)//节拍数未到时,继续产生该音调{sound=~sound;sound_delay(sound_signal);}i++;counter=0;//节拍计数器置0 进入下一个音调}delay(10);//歌曲演唱完毕后,延时一段时间}}//************主程序**********void main()//主函数{count=0,aa=0;sound=0;init();//初始化数据delay(10);while(1){key_check();//进入按键检测if(TR1==0&&TR0==1)//判断是否满足条件,是则播放音乐{playmusic();//播放音乐TR0=0;//播放结束中断计时0}}}//*****************************************void time1() interrupt 3//定时器1中断{TH1=(65536-50000)/256;TL1=(65536-50000)%256;write_com(0x0c);//关闭光标闪烁count++;aa++;if(count==20)//定时1s{count=0;if(miao==-1){miao=59;fen--;//分减1fenge=fen%10;write_com(0x80+0x40+10);write_Data(table[fenge]);fenshi=fen/10;write_com(0x80+0x40+9);write_Data(table[fenshi]);}miaoge=miao%10;write_com(0x80+0x40+13);write_Data(table[miaoge]);miaoshi=miao/10;write_com(0x80+0x40+12);write_Data(table[miaoshi]);if(fen==0&&miao==0)//判断时间是否为0{TR1=0;TR0=1;led=0;write_com(0x80+0x40);for(num=0;num<16;num++){write_Data(table7[num]);delay(5);}}miao--;//秒减1}if(aa==10)//开启流水灯 让它随时间闪动{aa=0;led=~led;}}void time0()interrupt 1//定时器0中断{counter++;//节拍次数计数TH0=0xd8;//定义单位节拍的延时大小TL0=0xef;}。
音乐倒数计数器单片机课程设计

目录第1章概述 (1)1.1 发展前景 (1)1.2 设计要求 (1)1.3 设计方案 (1)第2章系统结构及主要元器件 (2)2.1 AT89C51单片机 (2)2.2 LCD显示器 (3)第3章硬件设计 (4)3.1 显示电路 (4)3.2 输入电路 (4)3.3 复位电路 (5)3.4 报警电路 (5)第4章软件设计 (6)4.1 程序流程图 (6)4.2程序源代码 (6)第5章系统仿真及调试 (15)5.1 软件调试 (15)5.2软硬件调试 (15)5.3系统仿真 (17)参考文献 (19)第1章概述1.1 发展前景随着人们生活水平的不断提高单片机控制无疑是人们追求的目标之一,它给人带来的方便也是不可置否的,人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
1.2 设计要求利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED数码管上显示相应的时间。
其功能和性能指标如下:1、字符型LCD(16 2)显示器,显示格式为“TIME 分分:秒秒”。
2、用4个按键操作来设置当前想要倒计数的时间。
3、一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
4、程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下:(1)K1—可调整倒计数的时间1~60分钟。
(2)K2—设置倒计数的时间为5分钟,显示“0500”。
(3)K3—设置倒计数的时间为10分钟,显示“1000”。
(4)K4—设置倒计数的时间为20分钟,显示“2000”。
5、复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD 上显示出设置画面。
音乐倒计时综合课程设计实验报告

物理与电子工程学院《综合电子系统》课程设计报告音乐倒计时班级 2013级电工1班成员王宏胡旷龚婕妤指导教师杨丽蓉提交日期 2016 年 6 月 10 日目录一.设计概述和要求1.1 设计概述1.2设计要求二.系统设计2.1框图设计2.2元件清单三.软件设计3.1程序流程图3.1.1主程序流程图3.1.2蜂鸣器发声程序流程图3.2蜂鸣器发声电路原理图3.3蜂鸣器发声程序的关键代码四.PROTEUS仿真结果4.1总体电路仿真结果4.2假设倒计时为5秒时的仿真结果五. 实物图六.总结七.参考文献一、课程设计要求利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计时器,可用来煮方便面、烧开水和小睡片刻等。
计时器先接受用户输入的倒数计时时间,然后由用户启动工作,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
定时闹钟的基本功能如下:1.字符型LCD(16*2)显示器。
2.显示格式为“TIME 分分:秒秒”。
3.用四个按键操作来设置当前想要倒计数的时间,一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
二、系统设计框图设计本项目的系统设计框图如图2-1所示:由系统框图可看出,本设计由单片机AT89C51、LCD液晶显示器、控制键盘、蜂鸣器、复位电路和定时器几大模块组成。
1.主控芯片AT89C51AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。
主要性能:与MCS-51兼容、4K字节可编程闪烁存储器。
寿命:1000写/擦循环。
数据保留时间:10年。
全静态工作:0HZ-24MHZ,二级程序存储器锁定,128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。
基于AT89C51的音乐倒数计数器

题目:音乐倒数计数器1. 设计要求利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED数码管上显示相应的时间。
其功能和性能指标如下:⑴字符型LCD(16×2)显示器,显示格式为“TIME 分分:秒秒”。
⑵用4个按键操作来设置当前想要倒计数的时间。
⑶一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
⑷程序执行后工作指示灯LCD闪动,表示程序开始执行,按下操作键K1~K4动作如下:● K1---可调整倒计数的时间1~60分钟。
● K2---设置倒计数的时间为5分钟,显示“0500”。
● K3---设置倒计数的时间为10分钟,显示“1000”。
● K4--设置倒计数的时间为20分钟,显示“2000”⑸复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。
此时,若:●按K2键---增加倒计数的时间1分钟。
●按K3键---减少倒计数的时间1分钟。
●按K4键---设置完成。
2. 工作原理音乐倒数计数器所倒数的时间由数字显示,控制器使用单片机AT89S52。
本设计基于单片机技术原理,以单片机芯片AT89S52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。
当倒计数为0时,蜂鸣器就发出音乐声响等等。
该计数器系统主要由计数器模块、LCD显示器模块、蜂鸣器模块、键盘模块、复位模块等部分组成。
3. 硬件设计电路原理图下图所示.3.1 AT89C52单片机A T89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用A TMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,A T89C52单片机在电子行业中有着广泛的应用。
单片机课程设计--音乐倒数计数器

单片机课程设计--音乐倒数计数器单片机课程设计--音乐倒数计数器任务书设计任务:利用STC89C52单片机结合字符型LCD显示器设计一个简易的倒数计数器。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
设计要求:1.字符型LCD(16×2)显示器,显示格式为“TIME 分分:秒秒”。
2.用4个按键操作来设置当前想要倒计数的时间。
3.一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
4.程序执行后工作指示灯LCD闪动,表示程序开始执行,按下操作键K1~K4动作如下:●K1---可调整倒计数的时间1~60分钟。
●K2---设置倒计数的时间为5分钟,显示“0500”。
●K2---设置倒计数的时间为10分钟,显示“1000”。
●K2---设置倒计数的时间为20分钟,显示“2000”。
5.复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。
此时,若:按K2键---增加倒计数的时间1分钟。
按K2键---减少倒计数的时间1分钟。
按K4键---设置完成。
目录任务书............................................................ I 1 绪论 (2)1.1 单片机基础知识 (2)1.2 单片机的发展趋势 (3)1.3 项目设计任务与要求 (3)2 系统设计 (5)2.1 框图设计 (5)2.2部分硬件方案论述 (6)2.3电路原理图 (6)2.4元件清单 (7)2.4.1STC89C52芯片 (7)2.4.2字符型LCD1602 ..................... 错误!未定义书签。
2.4.3按键控制模块 (8)2.4.4其它元件 (12)3软件设计 (14)3.1 程序流程图 (14)4 系统的仿真与调试 (12)4.1 硬件调试 (12)4.2 软件调试 (12)4.3 软硬件调试 (12)5总结 (13)参考文献 (14)附录程序 (25)1 绪论1.1 单片机基础知识单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
LCD倒计时

《单片机原理及应用》课程设计任务书题目:LCD显示的音乐倒计时制作姓名:学号:学院:电气工程与自动化学院专业:电气工程与自动化学院年级:2012级指导教师:高伟设计任务一,技术要求利用PIC16F887单片机控制字符型LCD显示器制作一个简易的倒数计数器,可以用来煮方便面、煮开水或小睡片刻等。
先进行一小段时间倒计数,当倒计数到0时,则发出一段音乐声响,通知主人时间到,去做该做的事情。
该程序共有有5个功能键:K1——设置,LCD显示5:00;K2——时间增加倍数切换键,在1分钟和10分钟之间切换;K3——时间增;K4——时间减;K5——开始倒计数。
定时闹钟的基本功能如下。
●字符型LCD(16 2)显示器。
●显示格式为“TIME 分分:秒秒”。
用4个按键操作来设置当前想要倒计数的时间。
一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
设计任务一、技术要求使用单总线的DS18B20测量温度,进行LCD液晶显示,当温度超过50℃时,通过指示灯报警。
请根据需求撰写任务书,写出详细的功能,以及设计步骤。
在课程设计之前提交给老师。
(可以对内容进行扩展,可适当加分)二、拟采用的方法(包括芯片的选型等)51芯片采用国产STC89C52作为主控.美国达拉斯公司生产的DS18B20温度传感器芯片进行温度采集。
和DALLAS公司的实时时钟芯片DS1302对年月日周日分秒进行计时。
采用LCD1602进行温度、实时时间等显示。
用蜂鸣器与LED灯进行报警。
基于ZigBee无线通信的开关柜发热点无线测温终端设计姓名:卢国仪指导老师:高伟专业:电气工程与自动化学号:010800321摘要:本论文主要从无线测温终端的设计入手,采用了新型ZigBee无线通信技术,从硬件电路设计与软件程序设计两方面展开了课题的研究。
考虑到封闭式开关柜内工作温度高,变电站运行过程中不能频繁停电两大因素。
因此选择了能够耐高温而且可以工作于低功耗模式下的元器件。
音乐倒数计数器 内含完整代码
HUBEI NORMAL UNIVERSITY单片机课程设计MCU Curriculum Design所在院系教育信息与技术学院专业名称电子信息工程班级1005题目音乐倒数计数器指导教师梁赫西成员刘杨完成时间2012.12.28音乐倒数计数器的设计摘要:随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它给人带来的方便也是不可置否的,人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
关键词:单片机; AT89C51;倒数计数器,音乐,proteus。
1.设计要求与思路1.1设计要求利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED数码管上显示相应的时间。
其功能和性能指标如下:⑴字符型LCD(16×2)显示器,显示格式为“TIME 分分:秒秒”。
⑵用4个按键操作来设置当前想要倒计数的时间。
⑶一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
⑷程序执行后工作指示灯LCD闪动,表示程序开始执行,按下操作键K1~K4动作如下:● K1---可调整倒计数的时间1~60分钟。
● K2---设置倒计数的时间为5分钟,显示“0500”。
● K3---设置倒计数的时间为10分钟,显示“1000”。
● K4--设置倒计数的时间为20分钟,显示“2000”⑸复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD上显示出设置画面。
此时,若:●按K2键---增加倒计数的时间1分钟。
●按K2键---减少倒计数的时间1分钟。
●按K4键---设置完成。
1.2设计思路音乐倒数计数器所倒数的时间由数字显示,控制器使用单片机AT89C51。
LCD12864液晶显示倒计时设计
长沙学院《单片机原理及应用》课程设计说明书题目LCD12864液晶显示倒计时器系(部)专业(班级)姓名学号指导教师起止日期课程设计任务书系(部):电子与通信工程系专业:目录概述 (4)一、设计目的 (5)二、设计任务与要求 (5)1、课题内容 (5)2、要求 (5)三、设计原理 (6)1、模块简介 (6)(1)单片机概述 (6)(2)LCD12864概述 (6)2、单片机最小系统电路 (6)3、电路总图 (7)4、软件设计思路 (7)5、设计结果 (8)四、设计心得及体会 (8)参考文献 (9)概述近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。
模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。
并采用电子秤原理可根据输入单价准确的计算出物体的金额。
本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
1、加深对单片机的了解和运用,掌握单片机芯片80C5X系列的逻辑功能及使用方法,并且提高学生的设计能力,以及提高综合运用所学知识的实际运用能力。
1、培养我们查阅数据手册的能力,以及提高我们对查阅资料的运用和理解。
2、通过设计的过程了解单片机的开发过程,以及对软件硬件设备的选择和应用。
3、学习并加深对Keil的运用,4、熟悉模拟电路的应用与集成电路的引脚排列。
实习修正版-音乐倒数计数器..
东北石油大学课程设计2014年7 月7 日东北石油大学课程设计任务书课程单片机课程设计题目音乐倒数计数器专业自动化姓名罗宏星学号110601140121(2)显示主要内容:利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响。
基本要求:定时闹钟的基本功能如下。
(1)字符型LCD(16 2)显示器。
格式为“TIME 分分:秒秒”。
用4个按键操作来设置当前想要倒计数的时间。
当计数为0时,发出一阵音乐声。
程序执行后工作指示灯LED闪动,表示程序开始执行。
主要参考资料:[1] 张毅刚. 单片机原理及应用[M]. 北京: 高等教育出版社, 2003.[2] 李广第. 单片机基础[M]. 北京: 北京航空航天打学出版社, 2009.[3] 吴金戎. 8051单片机实践与应用[M]. 北京: 清华大学出版社, 2003.[4] 杨文龙. 单片机技术及其应用[M]. 北京: 电子工业出版社, 2008.[5] 王德彪. MCS-51单片机原理及接口技术[M]. 北京: 电子工业出版社, 2005.完成期限2014.6.30-2014.7.4指导教师李艳辉邵克勇专业负责人目录第1章概述 (1)1.1 发展前景 (1)1.2 设计要求 (1)1.3 设计方案 (1)第2章系统结构及主要元器件 (2)2.1 AT89C51单片机 (2)2.2 LCD显示器 (3)第3章硬件设计 (4)3.1 显示电路 (4)3.2 输入电路 (4)3.3 复位电路 (5)3.4 报警电路 (5)第4章软件设计 (6)4.1 程序流程图 (6)4.2程序源代码 (6)第5章系统仿真及调试 (15)5.1 软件调试 (15)5.2软硬件调试 (15)5.3系统仿真 (17)参考文献 (19)第1章概述1.1 发展前景随着人们生活水平的不断提高单片机控制无疑是人们追求的目标之一,它给人带来的方便也是不可置否的,人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
音乐倒数计数器课程设计报告
湖南涉外经济学院课程设计报告课程名称:单片机原理及应用报告题目:音乐倒数计数器学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:廖亦凡20 14年6月4日课程设计任务书利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED数码管上显示相应的时间。
其功能和性能指标如下:⑴字符型LCD(16X 2)显示器,显示格式为“ TIME分分:秒秒”。
⑵ 用4个按键操作来设置当前想要倒计数的时间。
⑶一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
⑷ 程序执行后工作指示灯LCD闪动,表示程序开始执行,按下操作键K1~K4动作如下:•K1---可调整倒计数的时间•K2---设置倒计数的时间为•K3---设置倒计数的时间为•K4--设置倒计数的时间为1~60分钟。
5分钟,显示“ 0500”。
10分钟,显示“ 1000”。
⑸复位后LCD的画面应能显示倒计时的分钟和秒数,此时按置画面。
此时,若:•按K2键---增加倒计数的时间1分钟。
•按K3键---减少倒计数的时间1分钟。
• 按K4键---设置完成。
K1键,则在LCD上显示出设工作内容及时间进度安排摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,收到人们的重视和关注,应用很广、发展很快。
而51 单片机是各单片机最为典型和最有代表性的一种。
本实验是基于MCS5係列单片机所设计的,可以实现键盘按键与数字动态显示并可以用音乐倒数的计数器。
本设计基于单片机技术原理,以单片机芯片STC89C51 乍为核心控制器,通过硬件电路的制作以及软件程序的编程,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。
当倒数计数为0是,蜂鸣器就发出音乐声响等等。
该计数系统主要由计数器模块、LCD显示快、蜂鸣器模块、键盘模块、复位模块等部分组成。
关键词:STC89C51键盘;LCD1602显示;蜂鸣器目录一、概述 (1)二、方案设计与论证 (2)2三、系统硬件电路设计与分析................................................主控制器一AT89S5单机 (2)显示电路一LCD数码 (2)四、系统软件程序设计与分析 (2)程序流程图 (2)源程序 (6)五、系统的仿真与调试 (13)硬件调试 (13)软件调试 (13)软硬件调试 (13)六、总原理图及元器件清单 (14)总原理图 (14)元器件清单 (14)AT89C51 芯片 (14)字符型LCD1602 (15)按键控制模块 (16)其它元件 (17)七、结论与心得 (17)八、参考文献 (18)一、概述随着科技的发展和社会的进步,人们对数字钟的要求越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程学院课程设计报告书题目: 带有LCD显示的音乐倒数计数器专业:计算机科学与技术班级: 03073班学号: 030740307学生姓名:王洁指导教师:李晓艳2010年6月10日摘要单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。
近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。
单片机由CPU、一定容量的RAM和ROM构成,定时、计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
而51系列单片机是各单片机中最为典型和最有代表性的一种。
这次课程设计通过对它的学习、应用,从而达到学习、设计、开发软、硬的能力。
本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器。
用4个按键操作来设置当前想要倒计数的时间。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
应用Proteus的ISIS软件和Keil uVision3来实现该计数器的设计与仿真。
该方法仿真效果真实、准确,节省了硬件资源。
该多功能计数器可以应用于一般的生活和工作中,也可以通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。
关键词: AT89C51,计数器,键盘控制,LCD显示,Proteus,Keil目录1 项目概述和要求 (1)1.1 项目概述 (1)1.2 项目要求 (1)2 系统设计 (3)2.1 框图设计 (3)2.2 元件清单 (3)3软件设计 (7)3.1 程序流程图 (7)3.1.1 主程序流程图 (7)3.1.2 蜂鸣器发声程序流程图 (8)3.2 蜂鸣器发声电路原理 (8)3.3 蜂鸣器发声程序的关键代码 (9)4 PROTEUS仿真结果 (10)4.1 总体电路仿真结果 (10)4.2 蜂鸣器发声电路仿真结果 (10)5 总结 (12)参考文献 (13)1 项目概述和要求本项目的任务是利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器。
做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响。
1.1 项目概述20世纪末,电子技术获得了飞速的发展。
在其推动下,现代电子产品几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展与信息化程度。
同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。
随着科技的发展和社会的进步,人们对数字钟的要求越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。
数字钟实际上是一个对标准频率进行计数的计数电路,走时精度高,稳定性好,使用方便,不需要经常调校。
单片计算机即单片微型计算机,是集CPU,RAM,ROM,定时/计数和多种接口于一体的微控制器。
它体积小成本低,功能强,广泛应用于智能产品和工业自动化上。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超多老式钟表,钟表的数字化给人们生产生活带来了极大地方便,而且大大的扩展了钟表原先的报时功能,诸如定时自动报警、0按时自动打铃、定时广播、自动启闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以数字化为基础的,因此研究数字钟及扩大其应用有着非常现实的意义。
本系统采用单片机作为数字钟的核心控制器,读取时钟的值,并通过LCD 液晶显示器显示出来,而且可以通过按键电路控制执行信号,给时钟赋初值。
还可以设置闹钟,当计数为0时,发出一阵音乐声。
并可拓展其功能显示年月日。
1.2 项目要求1.字符型LCD(16×2)显示器,显示格式为“TIME 分分:秒秒”。
2.用4个按键操作来设置当前想要倒计数的时间。
3.一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
4.程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下:K1---可调整倒计数的时间1~60分钟。
K2---设置倒计数的时间为5分钟,显示“0500”。
K2---设置倒计数的时间为10分钟,显示“1000”。
K2---设置倒计数的时间为20分钟,显示“2000”。
5.复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD 上显示出设置画面。
此时,若:按K2键---增加倒计数的时间1分钟。
按K2键---减少倒计数的时间1分钟。
按K4键---设置完成。
6.[扩充功能]:增加时钟及闹钟功能。
增加秒表计数功能。
增加万年历显示“年月日”。
2 系统设计2.1 框图设计本项目的系统设计框图如图2-1所示:图2-1 系统框图由系统框图可看出,本设计由单片机AT89C51、LCD液晶显示器、控制键盘、蜂鸣器、复位单路和定时器电路几大模块构成。
2.2 元件清单主控单片机采用AT89C51芯片,时钟模块选用DS12C887,显示模块采用LCD1602,设置部分选用键盘按键电路,发声部分选用BUZZER蜂鸣器。
还有一些电源、电阻、电容、接地等。
主要元件清单如图2-2所示:P3.7蜂鸣器AT89C51复位电路键盘LCD液晶显示器图2-2 主要元件清单AT89C51:AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。
主要特性:与MCS-51 兼容、4K字节可编程闪烁存储器、寿命:1000写/擦循环、数据保留时间:10年、全静态工作:0Hz-24MHz 、三级程序存储器锁定、128×8位内部RAM 、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。
1602LCD :1602液晶模块内部的控制器共有11条控制指令,如表2-1所示.表2-1 1602液晶模块控制指令键盘:键盘采用16个button,分别代表低音到中音的两个八度的音;而P2.7端口的SW1则是对选择是从sounder中播放的是从键盘输入的声音的响应还是内置音乐编码的响应。
蜂鸣器:用三极管、电阻和BUZZER组成蜂鸣器电路。
蜂鸣器最重要的特点是只要按照极性要求加上合适的直流电压就可以发出固有频率的声音。
3软件设计3.1 程序流程图3.1.1 主程序流程图主程序开始初始化,然后扫描键盘、复位电路和计数器。
当键盘按键有按下时,调整计数器值,LCD显示新值。
当复位键有按下时,计数器复位为初值,重新倒计数。
当计数器值倒计为0时,蜂鸣器发出声音,计数器停止倒计,程序结束。
主程序流程图如图3-1所示:图3-1 主程序流程图3.1.2 蜂鸣器发声程序流程图蜂鸣器发声程序流程图如图3-2所示:图3-2 蜂鸣器发声程序流程图3.2 蜂鸣器发声电路原理对于单片机产生音乐,关键是控制频率的输出.我们知道,不同的声音对应不同的频率,产生有规律的频率输出就可以得到相应规律的声音.有8个基本音符:do﹑re﹑mi﹑fa﹑so﹑la﹑xi﹑do,八个不同的音符对应着不同的频率.只要我们对照音符输出相对应的频率,就可以产生美妙的音乐.本文中采用了T0中断方式产生不同频率, 并用按键控制音乐的播放和停止。
用三极管、电阻和BUZZER组成蜂鸣器电路。
蜂鸣器最重要的特点是只要按照极性要求加上合适的直流电压就可以发出固有频率的声音。
3.3 蜂鸣器发声程序的关键代码下面是蜂鸣器报警的子程序清单:FLAG BIT 00HORG 00HSTART: JB P3.1,STARTJNB FLAG,NEXTMOV R2,#200DV: CPL P3.7LCALL DELY500LCALL DELY500DJNZ R2,DVCPL FLAGNEXT: MOV R2,#200DV1: CPL P3.7LCALL DELY500DJNZ R2,DV1CPL FLAGSJMP STARTDELY500: MOV R7,#250LOOP: NOPDJNZ R7,LOOPRETEND4 PROTEUS仿真结果4.1 总体电路仿真结果总体电路仿真结果如图4-1所示:图4-1 总体电路仿真结果4.2 蜂鸣器发声电路仿真结果蜂鸣器发声电路仿真结果如图4-2所示:图4-2 蜂鸣器发声电路仿真结果5 总结通过此次多功能数字计数器的设计制作,我们将从书本上学到的知识应用于实践,再次巩固了我的单片机知识,提高了我的电路仿真设计能力。
虽然设计过程中遇到了很多困难,但是在解决这些问题的过程无疑是对自身专业素质的提高。
当最终调试成功的时候也是对自己的一种肯定。
此次的设计不仅增强了自己在专业设计方面的信息,鼓舞了自己,更是一次兴趣的培养,为以后的学习方向明确了重点。
另外在这次设计中我们遇到了不少的问题,针对不同的问题我们采取不同的解决方法,最终一一解决了。
在我们遇到不懂得问题时,利用课本上、参考书上的知识,以及网上的资料最终解决问题。
和队友之间相互讨论,明白了团队合作的重要性。
本次项目设计还存在很多不足,比如,LCD的日期显示还不够完美,计数功能也不够详细等。
以后争取完善这个设计,以提高我们的单片机设计能力。
这里很感谢李晓艳老师给我们的指导和教育,感谢她给我们提供了良好的学习设计环境,也很感谢可爱的伙伴们,让我觉得团队的力量很伟大。