单片机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;}。

AT89C51单片机设计的音乐倒数计数器解析

AT89C51单片机设计的音乐倒数计数器解析

塔里木大学《单片机原理与外围电路》课程论文基于单片机设计的音乐倒数计数器姓名:古再丽努尔·阿卜来提学号: **********班级:通信工程16-1摘要:单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。

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

单片机由CPU、一定容量的RAM和ROM构成,定时、计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

而51系列单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习、应用,从而达到学习、设计、开发软、硬的能力。

本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器。

用4个按键操作来设置当前想要倒计数的时间。

做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。

应用Proteus的ISIS软件和Keil uVision3来实现该计数器的设计与仿真。

该方法仿真效果真实、准确,节省了硬件资源。

该多功能计数器可以应用于一般的生活和工作中,也可以通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。

关键词:AT89C51,计数器,键盘控制,LCD显示,protues,Keil 。

目录1绪论 (4)1.1课题背景及研究意义 (4)1.2国内外现状 (4)1.3课题的设计目的 (4)1.4课题的主要工作 (4)2系统概述 (5)2.1方案论证 (5)2.2系统设计原理 (5)3系统硬件设计 (5)3.1主控电路设计 (5)3.2LCD液晶显示器接口电路设计 (6)4系统软件设计 (6)4.1主程序设计 (6)4.2硬件调试 (8)4.3仿真结果 (16)结论 (16)参考文献 (17)系统整体电路.............................................................................................错误!未定义书签。

摘要及翻译

摘要及翻译

摘要随着科学技术的发展,单片机技术在产品的人机交互设计中扮演着越来越重要的角色。

本文对基于单片机的ZH-502时间同步系统显示模块进行了研究。

ZH-502是武汉中原华电公司自主研发的时间同步系统,主要应用于电力系统。

本文采用MSP430单片机作为核心器件,设计完成ZH-502时间同步系统的显示显示模块。

首先查阅了大量资料,深入了解和掌握了MSP430单片机的内部结构和应用方法。

结合常见电路的用法,给出了整个显示模块的设计思路和整体框图;接着重点学习了LM6060CBY液晶模块、EPC-755A编码器和X5043看门狗定时器的原理和控制方法,设计完成了整个电路的原理图和PCB。

硬件电路完成之后,使用C语言作为软件语言来控制整个显示块。

本文还介绍了基于MSP430的C语言开发环境,自主完成了程序代码部分,并编译、下载,整个系统的预设功能:显示功能菜单;实时显示由卫星发送的时间;通过按键在菜单中改变时间同步系统输出的波特率,均已调试成功。

