还剩31页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
信息与电气工程学院单片机应用系统(三级项目)设计说明书(2014/2015学年第二学期)题目__专业班级学生学号学生姓名指导教师吴开兴、刘会军、马永强、马小进设计周数2周设计成绩2015年6月26日TOC\o1-3\h\u
1、项目设计目的
21.1音乐播发器技术要求
21.2项目设计目的及意义
22、项目设计正文
22.1需求分析
22.2器件介绍
32.
2.1LM1602L液晶显示频
32.
2.251单片机介绍
82.
2.3LM___简介
102.3设计原理说明
112.4单元电路设计
122.
4.1按键矩阵
122.
4.2LM___音频功率放大器
132.
4.3LM016液晶屏
132.
4.4晶振及复位电路
142.5系统调试
143、项目设计和总结
154、____
161、项目设计目的
1.1音乐播发器技术要求
(1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲
(2)采用LCD或数码管显示信息
(3)开机时有英文欢迎提示字符,播放时显示歌曲序号
(4)可通过功能键选择乐曲,暂停,播放
(5)选做内容编写上位机程序,通过串口发送指令来控制音乐的播放
1.2项目设计目的及意义
(1)通过本次设计巩固这学期所学单片机的知识;
(2)掌握利用汇编语言的运用;
(3)熟习利用ISIS7Professional软件的运用;
(4)巩固、深化和扩展学生的理论知识与初步的专业技能
(5)为今后从事电子技术领域的工程设计打好基础基本要求
2、项目设计正文
2.1需求分析随着音乐播放器的日益人性化,听音乐已经成为人们日常生活中不可或缺的一部分由于市场上的音乐播放器品牌繁多,满足着各层次的消费者的需求根据调差,可知外形新颖、小巧轻便灵活的音乐播放器是很受年轻人的青睐和欢迎,基于此,设计音乐播放器重点还是在于美观的外形和其吸引人的性能
2.2器件介绍
2.
2.1LM1602L液晶显示频1液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA__通信工具等众多领域液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等除了黑白显示外,液晶显示器还有多灰度有彩色显示等如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(________trix)和主动矩阵驱动(Active__trix)三种液晶显示器各种图形的显示原理线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线这就是LCD显示的基本原理字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮这样一来就组成某个字符但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为
1、
3、5……右边为
2、
4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图所示图2-11602LCD尺寸图1602LCD主要技术参数显示容量:16×2个字符;芯片工作电压:
4.5—
5.5V;工作电流:
2.0__
5.0V;模块最佳工作电压:
5.0V;字符尺寸:
2.95×
4.35W×Hmm,其引脚功能说明如下表2-1所示表2-11602LCD引脚接口说明编号符号引脚说明编号符号引脚说明1VSS接地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能__14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚VSS为地电源第2脚VDD接5V正电源第3脚VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器第5脚R/W为读写__线,高电平时进行读操作,低电平时进行写操作当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙__,当RS为高电平R/W为低电平时可以写入数据第6脚E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令第7~14脚D0~D7为8位双向数据线第15脚背光源正极第16脚背光源负极
(5)指令说明及时序
①1602液晶显示模块内部的控制器共有11条控制指令,如下表2-2所示表2-2控制命令表序号指令RSR/WD7D6D5D4D3D2D1D0功能1复位显示器0000000001清屏,光标归位2光标返回000000000*设置地址计数器清零,DDRAM数据不变,光标移到左上角3字符进入模式00000001I/DS设置字符进入时的屏幕移位方式4显示开/关控制0000001DCB设置显示开关,光标开关,闪烁开关5光标或字符移位000001S/CR/L**设置字符与光标__6功能设置00001DLNF**设置DL,显示行数,字体7设置字符发生存储器地址0001字符发生存储器地址设置6位的CGRAM地址以读/写数据8设置数据存储器地址001显示数据存储器地址设置7位的DDRAM地址以读/写数据9读忙标志或地址00BF计数器地址读忙标志及地址计数器10写数据到CGRAM或DDRAM10写入一字节数据,需要先设置RAM地址向CGRAM/DDRAM写入一字节的数据11从CGRAM或DDRAM读数据11读取入一字节数据,需要先设置RAM地址向CGRAM/DDRAM读取一字节的数据
②特殊引脚说明I/D=1递增,I/D=0递减S=0时显示屏不__,S=1时,如果I/D=1且有字符写入时显示屏左移,否则右移D=1显示屏开,D=0显示屏关C=1时光标出现在地址计数器所指的位置,C=0时光标不出现B=1时光标出现闪烁,B=0时光标不闪烁S/C=0时,RL=0则光标左移,否则右移S/C=1时,RL=0则字符和光标左移,否则右移DL=1时数据长度为8位,DL=0时为使用D7-D4共4位,分两次送一字节N=0为单行显示,N=1时为双行显示F=1时为510点阵字体,F=0时为57点阵字体BF=1时LCD忙,BF=0时LCD就绪
③指令说明1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明1为高电平、0为低电平)指令1清显示,指令码01H光标复位到地址00H位置指令2光标复位,光标返回到地址00H指令3光标和显示模式设置I/D光标__方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移高电平表示有效,低电平则无效指令4显示开关控制D控制整体显示的开与关,高电平表示开显示,低电平表示关显示C控制光标的开与关,高电平表示有光标,低电平表示无光标B控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5光标或显示移位S/C高电平时__显示的文字,低电平时__光标指令6功能设置命令DL高电平时为4位总线,低电平时为8位总线N低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7字符发生器RAM地址设置指令8DDRAM地址设置指令9读忙__和光标地址BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙指令10写数据指令11读数据
④与HD44780相兼容的芯片时序表如下表2-3表2-3时序表读状态输入RS=LR/W=HE=H输出D0~D7=状态字写指令输入RS=LR/W=LD0~D7=指令码,E=高脉冲输出无读数据输入RS=HR/W=HE=H输出D0~D7=数据写数据输入RS=HR/W=LD0~D7=数据,E=高脉冲输出无
(6)1602LCD标准子库表如下图2-2所示图2-21602LCD标准子库表
2.
2.251单片机介绍
(1)51单片机采用40个引脚的双列直插封装,如下图2-3所示图2-3双列直插封装方式的引脚40个引脚按其功能可分为如下3类电源及时钟引脚─Vcc、Vss;XTAL
1、XTAL2;控制引脚─、ALE/、/Vpp、RST;I/O口引脚─P
0、P
1、P
2、P3为4个8位I/O口的外部引脚;2电源及时钟引脚
①电源引脚Vcc接+5V电源;Vss接数字地
②时钟引脚XTAL1片内振荡器反相放大器和时钟发生器电路的输入端当使用片内振荡器时,该引脚连接外部石英晶体和微调电容;当采用外界时钟源时,该引脚接外部时钟振荡器的__XTAL2片内振荡器反相放大器的输出端当使用片内振荡器时,引脚连接外部石英晶体和微调电容;当采用外界时钟源时,该引脚悬空
(3)控制引脚
①RST复位__输入端,高电平有效
②/Vpp为该引脚的第一功能,即外部程序存储器访问允许控制端当引脚接高电平时,在PC值不超出0FFFH时,单片机读片内4KB中的程序;当超出时,将自动转向读取片外60KB程序存储器空间的程序当接低电平时,只读取外部程序存储器的内容,片内的4KB程序存储器不起作用Vpp为该引脚的第二功能,即在对片内Flash进行编程时,Vpp引脚接入变成电压
③ALE/ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存__,将低8位的地址锁存在片外的地址锁存器中为该引脚的第二功能,即在对片内Flash存储器进行编程时,此引脚作为编程秒冲输入端
④片外程序存储器的读选通__,低电平有效
(4)并行I/O口引脚
①P0口8位,漏极开路的双向I/O口当扩张外部存储器及I/O接口芯片时,P0口作为地址总线(低8位)及数据总线的分时复用端口
②P1口8位,准双向I/O口,具有内部的上拉电阻P1口是专为用户使用的准双向I/O口当作为通用的I/O口输入时,应先向端口锁存器写入1P1口可驱动4个LS型TTL负载
③P2口8位,准双向I/O口,具有内部的上拉电阻当扩张外部存储器及I/O口时,P2口作为高8位地址总线用,输出高8位地址P2口作为通用的I/O输入时,应先向端口输出锁存器写入1P2口可驱动4个LS型TTL负载
④P3口8位,准双向I/O口,具有内部的上拉电阻当P3口作为通用的I/O输入时,应先向端口输出锁存器写入1P2口可驱动4个LS型TTL负载P3口还可提供第二功能,如下表2-4所示表2-4P3口的第二个功能定义引脚第二功能说明P
3.0RXD串行数据输入口P
3.1TXD串行数据输出口P
3.2外部中断0输入P
3.3外部中断1输入P
3.4T0定时器0外部计数输入P
3.5T1定时器1外部计数输入P
3.6外部数据存储器写选通输出P
3.7外部数据存储器读选通输出
2.
2.3LM___简介LM___是美国国家半导体公司生产的音频功率放大器主要应用于低电压消费类产品为使__元件最少电压增益内置为20但在1脚和8脚之间增加一只外接电阻和电容便可将电压增益调为任意值直至200输入端以地位参考同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24MVLM___的封装形式有塑封8引线双列直插式和贴片式,如图1所示,典型应用电路如图2所示图2-4图2-
52.3设计原理说明当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲同时启动定时器T1,显示乐曲播放的时间,并驱动LCD显示歌曲号及播放时间也可在LED显示歌曲号
(1)硬件电路中用P
1.0~P
1.7控制按键,其中P
1.0~P
1.3扫描行,P
1.4~P
1.7扫描列
(2)用P
0.0~P
0.7,P
2.0~P
2.7控制LED其中P
0.0~P
0.7控制七段码abcdefg用P
2.0~P
2.7为数码管位选__
(3)用,P
2.0~P
2.2作为LCD的RSR/WE的控制__用P
0.0~P
0.7作为LCD的D0~D7的控制__
(4)用P
3.7口控制扬声器(J2J4断开,J3短接)
(5)电路为12MHZ晶振频率工作,起振电路中C1C2均为30pf系统总体设计图如下图所示
2.4单元电路设计
2.
4.1按键矩阵本设计采用3*4矩阵非编码按键,由4*4矩阵修改而成,这样不但可以节省程序扫描,也可以节省端口的占用率,从而达到简洁高效的效果键盘为各自__按键,只简单地提供按键开关对按键矩阵的扫描由P
1.0—P
1.3口共同完成图2-
62.
4.2LM___音频功率放大器 LM___是美国国家半导体公司生产的音频功率放大器主要应用于低电压消费类产品为使__元件最少电压增益内置为20但在1脚和8脚之间增加一只外接电阻和电容便可将电压增益调为任意值直至200输入端以地位参考同时输出端被自动偏置到电源电压的一半在6V电源电压下它的静态功耗仅为24mW使得LM___特别适用于电池供电的场合图2-
72.
4.3LM016液晶屏LM016在电路中主要用于显示当前乐曲,以及乐曲序号,欢迎界面等功能图2-
82.
4.4晶振及复位电路晶振电路的作用是为系统提供基本的时钟__,通常一个系统公用一个晶振,便于各部分保持同步复位电路,是一种用来使电路恢复到起始状态的电路设备,它的操作原理与计算机有着异曲同工之妙,只是启动原理和手段有所不同为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位图2-
92.5系统调试将编写的*.a__文件在KeiluVision4中生成*.hex文件,将生成的*.hex文件导入Proteus中AT__C51芯片中,运行,观察液晶屏显示结果和发声器的发音情况Proteus仿真在调试过程中程序运行正常图2-
103、项目设计和总结在设计过程中,程序设计初步完成后,编译出现了很多错误,经过一步步跟踪检查程序,修改了部分后,再进行编译,还是存在错误,再次进行修改,一直出现同样的错误,最后在老师和同学的帮助下,程序终于编译成功了开始进入仿真调试,仿真出来的效果是部分功能没有实现,经检查是仿真电路有点差错,仿真电路图完善后,仿真调试实现了所要求的功能将软件调试成功的程序下载到硬件实验板上调试功能,刚开始按键识别不了,检查硬件电路,发现有电路出现虚焊,重新焊硬件电路,硬件实验板上也能实现功能由于条件有限,本设计的功能较为简单通过这次设计,我们还是学到很多东西虽然在调试过程中,从大问题到小问题,但是期间能力都得到考验和提升同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不够好这次课程设计通过自己的努力,同学的帮助,还有老师的辛勤指导下,最终顺利完成了
4、____
[1]彭伟.单片机C语言程序设计实训100例.电子工业出版社.2009年
[2]吴运昌.模拟电子线路基础.广州华南理工大学出版社,2004年
[3]阎石.数字电子技术基础.北京高等教育出版社,1997年
[4]李建忠.单片机原理及应用.西安西安电子科技大学,2002年
[5]韩志军等.单片机应用系统设计[M].机械工业出版社,2004项目设计评语项目设计成绩指导教师(签字)年月日附录RS BIT P
2.0;定义液晶显示端口标号RW BIT P
2.1E BIT P
2.2;********************************************L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H;*******************************************org 0000h ljmp __inORG 000BHLJMP TT0ORG 001BHLJMP T1INTorg 1000h__in:;-----------------------;液晶初始化MOV SP#70H MOV P0#01H ;清屏 CALL ENABLE MOV P0#38H ;8位,2行显示 lCALL ENABLE MOV P0#0FH ;屏显on,光标on闪烁on lCALL ENABLE MOV P0#06H ;计数地址加1,显示幕on lCALL ENABLE;-------------------------------内存初始化 lcall initil ;-------------------------------key1: lcall key lcall modd ljmp key1;---------------------键盘扫描key: nop nop lcall ks jnz k1 ;有按键转到K1 lcall kaiji lcall SOPxn: ljmp keyk1: lcall modd lcall modd lcall ks jnz k2 ljmp keyk2: mov R2#0feh ;读键盘 mov R4#00hk3: mov AR2 mov P1A mov AP1 JB ACC.4L1 ;为1跳转,第一行无按键 mov a#00h ljmp lkL1: jb acc.5L2 mov a#04h ljmp lkL2: jb acc.6L3 mov a#08h ljmp lkL3: jb acc.7next1 mov a#0ch;-------------------------------------------------------lk: add aR4 push acck4: lcall delay1 ;若同时有其他按键,则等待 lcall ks jnz k4;-------------------------------------------------------- mov r3#07h clr a mov r0#30h mov r1#31hmm1: mov a@r1 mov @r0a inc r0 inc r1 djnz r3mm1 pop acc mov @r0a RET;------------------------------------------------------next1: inc R4 ;------列扫描 mov aR2 JNB acc.3n2 ljmp n1n2: ljmp keyn1: rl a mov R2a ljmp k3;----------------------------------------------ks: mov a#0f0h ;判断P1口 mov P1a nop nop mov aP1 cpl a anl a#0f0h RET;--------------------------------------------------DELAY1: SETB RS0dl: mov R5#0ahdl2: mov R6#63dl3: nop nop djnz R6dl3 djnz R5dl2 CLR RS0 RET;---------------------------------------------------;30H-37H初值为零;----------------------------------------------------initil: mov r3#08h mov r0#30hm1: mov @r0#00h inc r0 djnz r3m1 RET;----------------------------------------------------;显示 ;---------------------------------------------------modd: MOV P0#8EH CALL ENABLE mov A37H mov DPTR#TABLE3 MOVC A@A+DPTR CALL WRITE2 RET;--------------------------------------------------;开机提示字;-------------------------------------------------kaiji: mov a37h cjne a#0fhDFF MOV P0#80H ;设光标地址 CALL ENABLE MOV DPTR#TABLE1;写数据 CALL WRITE1 DFF: RET;----------------------------------------------;按键值播放歌曲;----------------------------------------------SOP: mov a37h cjne a#01hA11 LCALL MODD MOV 52H#HIGHTABLE10 MOV 53H#LOWTABLE10 LCALL INITILE2 lcall __IN0A11: CJNE A#02HA22 LCALL MODD MOV 52H#HIGHTABLE20 MOV 53H#LOWTABLE20 LCALL INITILE2 lcall __IN0A22: CJNE A#03HA33 LCALL MODD MOV 52H#HIGHTABLE30 MOV 53H#LOWTABLE30 LCALL INITILE2 lcall __IN0 A33: CJNE A#04HA44 LCALL MODD MOV 52H#HIGHTABLE40 MOV 53H#LOWTABLE40 LCALL INITILE2 lcall __IN0A44: CJNE A#05HA55 LCALL MODD MOV 52H#HIGHTABLE50 MOV 53H#LOWTABLE50 LCALL INITILE2 lcall __IN0A55: CJNE A#06HA66 LCALL MODD MOV 52H#HIGHTABLE60 MOV 53H#LOWTABLE60 LCALL INITILE2 lcall __IN0 A66: CJNE A#07HA77 LCALL MODD MOV 52H#HIGHTABLE70 MOV 53H#LOWTABLE70 LCALL INITILE2 lcall __IN0 A77: CJNE A#08HA88 LCALL MODD MOV 52H#HIGHTABLE80 MOV 53H#LOWTABLE80 LCALL INITILE2 lcall __IN0A88: CJNE A#09HA99 LCALL MODD MOV 52H#HIGHTABLE90 MOV 53H#LOWTABLE90 LCALL INITILE2 lcall __IN0 A99: CJNE A#0AHAAA LCALL MODD MOV 52H#HIGHTABLE100 MOV 53H#LOWTABLE100 LCALL INITILE2 lcall __IN0 AAA: RET ;******************************************INITILE2: MOV L50MS#20 MOV L1MS#00H MOV L250MS#00H MOV SEC#00H MOV MIN#00H MOV HOU#00H MOV AHOU MOV B#10 DIV AB ADD A#30H ;将BCD吗转化为ASIIC码 MOV P0#0C8H ;显示小时十位 CALL ENABLE CALL WRITE2 MOV AB ADD A#30H MOV P0#0C9H ;显示小时个位 CALL ENABLE CALL WRITE2 MOV A#3AH MOV P0#0DH ;显示冒号 CALL ENABLE CALL WRITE2 MOV AMIN MOV B#10 DIV AB ADD A#30H MOV P0#0CBH ;显示分十位 CALL ENABLE CALL WRITE2 MOV AB ADD A#30H MOV P0#0CCH ;显示分个位 CALL ENABLE CALL WRITE2 MOV A#3AH MOV P0#0CDH ;显示冒号 CALL ENABLE CALL WRITE2 MOV ASEC MOV B#10 DIV AB ADD A#30H MOV P0#0__H ;显示秒十位 CALL ENABLE CALL WRITE2 MOV AB ADD A#30H MOV P0#0CFH ;显示秒个位 CALL ENABLE CALL WRITE2 MOV P0#0C0H ;设光标地址 CALL ENABLE MOV DPTR#TABLE2;写数据 CALL WRITE1 RET;*********************************************写指令ENABLE: CLR RS CLR RW CLR E LCALL DELAY SETB E RET;**********************************************写数据WRITE1: MOV R1#00HA1: MOV AR1 MOVC A@A+DPTR CALL WRITE2 INC R1 CJNE A#0FEHA1 ;未到字符串末尾继续 RETWRITE2: MOV P0A SETB RS CLR RW CLR E CALL DELAY SETB E RET;**********************************************DELAY: MOV R4#05D1: MOV R5#0FFH DJNZ R5$ DJNZ R4D1 RET ;----------------------------------------------TAB: db0c0h0f9h0a4h0b0h99h92h82h0f8h db80h90h88h83h0c6h0a1h86h8ehTAB1: db__h86h0c7h0c7h0c0h TAB2: db0c6h88h0c0hTABLE1:DB WELCOMHERE0FEHTABLE2:DB DFFWB0FEHTABLE4:DB CAU0FEH TABLE3:DB 30H31H32H33h DB 34H35H36H37H DB 38h39H41H42H DB 43H44H45H46H ;--------------------------------------------------------------------;播放歌曲程序;--------------------------------------------------------------------__IN0:MOV TMOD#11HMOV IE#8aH ;MOVTH1 #3cH ;MOVTL1 #0b0H lcall ksjnz TTM12 MOV 40H#00H;---------------------------------------------------------NEXT20: MOV A40HMOV DPH52HMOV DPL53HMOVCA@A+DPTRMOV R2AJZ STOPANL A#0FHMOV R1AMOV AR2SWAP AANL A#0FHJNZ SINGCLR TR0JMP W1;----------------------------------------------------------SING: DEC AMOV 22HARL AMOV DPTR#TABLE00MOVC A@A+DPTRMOV TH0AMOV 21HAMOV A22HRL AINC AMOVC A@A+DPTRMOV TL0AMOV 20HASETB TR0SETB TR1W1: LCALL DELAY30INC 40HLCALL KS ;------有键跳出JNZ STOPLJMP NEXT20;-----------------------------------------------------------STOP: CLR TR0CLR TR1 LJMP __IN0;----------------------------------------------------------TTM12: LCALL K2 MOV A37HCJNE A#0EHTTM13CLR TR1 LCALL DELAY1TTM120:LCALL KSLCALL DELAY1JZ TTM120 LCALL K2 MOV A37HCJNE A#0EHTTM120SETB TR1 LJMP NEXT20TTM13: CJNEA#0CHTTM14MOV A52HINC AMOV 52HAMOV A53HINC AMOV 53HAMOV A36HINC AMOV 37HALJMP TTM2TTM14:CJNEA#0DHTTM2MOV A52HDEC AMOV 52HAMOV A53HDEC AMOV 53HAMOV A36HDEC AMOV 37HA;------------------------------------------------------ TTM2:RET;***************************************************;定时器中断子程序0;***************************************************TT0: PUSH ACCPUSH PSWMOV TL020HMOV TH021HCPL P
3.7POP PSWPOP ACCRETI;***************************************************;定时器中断子程序1;***************************************************T1INT:MOV TH1 #3cH MOV TL1 #0b0H DJNZ L50MSX4 MOV L50MS#20 ;****************---每秒种时钟刷新秒显示一次SECSET:MOV ASEC MOV B#10 DIV AB ADD A#30H MOV P0#0__H ;显示秒十位 CALL ENABLE CALL WRITE2 MOV AB ADD A#30H MOV P0#0CFH ;显示秒个位 CALL ENABLE CALL WRITE2 MOV ASEC INC A MOV SECA XRL A#60X4: JNZ OUTMINSET: MOV SEC#00H ;*************************************每分钟刷新分显示一次 MOV AMIN INC A MOV MINA MOV B#10 DIV AB ADD A#30H MOV P0#0CBH ;显示分十位 CALL ENABLE CALL WRITE2 MOV AB ADD A#30H MOV P0#0CCH ;显示分个位 CALL ENABLE CALL WRITE2 MOV AMIN MOV B#3 MUL AB MOV B#100 DIV AB MOV R2A MOV A#10 XCH AB DIV AB MOV AMIN XRL A#60 JNZ OUTHOUSET: MOV MIN#00H ;**************************************每小时刷新小时显示一次 MOV AHOU MOV B#10 DIV AB ADD A#30H ;将BCD吗转化为ASIIC码 MOV P0#0C8H ;显示小时十位 CALL ENABLE CALL WRITE2 MOV AB ADD A#30H MOV P0#0C9H ;显示小时个位 CALL ENABLE CALL WRITE2 MOV AHOU INC A MOV HOUA XRL A#10 JNZ OUT SJMP OVERFLOWOUT: RETI;*************************************溢出处理OVERFLOW: MOV L50MS#20 MOV L1MS#00H MOV L250MS#00H MOV SEC#00H MOV MIN#00H MOV HOU#00H RETI;--------------------------------------------------------------------DELAY30: MOV R7#2W2: MOV R4#125W3: MOV R3#248DJNZ R3$DJNZ R4W3DJNZ R7W2DJNZ R1DELAY30RET;--------------------------------------------------------------------TABLE00:DW64580646846477764820DW64__8649686503064260DW6440064524650586383564021;--------------------------------------------------------------------;第一首《精忠报国》;--------------------------------------------------------------------TABLE10: DB66H52H36H22H12H12H22H32H98H84H82H92H14H12H22HDB32H52H22H42H38H66H52H36H22H12H22H22H32H98HDB24H22H32H54H52H32H92H12H92H82H98H66H52H36H22HDB12H12H22H32H98H84H82H92H14H12H22H32H52H22H42H38HDB66H52H36H22H12H22H22H32H98H24H22H32H54H52H32HDB22H12H92H82H98H14H24H34H44H64H0B4H64H32H52HDB62H0B2H62H52H38H24H22H32H54H52H62H52H32H32H22H38HDB64H0B4H64H32H52H62H0B2H62H52H38H22H22H22H32H52H52HDB52H62H7FH74H04H58H6FHDB00;--------------------------------------------------------------------;第二首《月亮代表我的心》;--------------------------------------------------------------------TABLE20:DB02H82HDB16H32H54H02H52HDB0A6H32H54H02H52HDB64H74H0B6H64HDB52H5CH32H22HDB16H12H14H32H22HDB16H12H14H22H32HDB26H12H94H22H32HDB2CHDB32H52HDB36H22H14H54HDB0ACH92H0A2HDB96H0A2H96H82HDB3CH54HDB36H22H14H54HDB0ACH92H0A2HDB16H12H14H22H32HDB2CH02H82HDB16H32H56H12HDB0A6H32H56H52HDB66H72H0B6H62HDB62H52H58H32H22HDB16H12H14H32H22HDB16H12H14H22H32HDB26H92H0A4H12H22HDB1CHDB00;-------------------------------------------------------------------;第三首《看我七十二变》;-------------------------------------------------------------------TABLE30:DB0d4H84H94H82H92HDB12H22H82H92H02H92H82H0d2HDB82H92H14H84H02H0d1H0d1HDB0c2H0d2H84H0d2H0d2H82H82HDB84H82H82H94H82H0d2HDB82H82H82H92H02H82H82H0d2HDB0c4H84H0d4H92H0d2HDB82H0d2H82H92H98HDB04H94H88HDB04H94H88HDB04H94H88HDB04H94H88H04HDB32H32H22H12H02H92H12H92HDB32H32H22H12H02H92H12H92HDB32H32H22H12H02H92H12H22HDB54H44H34H12H22HDB34H22H12H02H92H12H92HDB32H32H22H12H02H92H12H92HDB32H32H22H12H02H92H12H22HDB54H44H32H22H12H92HDB00 ;--------------------------------------------------------------------;第四首《同一首歌》;--------------------------------------------------------------------TABLE40:DB88h14h24h36H42H34H14H28H14H94HDB1fH88H14H24H34H32H42H54H14HDB46H32H54H22H32H32H22H2CH38H54H74HDB76H62H68H54H52H62H74H62H52H3fHDB46H42H54H64H54H42H32H28H0a4H0a2HDB92H84H94H1fH0b8H68H46H52H68HDB74H72H72H74H62H52H3fH0b8H68HDB46H52H68H64H62H62H64H42H32H2fHDB58H14H24H36H42H34H12H12H26H22H24H22H12HDB94H9cH0a8H0a6H92H84H64H54H22H22H46H42H44H32H22H5fHDB00;--------------------------------------------------------------------;第五首《大海》;--------------------------------------------------------------------TABLE50:DB82H92H12H14H12H14H92H82H12H14H22H14H92H12H22H24HDB22H24H12H92H22H24H32H24H32H52H62H54H52H64H52H32HDB22H32H22H12H94H82H92H12H14H12H14H94H1cHDB82H92H12H14H12H14H92H82H12H14H22H14H92H12H22H24HDB22H24H12H92H22H24H32H24H32H52H62H54H52H64H52H32HDB22H32H22H12H94H82H92H12H14H12H14H22H12H1cH32H52HDB62H64H62H64H0b2H62H52H54H62H54H32H22HDB12H14H12H14H24H3cH32H22H12H14H12H14H0b2H62H52H54H62H54H32H52HDB66H0b2H0b4H62H52H5cH32H52H62H64H62H64H0b2H62H52H54HDB62H54H32H22H12H14H12H14H54H3cH32H22H12H14H12H14H22H32HDB52H54H32H54H32H52H6fH04H02H92H32H24H12H1fHDB00;--------------------------------------------------------------------;第六首《两只蝴蝶》;--------------------------------------------------------------------TABLE60:DB32H22H38H02H22H32H22H18H04H92H12H24H22H32H22H12H92H92H88H04H32H22HDB38H02H22H32H22H18H04H92H12H24H22H32H22H21H92H12H28H04H32H22HDB38H02H22H32H22H18H04H92H12H24H22H32H22H12H92H91H11H88HDB04H32H52H58H02H52H62H52H38H04H22H22H24H22H32H22H12H92H92HDB12H12H1cH08H02H52H52H62H0b2H72H72H62H32H22H22H22HDB38H02H32H32H52H64H64H02H92H32H22H28H04H32H52H52H32H54H02H0b4H72HDB62H72H34H02H62H62H72H62H52H32H22H02H32H22H32HDB58H02H52H52H62H0b2H72H72H62H32H22H22H22HDB38H02H32H32H52H64H64H02H92H32H22H28H04H32H52H52H32H54H02H0b4H72HDB62H72H34H02H62H62H72H62H52H32H22H02H84H92H1cHDB00;--------------------------------------------------------------------;第七首世上只有妈妈好;--------------------------------------------------------------------TABLE70:DB66H52H34H54H0B4H62H52H68H34H52H62H54H34H12H92H52H32H28HDB26H32H54H52H62H34H24H18H56H32H22H12H92H12H8FHDB66H52H34H54H0B4H62H52H68H34H52H62H54H34H12H92H52H32H28HDB26H32H54H52H62H34H24H18H56H32H22H12H92H12H8FHDB66H52H34H54H0B4H62H52H68H34H52H62H54H34H12H92H52H32H28HDB26H32H54H52H62H34H24H18H56H32H22H12H92H12H8FHDB00。