关键词: MSP430 LM6060CBY液晶 EPC-755A编码器 C语言AbstractWith the development of science and technology, single-chip technology in the products of human-computer interaction design play an increasingly important role. In this paper, based on single-chip ZH-502 display module time synchronization system is studied. ZH-502 Wuhan, Central China Huadian Corporation is the independent research and development of time synchronization system, mainly used in power systems.In this paper, single-chip microcomputer as the core of MSP430 devices, the design of the completion of ZH-502 time synchronization system display module. First of all, a great deal of information available, in-depth understanding and knowledge of the MSP430 MCU and application of the internal structure. Combination of common usage of the circuit, given the entire display module and the overall design of the diagram; LM6060CBY then focussed on the study of the LCD module, EPC-755A and X5043 encoder watchdog timer control theory and design to complete the entire circuit schematic and the PCB. Hardware circuit is complete, use the C language as a language to control the software shows the whole block.This article also describes the MSP430-based C language development environment, self-completed part of program code and compile, download, the entire system default function: display menu; real-time display of time by satellite; through the button in the menu to change the time synchronous system output of the baud rate, have been successful debugging.Key words: MSP430 LM6060CBY LCD EPC-755A encoder C language单片机即单片微型计算机(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。

音乐倒数计数器单片机课程设计

音乐倒数计数器单片机课程设计

目录第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 上显示出设置画面。

单片机音乐倒数定时器的设计讲解学习

单片机音乐倒数定时器的设计讲解学习

单片机音乐倒数定时器的设计1.基于单片机音乐倒数定时器的设计报告2.【摘要】计时器在单片机模块中是比较常见的模块,计时器是一种用数字电路技术实现的计时装置,与机械师中相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

本设计采用AT89C51单片机对定时器的设计来实现一个简单的多功能的音乐倒计时报警器,通过三个按键可设定任意时间的倒计时报警器来满足用户的简单要求,如烧开水,煮面等简单问题。

3.【关键词】定时计数器;音乐代码;1602液晶显示4............................................................ 目录1.基于单片机音乐倒数定时器的设计报告 06.引言 07.设计要求 (2)9.设计目的 (2)10.设计的具体实现 (2)10.1.1.系统概述 (2)10.2.总体方案论证 (2)12.3.单片机选择方案 (3)13.1.1.单元电路设计 (4)13.1.2. 2.1控制电路 (4)13.2.1.1.单片机8051 (5)23.6.1.2.复位电路 (7)23.9.1.1.按键控制 (7)23.10.1.1.音乐喇叭 (8)23.11.1.1.电源输入 (8)23.12.1. 2.2控制程序 (8)23.18.1.软件程设计和调试 (10)23.18.2. 3.1延时时间的计算 (10)23.24.1. 3.2工作方式设计 (10)23.30.1. 3.3有定时器产生各种频率的声音 (11)23.36.1. 3.4程序说明 (11)75.结论和展望 (17)76.心得和体会 (18)77.参考文献 (19)5.引言5.1.随着电子技术的飞速发展,各类分立电子元件及其所构成的相关功能单元,已逐步被功能更强大、性能更稳定、使用更方便的集成芯片所取代。

由集成芯片和一些外围电路构成的各种自动控制、自动报警、自动显示电路遍及各种电子产品和设备。

单片机实验报告(计数器)

单片机实验报告(计数器)

扬州大学能源与动力工程学院课程设计报告题目:计数器课程:单片机原理及应用课程设计专业:电气工程及其自动化班级:电气1001*名:**学号:*********第一部分任务书《单片机原理及应用》课程设计任务书一、课题名称音乐倒数计数器二、课程设计目的课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。

《单片机原理及应用》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。

单片机原理及应用课程设计的目的是让学生在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能将课堂上学到的理论知识与实际应用结合起来,而且能进一步加深对电子电路、电子元器件等知识的认识与理解,同时在软件编程、排错调试、相关软件和仪器设备的使用技能等方面得到较全面的锻炼和提高。

为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。

通过单片机硬件和软件设计、调试、整理资料等环节的培训,使学生初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。

三、课程设计内容设计以89C51单片机和外围元器件构成的单片机应用系统,并完成相应的软硬件调试。

1. 系统方案设计:综合运用单片机课程中所学到的理论知识,学生根据所选课题的任务、要求和条件进行总体方案的设计。

2. 硬件电路设计:对方案中以单片机为核心的电路进行设计计算,包括元器件的选择和电路参数的计算,并画出总体电路图。

3. 软件设计:根据已设计出的软件系统框图,用汇编语言或C51编制出各功能模块的子程序和整机软件系统的主程序。

4. 调试:在单片机EDA仿真软件环境Proteus下进行仿真设计并调试;或在单片机周立功实验箱上进行相关设计并调试。

单片机设计倒计时器

单片机设计倒计时器

单片机设计倒计时器在我们的日常生活中,倒计时器有着广泛的应用,比如体育比赛、烹饪、考试等等。

通过单片机来设计倒计时器,不仅能够实现精准的计时功能,还能根据不同的需求进行灵活的定制和扩展。

接下来,让我们一起深入了解一下如何用单片机设计一个实用的倒计时器。

首先,我们需要明确倒计时器的基本功能和要求。

一般来说,倒计时器应该具备以下几个主要功能:1、设定倒计时的时间,时间范围可以根据实际需求进行调整,比如从几分钟到几小时。

2、能够清晰地显示剩余的时间。

3、具有启动、暂停和复位等操作按钮。

4、在倒计时结束时,能够发出提示信号,比如声音或者灯光提示。

为了实现这些功能,我们选择合适的单片机作为核心控制单元。

常见的单片机如 51 系列、STM32 系列等都可以满足需求。

以 51 单片机为例,它具有价格低廉、编程简单、资源丰富等优点。

在硬件设计方面,我们需要以下几个主要的组件:1、单片机最小系统:包括单片机芯片、晶振电路、复位电路等,为单片机的正常运行提供必要的条件。

2、显示模块:可以选择数码管或者液晶显示屏(LCD)来显示倒计时的时间。

数码管显示简单直观,适用于对显示效果要求不高的场合;LCD 显示屏则能够提供更丰富的信息显示,比如同时显示时间、日期等。

3、按键模块:用于输入操作指令,如设置时间、启动、暂停、复位等。

4、报警模块:可以使用蜂鸣器或者发光二极管(LED)在倒计时结束时发出提示信号。

下面我们来详细介绍一下各个模块的设计和实现。

单片机最小系统的设计是整个硬件系统的基础。

晶振电路为单片机提供时钟信号,保证其正常运行的时序。

复位电路则在系统出现异常时,能够将单片机恢复到初始状态。

对于显示模块,如果选择数码管,需要通过驱动芯片(如74HC595)来控制数码管的显示。

如果选择 LCD 显示屏,则需要根据显示屏的接口类型(如并行接口或串行接口)来进行相应的连接和编程。

按键模块可以采用独立按键或者矩阵按键的方式。

基于单片机音乐倒数计数器设计

基于单片机音乐倒数计数器设计

随着人们生活水平的不断提高,单片机 控制 无疑 是人们追 求 的 目标之一 ,要为现代人工作、科研、生活、提供更好 的更 方 便的设施就 需要 从单片机技术入手 ,一切 向着数 字化控制 , 智 能化控 制方 向发展 。本 设计基 于 A T 8 9 S 5 1 单 片机设 计 了音 乐倒数 计数器 ,通过按键控制 ,实现时间倒计数。在规定的时 间里, 当倒计 数为 0 时, 则发 出一段音乐声响 , 通知倒计数终止 。 该 系统 具 有 走 时 准 确 ,显 示 直 观 , 低 功 耗 等 特 点 。 1系统设计方案 音 乐倒数计数器所倒数 的时间 由数字显示,控制器使用单 片机 A T 8 9 C 5 1 。本 设计基 于单 片机技 术原理 , 以单 片机芯 片 A T 8 9 C 5 1 作为核 心控制器 ,通过硬件 电路的制作 以及 软件 程序 的编制,设计制作 出一个计数器 ,包 括 以下功 能 :输 出时 间, 按 下键就 开始计 时,并将时 间显示在 L C D1 6 0 2 显 示 器 上 。 当 倒计数 为 0 时,蜂 鸣器就 发出音乐声响等等 。该计数器系 统主 要 由计 数器模块、L C D显示器模块 、蜂鸣器模 块、键盘模块 、 复位 模 块 等 部 分 组 成 。 2 系统硬件 电路设计 音 乐倒数 计数器 系统主要 由计数 器模块 、L C D 显示器模 块 、蜂 鸣器模块 、键盘模块 、复位模块等部分组成 。本设计采 用5 1 系列 单片机 A T 8 9 S 5 1 单 片机, 当系 统启动 时,单片机 首 先 对 内部资源和 L C D进行初始 化,随后从 时钟 芯片读取 时间 并将其 信号传 输给 L C D显示 ,并对键 盘 电路进 行循环 扫描 , 通 过键 盘 电路 完 成 系 统 时 间 、计 数 时 间 的设 置 。下 面 分 别 介 绍 各 个 模 块 的功 能实 现 。 2 . 1 A T 8 9 c 5 1 单 片 机 A T 8 9 C 5 1 是带 4 K 字 节 闪烁 可 编 程 可 擦 除 只 读 存 储 器 的 低 电压,高性能 C MOS 8 位微处 理器 ,俗 称单片机 。单 片机 的可 擦 除只读存储器 可 以反复擦 除 1 0 0 次。该器件采用 A T ME L高 密度非易失存储器制造技术制造 ,与工业标准 的 MC S . 5 1 指令 集和输 出管脚 相兼容 。由于将 多功能 8 位C P U和 闪烁存储 器 组合在 单个 芯片 中, A T ME L的 A T 8 9 C 5 1 是一种 高效微控制器 , A T 8 9 C 5 1 单片机 为很 多嵌入式控制系统提供 了一种灵活性高且 价廉的方案 。 2 . 2 显 示 电路 显示 电路 有单 片机 和一个 L C D1 6 0 2 液 晶显 示器组成 ,P 0 为输入 口,P 2 为片选 口。1 6 0 2 液晶也 叫 1 6 0 2 字符型 液晶 ,它 是一种专 门用 来显示字母 、数字 、符号等 的点阵型液 晶模块 。 它 由若 干 个 5 ×7 或者5 ×1 1 等 点 阵 字 符 位 组 成 ,每 个 点 阵 字 符 位都可以显示一个字符 ,每位之 间有一个点距 的间隔 ,每行之 间也有间隔,起 到了字符 间距和行 间距 的作用 。

LCD12864液晶显示倒计时设计

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、熟悉模拟电路的应用与集成电路的引脚排列。

倒数计数器单片机课程设计

倒数计数器单片机课程设计
单片机在工作时,有内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,f表示。图5-2中的时钟频率为12MHz,即f=12MHz,则时钟周期为1/12us。
2.4.4按键控制模块
按键用于控制数码显示、LCD显示、扬声器等模块的工作。通过扫描按键是否按下,来设定各模块的工作情况,使各模块可以在按键的控制下,有序地进行工作。设计中使用单个按键实现单个功能,属于较为简单的控制方式,在多功能系统设计的试验中我们使用四个按键分别与单片机的p1.0、p1.1、p1.2、p1.3相连。通过按下相应的按键来处理相应的程序。如下图6所示。
图6 按键控制模块图
2.4.5其它元件
其它元件图如下图7所示。
图7 其他元件图
2.5绘制中遇到的问题及解决办法
在绘图的过程中主要出现的问题是有些元器件在protues中找不到,出现这样的问题是对protues软件的应用不是很熟悉,当遇到找不的元器件时,就只有通过网络来查找。
第三章系统软件设计
3.1软件设计
高4位三态、双向数据总线4位
12
DB5
高4位三态、双向数据总线5位
13
DB6
高4位三态、双向数据总线6位
14
DB7
高4位三态、双向数据总线7位(最高位)(也是busy flag)
15
BLA
背光电源正极
16
BLK
背光电源负极
2.4.3晶振电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。

音乐倒数计数器课程设计报告

音乐倒数计数器课程设计报告

湖南涉外经济学院课程设计报告课程名称:单片机原理及应用报告题目:音乐倒数计数器学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:廖亦凡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)一、概述随着科技的发展和社会的进步,人们对数字钟的要求越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。

微机原理及应用课程设计基于单片机设计的音乐倒数计数器

微机原理及应用课程设计基于单片机设计的音乐倒数计数器

PCB图,仿真语言程序原理图等全套设计,联系153893706课程设计说明书课程名称: 微机原理及应用课程设计课程代码:题目:基于单片机设计的音乐倒数计数器年级/专业/班: 2009级车辆工程汽电四班学生姓名:学号:开始时间:2012 年07 月02 日完成时间:2012 年07 月06 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总分(100)指导教师签名:年月日目录摘要 (2)1 项目概述和要求 (3)1.1单片机基础知识 (3)1.2 单片机的发展趋势 (4)1.3设计概述和设计要求 (5)2 系统设计 (6)2.1 框图设计 (6)2.2系统硬件电路设计 (7)2.2.1 AT89C51介绍 (7)2.2.2 1602LCD 介绍 (7)2.2.3 键盘介绍 (9)2.2.4 蜂鸣器介绍 (10)3、系统软件设计 (11)3.1 proteus软件环境介绍 (11)3.2 Protel软件环境介绍 (12)3.3流程图 (13)3.4蜂鸣器发声电路原理 (17)4 PROTEUS仿真结果 (19)4.1 电路原理图及仿真 (19)4.2 倒计时设置仿真如下图4-2(a)所示 (21)4.3 蜂鸣器的仿真如下图4-3所示 (22)5 总结 (23)致谢 (24)参考文献 (24)附表(本设计所有程序) (25)摘要单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。

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

单片机由CPU、一定容量的RAM和ROM构成,定时、计数和多种接口于一体的微控制器。

单片机课程设计带有LCD显示的音乐倒数计数器

单片机课程设计带有LCD显示的音乐倒数计数器

测试结果:记录测 试结果,分析程序 性能
问题解决:针对测 试中发现的问题, 进行修改和优化
06
音乐倒数计数器的硬件 设计
电路板设计流程
确定电路板尺寸和形状 绘制电路原理图 设计电路板布局
制作电路板文件 制作电路板 测试电路板性能
元器件的选择与布局
单片机:选择合适的型号,如 STC89C52
音乐芯片:选择合适的音乐芯片,如 YM2413
电源模块:为整个电路提 供稳定的电源电压
04
单片机与LCD显示模块 的连接
LCD显示模块简介
LCD显示模块是一种常用的显示设备,广泛应用于各种电子设备中。
LCD显示模块具有低功耗、高亮度、长寿命等优点。 LCD显示模块的工作原理是通过控制液晶分子的排列,实现对光线的调 制。 LCD显示模块的接口类型包括并行接口、串行接口等。
添加项标题
2000年代,ARM公司推出Cortex系列微处理器,成为智 能手机、平板电脑等设备的主流单片机
单片机的应用领域
工业控制:如 家电产品:如
自动化生产线、 洗衣机、冰箱、
机器人等
空调等
汽车电子:如 汽车电子控制 系统、车载娱
乐系统等
医疗设备:如 医疗仪器、医 疗电子设备等
通信设备:如 手机、路由器
单片机与LCD显示模块的接口电路
接口信号:时钟信号、数据 信号、控制信号等
接口类型:I2C、SPI、 UART等
接口设计:根据单片机和 LCD显示模块的接口要求进
行设计
接口测试:通过测试确保接 口电路的正常工作
接口电路:单片机与LCD显 示模块之间的连接电路
接口优化:根据测试结果对 接口电路进行优化和改进
02 单片机概述

基于单片机的音乐倒数计时器设计

基于单片机的音乐倒数计时器设计

课程设计报告基于单片机的音乐倒数计时器目录一、简介1.单片机基础知识 (1)2.单片机发展趋势 (1)3.常用的单片机系列 (1)4.单片机的应用领域 (1)二、总体方案设计1.主要功能 (2)2.设计要求 (2)三、最小系统1.复位电路 (3)2.晶振延时电路 (3)四、系统硬件分析与设计1.框图设计 (4)2.系统硬件电路方案选定与设计 (5)3.电路原理图 (6)4.元器件 (7)1)STC89C52单片机 (8)2)字符型LCD1602 (9)3)按键控制模块 (10)4)其他元器件 (11)五、系统软件程序设计1.主程序流程图 (12)2.LCD1602显示流程图 (13)3.按键控制流程图 (14)六、实物制作与仿真调试1.硬件调试 (15)2.软件调试 (16)3.软硬件调试 (17)七、总结...........................参考文献 (18)附录一元器件清单………..附录二原理图………………附录三程序清单……………附录四实物图……………….一、简介1.单片机基础知识典型的微型计算机包括运算器、控制器、存储器、I/O接口四个基本组成部分。

如果在一块芯片上,集成了一台微型计算机的四个基本组成部分,这种芯片就被称为单片微型计算机(Single Chip Microcomputer),简称单片机。

单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。

单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机了解计算机原理与结构的最佳选择。

2.单片机发展趋势世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补。

AT89C51音乐倒数计数器

AT89C51音乐倒数计数器
●与MCS-51 兼容
●4K字节可编程闪烁存储器
●寿命:1000写/擦循环
●数据保留时间:10年
●全静态工作:0Hz-24Hz
●三级程序存储器锁定
●128*8位内部RAM
●32可编程I/O线
●两个16位定时器/计数器
●5个中断源
●可编程串行通道
●低功耗的闲置和掉电模式
●片内振荡器和时钟电路
2.2显示电路——LCD数码管
#define uint unsigned int
#define uchar unsigned char
uint t,flag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;
uchar num,j,i,k=0;
uchar code table[]="TIME 00:00";
图4-1 主程序流程图
图4-3 按键流程图
5 系统的仿真与调试
5.1 硬件调试
硬件调试分为静态调试和动态调试,对于硬件调试而言,只要认真焊接,硬件一般不会出现什么问题的。
静态调试一般采用的工具是万用表,它是在用户系统未工作时的一种硬件检测。
动态调试是在用户系统工作的情况下发现和排查错误的一种硬件检测。调试步骤是:首先把电路分为若干模块,调试过程中与该模块无关的元件可以不加考虑,这样可把故障限定在一定的范围内;故障清除后,把各个模块合在一起进行联调,即可完成整个硬件调试工作。
5 系统的仿真与调试:
5.1 硬件调试---------------------10
5.2 软件调试---------------------11
5.3 软硬件调试-------------------13

音乐倒数计数器课程设计报告

音乐倒数计数器课程设计报告

湖南涉外经济学院课程设计报告课程名称:单片机原理及应用报告题目:音乐倒数计数器学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:廖亦凡20 14 年 6 月 4日课程设计任务书摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,收到人们的重视和关注,应用很广、发展很快。

而51单片机是各单片机最为典型和最有代表性的一种。

本实验是基于MCS51系列单片机所设计的,可以实现键盘按键与数字动态显示并可以用音乐倒数的计数器。

本设计基于单片机技术原理,以单片机芯片STC89C51作为核心控制器,通过硬件电路的制作以及软件程序的编程,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。

当倒数计数为0是,蜂鸣器就发出音乐声响等等。

该计数系统主要由计数器模块、LCD显示快、蜂鸣器模块、键盘模块、复位模块等部分组成。

关键词:STC89C51;键盘;LCD1602显示;蜂鸣器目录一、概述 (1)二、方案设计与论证 (2)三、系统硬件电路设计与分析 (2)主控制器—AT89S51单机 (2)显示电路—LCD数码 (2)四、系统软件程序设计与分析 (2)程序流程图 (2)源程序 (6)五、系统的仿真与调试 (13)硬件调试 (13)软件调试 (13)软硬件调试 (13)六、总原理图及元器件清单 (14)总原理图 (14)元器件清单 (14)AT89C51芯片 (14)字符型LCD1602 (15)按键控制模块 (16)其它元件 (17)七、结论与心得 (17)八、参考文献 (18)一、概述随着科技的发展和社会的进步,人们对数字钟的要求越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。

数字钟实际上是一个对标准频率进行计数的计数电路,走时精度高,稳定性好,使用方便,不需要经常调校。

单片计算机即单片微型计算机,是集CPU,RAM,ROM,定时/计数和多种接口于一体的微控质器。

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

单片机应用系统设计安装与调试课程设计说明书(论文)设计题目:课程设计所属学院:电气工程学院专业:电气自动化姓名:王洋学号:01班级:电气自动化试点班起讫时间:2012.06.06指导教师:田浩鹏职业学院目录摘要 (I)1 项目概述和要求 (1)1.1 单片机基础知识 (1)1.2 单片机的发展趋势 (1)1.3 项目设计任务与要求 (3)2 系统设计 (4)2.1 框图设计 (4)2.2部分硬件方案论述 (4)2.3电路原理图 (4)2.4元件清单 (5)2.4.1AT89C51芯片 (5)2.4.2字符型LCD1602 (6)2.4.3按键控制模块 (8)2.4.4其它元件 (8)3软件设计 (9)3.1 程序流程图 (9)3.2 程序关键问题的部分代码 (11)4 系统的仿真与调试 (16)4.1 硬件调试 (16)4.2 软件调试 (16)4.3 软硬件调试 (16)5总结 (17)参考文献 (18)1 项目概述和要求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(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

二、低功耗CMOS化MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。

像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。

CMOS虽然功耗低,但由于其物理特征决定其工作速度不够高,而CHMOS 则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。

所以这种工艺将是今后一段时期单片机发展的主要途径。

三、主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍以89C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国的Winbond系列单片机。

所以89C51占据了半壁江山。

而Microchip公司的PIC精简指令集合(RISC)也有着强劲的发展势头,中国的HOLTEX公司近年的单片机产量与日俱增,与其底价质优的优势,占据一定的市场份额。

此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。

在一定的时期,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补、相辅相成、共同发展的道路。

九十年代以后,单片机在结构上采用双CPU或部流水线,CPU位数有8位、16位、32位,时钟频率高达20MHZ,片带有PWM输出、监视定时器WDT、可编程计数器阵列PCA、DMA传输、调制解调器等。

芯片向高度集成化、低功耗方向的发展,使得单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量应用。

这类单片机有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。

1.3 项目设计任务与要求⏹设计任务:利用AT89C51单片机结合字符型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键---设置完成。

⏹[扩充功能]:⏹增加时钟及闹钟功能。

⏹增加秒表计数功能。

2 系统设计2.1 框图设计框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。

同时罗列出需要主要使用到的各个器件,以方面系统开发中器件的选取。

通过框图设计,让设计者从整体上把握系统的开发。

本系统设计的框图如下图2-1所示。

图2-1 系统结构框图2.2部分硬件方案论述◆LCD1602显示方式的方案比较。

方案一:采用花样显示,花样显示是指LCD显示某一屏字符时,采取从左到右或者是从右到左的整屏移动的显示方式。

在这种显示方式下,给人的感觉就是程序是在执行的,同时如果控制好了移动一屏的时间间隔的话,在整体视觉上可以达到很好的效果。

方案二:采用静态显示,静态显示是指LCD显示某一屏字符时,时钟保持当前字符的显示,不使用移屏显示。

便于控制,同时能够满足正常的显示效果。

由于在显示中存在播放时间的动态变化,这样的话,即使是不产生整屏移动,也能给人动态感,也易于控制。

基于以上各种特点,我选择了方案二。

2.3电路原理图电路原理图如图2-2所示。

图2-2 电路原理图2.4元件清单2.4.1 AT89C51芯片AT89C51芯片图如下图2-3所示。

图2-3 AT89C51芯片图①简介:AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

②主要特性:与MCS-51 兼容;4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;128×8位部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片振荡器和时钟电路。

2.4.2 字符型LCD1602字符型lcd1602如下图2-4所示。

图2-4 lcd1602图1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。

VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,各引脚符号及其功能表如下表2-1所示。

表2-1 LCD各引脚及其功能表2.4.3 按键控制模块按键用于控制数码显示、LCD显示、扬声器等模块的工作。

通过扫描按键是否按下,来设定各模块的工作情况,使各模块可以在按键的控制下,有序地进行工作。

设计中使用单个按键实现单个功能,属于较为简单的控制方式。

在多功能系统设计的试验中我们使用四个按键分别与单片机的p1.4、p1.5、p1.6、p1.7相连。

通过按下相应的按键来处理相应的程序。

如下图2-5所示。

图2-5 按键控制模块图2.4.4 其它元件其它元件图如下图2-6所示。

图2-6 其它元件图3软件设计3.1 程序流程图主程序开始初始化,然后扫描键盘、复位电路和计数器。

当键盘按键有按下时,调整计数器值,LCD显示新值。

当复位键有按下时,计数器复位为初值,重新倒计数。

当计数器值倒计为0时,蜂鸣器发出声音,计数器停止倒计,程序结束。

主程序流程图、lcd显示流程图和按键流程图分别如下图3-1、图3-2和图3-3所示。

图3-1 主程序流程图图3-2 lcd显示流程图图3-3 按键流程图3.2 程序关键问题的部分代码◆LCD显示代码:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define DataPort P0#define Busy 0x80sbit RS=P3^4;sbit RW=P3^6;sbit E=P0;void Delay(void){uchar i,j;for(i=255; i>0; i--)for(j=255; j>0; j--){_nop_();}}void CheckBusy(void){DataPort=0xff;RS=0;RW=1;_nop_();E=1;_nop_();_nop_();while((DataPort&Busy)==Busy){E=0;E=1;}E=0;}void WriteIR(uchar CMD,uint check) {if(check)CheckBusy();_nop_();_nop_();RS=0;RW=0;_nop_();DataPort=CMD;_nop_();E=1;_nop_();_nop_();E=0;}void WriteChar(short Xpos, char c){short temp=0x80;temp|=Xpos;WriteIR(temp,1);CheckBusy();_nop_();_nop_();RS=1;RW=0;_nop_();DataPort=c;_nop_();E=1;_nop_();_nop_();E=0;Swich(1){Case s1: time=1;time++;Case s2: time=5;ch[]={‘0500’};Case s3: time=10;ch[]={‘1000’};Case s4: time=20;ch[]={‘2000’} }void LCDReset(void){Swich(1){Case s2: time++;Case s3: time--;Case s4: break;}}void main(void){uint i;char time;uchar ch[]={"20050510,mon,00:00"};while(1){LCDReset();Delay();for(i=0; i<10; i++){WriteChar(i,ch[i]);Delay();}}}◆音乐播放如下(部分):V oid music_paly(unsigned char *msc) {Unsigned char music_long; Unsigned cha music_data=0;Temp_TH1=0xff;Temp_TL1=0xea;TH1=temp_TH1;TL1=temp_TL1;TR1=1;While(*msc !=0x00&&N_Ring==1){Music_data=*msc & 0x07;Music_long=*msc>>4;//…………………………If(music_long !=0){Temp_TH1=music_freq_tab[music_data *2];Tenp_TH1=music_freq_tab[music_data *2=1];Music_delay(music_1_tab[music_long&0x07]);}Msc++;}TR1=0;PIN_MSC=1;}4 系统的仿真与调试4.1 硬件调试硬件调试分为静态调试和动态调试,对于硬件调试而言,只要认真焊接,硬件一般不会出现什么问题的。

相关文档
最新文档