




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
0信息与电气工程学院单片机应用系统(三级项目)设计说明书(2014/2015 学年第二学期)题 目 : _专业班级 : 学生学号 : 学生姓名 : 指导教师 : 吴开兴、刘会军、 马永强、马小进 设计周数 : 2 周 设计成绩 : 2015 年 6 月 26 日11、项目设计目的 21.1 音乐播发器技术要求 21.2 项目设计目的及意义 22、项目设计正文 22.1 需求分析 22.2 器件介绍 32.2.1 LM1602L 液晶显示频 32.2.2 51 单片机介绍 .82.2.3 LM386 简介 102.3 设计原理说明 112.4 单元电路设计 122.4.1 按键矩阵 .122.4.2 LM386 音频功率放大器 132.4.3 LM016 液晶屏 132.4.4 晶振及复位电路 .142.5 系统调试 143、项目设计和总结 154、参考文献 1601、项目设计目的1.1 音乐播发器技术要求(1)利用 I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。(2)采用 LCD 或数码管显示信息。(3)开机时有英文欢迎提示字符,播放时显示歌曲序号。(4)可通过功能键选择乐曲,暂停,播放。(5)选做内容:编写上位机程序,通过串口发送指令来控制音乐的播放。1.2 项目设计目的及意义(1)通过本次设计巩固这学期所学单片机的知识;(2)掌握利用汇编语言的运用;(3)熟习利用 ISIS 7 Professional 软件的运用;(4)巩固、深化和扩展学生的理论知识与初步的专业技能。(5)为今后从事电子技术领域的工程设计打好基础基本要求。2、项目设计正文2.1 需求分析随着音乐播放器的日益人性化,听音乐已经成为人们日常生活中不可或缺的一部分。由于市场上的音乐播放器品牌繁多,满足着各层次的消费者的需求。根据调差,可知外形新颖、小巧轻便灵活的音乐播放器是很受年轻人的青睐和欢迎,基于此,设计音乐播放器重点还是在于美观的外形和其吸引人的性能。12.2 器件介绍2.2.1 LM1602L 液晶显示频(1)液晶显示原理:液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA 移动通信工具等众多领域。 液晶显示器的分类:液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static) 、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。液晶显示器各种图形的显示原理: 线段的显示:点阵图形式液晶由 MN 个显示单元组成,假设 LCD 显示屏有 64 行,每行有 128 列,每 8 列对应 1 字节的 8 位,即每行由 16 字节,共 168=128 个点组成,屏上6416 个显示单元与显示 RAM 区 1024 字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由 RAM 区的 000H00FH 的 16 字节的内容决定,当(000H)=FFH 时,则屏幕的左上角显示一条短亮线,长度为 8 个点;当(3FFH)=FFH 时,则屏幕的右下角显示一条短亮线;当(000H)=FFH, (001H)=00H, (002H)=00H,(00EH)=00H, (00FH)=00H 时,则在屏幕的顶部显示一条由 8 段亮线和 8 条暗线组成的虚线。这就是 LCD 显示的基本原理。 字符的显示:用 LCD 显示一个字符时比较复杂,因为一个字符由 68 或 88 点阵组成,既要找到和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节,还要使每字节的不同位为“1” ,其它的为“0” ,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。 汉字的显示:汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件) ,每个汉字占 32B,分左右两半,各占 16B,左边为 1、3、5右边为 2、4、6根据在 LCD 上开始显示的行列号及2每行的列数可找出显示 RAM 对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加 1,送第二个字节,换行按列对齐,送第三个字节直到 32B 显示完就可以 LCD上得到一个完整汉字。1602LCD 的基本参数及引脚功能 1602LCD 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图所示:图 2-1 1602LCD 尺寸图1602LCD 主要技术参数:显示容量:162 个字符;芯片工作电压:4.55.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V;字符尺寸:2.954.35(WH)mm,其引脚功能说明如下表 2-1 所示:表 2-1 1602LCD 引脚接口说明编号 符号 引脚说明 编号 符号 引脚说明1 VSS 接地 9 D2 数据2 VDD 电源正极 10 D3 数据3 VL 液晶显示偏压 11 D4 数据4 RS 数据/命令选择 12 D5 数据5 R/W 读/写选择 13 D6 数据6 E 使能信号 14 D7 数据7 D0 数据 15 BLA 背光源正极8 D1 数据 16 BLK 背光源负极第 1 脚:VSS 为地电源。 第 2 脚:VDD 接 5V 正电源。 第 3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和3R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 714 脚:D0D7 为 8 位双向数据线。 第 15 脚:背光源正极。 第 16 脚:背光源负极。(5)指令说明及时序1602 液晶显示模块内部的控制器共有 11 条控制指令,如下表 2-2 所示:表 2-2 控制命令表序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 功能1 复位显示 器 0 0 0 0 0 0 0 0 0 1 清屏,光标归位2 光标返回 0 0 0 0 0 0 0 0 0 *设置地址计数器清零,DDRAM 数据不变,光标移到左上角3 字符进入 模式 0 0 0 0 0 0 0 1 I/D S 设置字符进入时的屏幕移位方式4 显示开/关 控制 0 0 0 0 0 0 1 D C B设置显示开关,光标开关,闪烁开关5 光标或字 符移位 0 0 0 0 0 1 S/C R/L * * 设置字符与光标 移动6 功能设置 0 0 0 0 1 DL N F * * 设置,显示 行数,字体7设置字符发生存储器地址0 0 0 1 字符发生存储器地址设置位的CGRAM 地址以读写数据48设置数据存储器地址0 0 1 显示数据存储器地址设置位的DDRAM 地址以读写数据9 读忙标志 或地址 0 0 BF 计数器地址 读忙标志及地址 计数器10写数据到CGRAM 或DDRAM1 0 写入一字节数据,需要先设置 RAM 地址向 CGRAM/DDRAM 写入一字节的数据11从 CGRAM或 DDRAM读数据1 1 读取入一字节数据,需要先设置 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指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平时显示 5x10 的点阵字符。 指令 7:字符发生器 RAM 地址设置。指令 8:DDRAM 地址设置。 指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令 10:写数据。指令 11:读数据。 与 HD44780 相兼容的芯片时序表如下表 2-3:表 2-3 时序表(6)1602LCD 标准子库表如下图 2-2 所示:读状态 输入 RS=L,R/W=H,E=H 输出 D0D7=状态字写指令 输入 RS=L,R/W=L,D0D7=指令码,E=高脉冲 输出 无读数据 输入 RS=H,R/W=H,E=H 输出 D0D7=数据写数据 输入 RS=H,R/W=L,D0D7=数据,E=高脉冲 输出 无6图 2-2 1602LCD 标准子库表2.2.2 51 单片机介绍(1)51 单片机采用 40 个引脚的双列直插封装,如下图 2-3 所示:图 2-3 双列直插封装方式的引脚 40 个引脚按其功能可分为如下 3 类:电源及时钟引脚Vcc、Vss;XTAL1、XTAL2;控制引脚 、ALE/ 、 /Vpp、RST;PSENROGEAI/O 口引脚P0、P1、P2、P3,为 4 个 8 位 I/O 口的外部引脚;(2)电源及时钟引脚电源引脚7Vcc 接+5V 电源;Vss 接数字地。时钟引脚XTAL1:片内振荡器反相放大器和时钟发生器电路的输入端。当使用片内振荡器时,该引脚连接外部石英晶体和微调电容;当采用外界时钟源时,该引脚接外部时钟振荡器的信号。XTAL2:片内振荡器反相放大器的输出端。当使用片内振荡器时,引脚连接外部石英晶体和微调电容;当采用外界时钟源时,该引脚悬空。(3)控制引脚 RST:复位信号输入端,高电平有效。 /Vpp: 为该引脚的第一功能,即外部程序存储器访问允许控制端。当EA引脚接高电平时,在 PC 值不超出 0FFFH 时,单片机读片内 4KB 中的程序;当超出时,将自动转向读取片外 60KB 程序存储器空间的程序。当接低电平时,只读取外部程序存储器的内容,片内的 4KB 程序存储器不起作用。Vpp 为该引脚的第二功能,即在对片内 Flash 进行编程时,Vpp 引脚接入变成电压。ALE/ :ALE 为 CPU 访问外部程序存储器或外部数据存储器提供一个地址锁存PROG信号,将低 8 位的地址锁存在片外的地址锁存器中。为该引脚的第二功能,即在对片内 Flash 存储器进行编程时,此引脚作为编程秒冲输入端。 :片外程序存储器的读选通信号,低电平有效。PSEN(4)并行 I/O 口引脚P0 口:8 位,漏极开路的双向 I/O 口当扩张外部存储器及 I/O 接口芯片时,P0 口作为地址总线(低 8 位)及数据总线的分时复用端口。P1 口:8 位,准双向 I/O 口,具有内部的上拉电阻。P1 口是专为用户使用的准双向 I/O 口。当作为通用的 I/O 口输入时,应先向端口锁存器写入 1。P1 口可驱动 4 个 LS 型 TTL 负载。P2 口:8 位,准双向 I/O 口,具有内部的上拉电阻。当扩张外部存储器及 I/O 口时,P2 口作为高 8 位地址总线用,输出高 8 位地址。P2 口8作为通用的 I/O 输入时,应先向端口输出锁存器写入 1。P2 口可驱动 4 个 LS 型 TTL 负载P3 口:8 位,准双向 I/O 口,具有内部的上拉电阻。当 P3 口作为通用的 I/O 输入时,应先向端口输出锁存器写入 1。P2 口可驱动 4 个 LS型 TTL 负载。P3 口还可提供第二功能,如下表 2-4 所示:表 2-4 P3 口的第二个功能定义引脚 第二功能 说明P3.0 RXD 串行数据输入口P3.1 TXD 串行数据输出口P3.2 0INT外部中断 0 输入P3.3 1外部中断 1 输入P3.4 T0 定时器 0 外部计数输入P3.5 T1 定时器 1 外部计数输入P3.6 WR外部数据存储器写选通输出P3.7 D外部数据存储器读选通输出2.2.3 LM386 简介LM386 是美国国家半导体公司生产的音频功率放大 器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为 20。但在 1 脚和 8 脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考 ,同时输出端被自动偏置到电源电压的一半,在 6V 电源电压下,它的静态功耗仅为 24MV,LM386 的封装形式有塑封 8 引线双列直插式和贴片式,如图 1 所示,典型应用电路如图 2 所示。图 2-49图 2-52.3 设计原理说明当键盘有键按下时,判断键值,启动计数器 T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器 T1,显示乐曲播放的时间,并驱动 LCD,显示歌曲号及播放时间。也可在 LED 显示歌曲号。(1)硬件电路中用 P1.0P1.7 控制按键,其中 P1.0P1.3 扫描行,P1.4P1.7 扫描列。 (2)用 P0.0P0.7,P2.0P2.7 控制 LED,其中 P0.0P0.7 控制七段码 a,b,c,d,e,f,g,用P2.0P2.7 为数码管位选信号。 (3)用,P2.0P2.2 作为 LCD 的 RS,R/W,E 的控制信号。用 P0.0P0.7 作为 LCD 的 D0D7的控制信号。 (4)用 P3.7 口控制扬声器(J2,J4 断开,J3 短接) 。 (5)电路为 12MHZ 晶振频率工作,起振电路中 C1,C2 均为 30pf。系统总体设计图如下图所示:102.4 单元电路设计2.4.1 按键矩阵本设计采用 3*4 矩阵非编码按键,由 4*4 矩阵修改而成,这样不但可以节省程序扫描,也可以节省端口的占用率,从而达到简洁高效的效果。键盘为各自独立按键,只简单地提供按键开关。对按键矩阵的扫描由 P1.0P1.3 口共同完成。图 2-6112.4.2 LM386 音频功率放大器LM386 是美国国家半导体公司生产的音频功率放大 器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为 20。但在 1 脚和 8 脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考 ,同时输出端被自动偏置到电源电压的一半,在 6V 电源电压下,它的静态功耗仅为 24mW,使得 LM386 特别适用于电池供电的场合。图 2-72.4.3 LM016 液晶屏LM016 在电路中主要用于显示当前乐曲,以及乐曲序号,欢迎界面等功能12图 2-82.4.4 晶振及复位电路晶振电路的作用是为系统提供基本的时钟信号,通常一个系统公用一个晶振,便于各部分保持同步。复位电路,是一种用来使电路恢复到起始状态的电路设备,它的操作原理与计算机有着异曲同工之妙,只是启动原理和手段有所不同。为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。图 2-92.5 系统调试将编写的*.asm 文件在 Keil uVision4 中生成*.hex 文件,将生成的*.hex 文件导入13Proteus 中 AT89C51 芯片中,运行,观察液晶屏显示结果和发声器的发音情况。Proteus 仿真在调试过程中程序运行正常。图 2-103、项目设计和总结在设计过程中,程序设计初步完成后,编译出现了很多错误,经过一步步跟踪检查程序,修改了部分后,再进行编译,还是存在错误,再次进行修改,一直出现同样的错误,最后在老师和同学的帮助下,程序终于编译成功了。开始进入仿真调试,仿真出来的效果是部分功能没有实现,经检查是仿真电路有点差错,仿真电路图完善后,仿真调试实现了所要求的功能。将软件调试成功的程序下载到硬件实验板上调试功能,刚开始按键识别不了,检查硬件电路,发现有电路出现虚焊,重新焊硬件电路,硬件实验板上也能实现功能。由于条件有限,本设计的功能较为简单。通过这次设计,我们还是学到很多东西。虽然在调试过程中,从大问题到小问题,但是期间能力都得到考验和提升。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不够好。这次课程设计通过自己的努力,同学的帮助,还有老师的辛勤指导下,最终顺利完成了。144、参考文献1 彭伟.单片机 C 语言程序设计实训 100 例.电子工业出版社.2009 年2 吴运昌模拟电子线路基础广州:华南理工大学出版社,2004 年3 阎石数字电子技术基础北京:高等教育出版社,1997 年4 李建忠单片机原理及应用西安:西安电子科技大学,2002 年5 韩志军等.单片机应用系统设计M.机械工业出版社,2004项目设计评 语项目设计成 绩指导教师(签字) 年 月 日15附录:RS BIT P2.0 ;定义液晶显示端口标号RW BIT P2.1E BIT P2.2;*L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H;*org 0000hljmp mainORG 000BHLJMP TT0ORG 001BHLJMP T1INTorg 1000hmain: ;-;液晶初始化MOV SP,#70H MOV P0,#01H ;清屏CALL ENABLEMOV P0,#38H ;8 位,2 行显示lCALL ENABLEMOV P0,#0FH ;屏显 on,光标 on,闪烁 onlCALL ENABLEMOV P0,#06H ;计数地址加 1,显示幕 onlCALL ENABLE;-内存初始化lcall initil ;-key1: lcall keylcall modd ljmp key1;-键盘扫描key: nopnoplcall ksjnz k1 ;有按键转到 K1lcall kaiji16lcall SOPxn: ljmp keyk1: lcall moddlcall moddlcall ksjnz k2ljmp keyk2: mov R2,#0feh ;读键盘mov R4,#00hk3: mov A,R2mov P1,Amov A,P1JB ACC.4,L1 ;为 1 跳转,第一行无按键mov a,#00hljmp lkL1: jb acc.5,L2mov a,#04hljmp lkL2: jb acc.6,L3mov a,#08hljmp lkL3: jb acc.7,next1mov a,#0ch;-lk: add a,R4push acck4: lcall delay1 ;若同时有其他按键,则等待lcall ksjnz k4;-mov r3,#07h clr amov r0,#30hmov r1,#31hmm1: mov a,r1mov r0,ainc r0inc r1djnz r3,mm1pop accmov r0,a RET;-next1: inc R4 ;-列扫描17mov a,R2JNB acc.3,n2ljmp n1n2: ljmp keyn1: rl amov R2,aljmp k3;-ks: mov a,#0f0h ;判断 P1 口mov P1,anopnopmov a,P1cpl aanl a,#0f0hRET;-DELAY1:SETB RS0dl: mov R5,#0ahdl2: mov R6,#63dl3: nop nopdjnz R6,dl3djnz R5,dl2 CLR RS0 RET;- ;30H-37H 初值为零;-initil: mov r3,#08hmov r0,#30hm1: mov r0,#00hinc r0djnz r3,m1 RET;-;显示 ;-modd: MOV P0,#8EHCALL ENABLE mov A,37H18mov DPTR,#TABLE3 MOVC A,A+DPTRCALL WRITE2 RET;-;开机提示字;-kaiji: mov a,37hcjne a,#0fh,DFFMOV P0,#80H ;设光标地址 CALL ENABLEMOV DPTR,#TABLE1;写数据CALL WRITE1 DFF: RET;-;按键值播放歌曲;-SOP: mov a,37hcjne a,#01h,A11LCALL MODDMOV 52H,#HIGH TABLE10MOV 53H,#LOW TABLE10LCALL INITILE2lcall MAIN0A11: CJNE A,#02H,A22LCALL MODDMOV 52H,#HIGH TABLE20MOV 53H,#LOW TABLE20 LCALL INITILE2 lcall MAIN0A22: CJNE A,#03H,A33LCALL MODDMOV 52H,#HIGH TABLE30MOV 53H,#LOW TABLE30 LCALL INITILE2 lcall MAIN0 A33: CJNE A,#04H,A44LCALL MODDMOV 52H,#HIGH TABLE40MOV 53H,#LOW TABLE40 LCALL INITILE2 lcall MAIN0A44: CJNE A,#05H,A55LCALL MODD19MOV 52H,#HIGH TABLE50MOV 53H,#LOW TABLE50 LCALL INITILE2 lcall MAIN0A55: CJNE A,#06H,A66LCALL MODDMOV 52H,#HIGH TABLE60MOV 53H,#LOW TABLE60 LCALL INITILE2 lcall MAIN0 A66: CJNE A,#07H,A77LCALL MODDMOV 52H,#HIGH TABLE70MOV 53H,#LOW TABLE70 LCALL INITILE2 lcall MAIN0 A77: CJNE A,#08H,A88LCALL MODDMOV 52H,#HIGH TABLE80MOV 53H,#LOW TABLE80 LCALL INITILE2 lcall MAIN0A88: CJNE A,#09H,A99LCALL MODDMOV 52H,#HIGH TABLE90MOV 53H,#LOW TABLE90 LCALL INITILE2 lcall MAIN0 A99: CJNE A,#0AH,AAALCALL MODDMOV 52H,#HIGH TABLE100MOV 53H,#LOW TABLE100 LCALL INITILE2 lcall MAIN0 AAA: RET ;*INITILE2:MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00HMOV MIN,#00HMOV HOU,#00HMOV A,HOU20MOV B,#10DIV ABADD A,#30H ;将 BCD 吗转化为 ASIIC 码MOV P0,#0C8H ;显示小时十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;显示小时个位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0DH ;显示冒号CALL ENABLECALL WRITE2MOV A,MINMOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;显示分十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;显示分个位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0CDH ;显示冒号CALL ENABLECALL WRITE2MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;显示秒十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;显示秒个位CALL ENABLECALL WRITE221MOV P0,#0C0H ;设光标地址 CALL ENABLEMOV DPTR,#TABLE2;写数据CALL WRITE1 RET;*写指令ENABLE: CLR RSCLR RWCLR ELCALL DELAYSETB ERET;*写数据WRITE1: MOV R1,#00HA1: MOV A,R1MOVC A,A+DPTRCALL WRITE2INC R1CJNE A,#0FEH,A1 ;未到字符串末尾继续RETWRITE2: MOV P0,ASETB RSCLR RWCLR ECALL DELAYSETB ERET;*DELAY: MOV R4,#05D1: MOV R5,#0FFHDJNZ R5,$DJNZ R4,D1RET ;-TAB: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0a1h,86h,8ehTAB1: db 89h,86h,0c7h,0c7h,0c0hTAB2: db 0c6h,88h,0c0hTABLE1: DB WELCOM HERE,0FEHTABLE2: DB DFF WB ,0FEHTABLE4: DB CAU,0FEHTABLE3: DB 30H,31H,32H,33h 22DB 34H,35H,36H,37HDB 38h,39H,41H,42HDB 43H,44H,45H,46H ;-;播放歌曲程序;-MAIN0: MOV TMOD,#11HMOV IE,#8aH ;MOV TH1, #3cH;MOV TL1, #0b0H lcall ksjnz TTM12 MOV 40H,#00H;-NEXT20: MOV A,40HMOV DPH,52HMOV DPL,53HMOVC A,A+DPTRMOV R2,AJZ STOPANL A,#0FHMOV R1,AMOV A,R2SWAP AANL A,#0FHJNZ SINGCLR TR0JMP W1;-SING: DEC AMOV 22H,ARL AMOV DPTR,#TABLE00MOVC A,A+DPTRMOV TH0,AMOV 21H,AMOV A,22HRL AINC AMOVC A,A+DPTRMOV TL0,AMOV 20H,ASETB TR0SETB TR123W1: LCALL DELAY30INC 40HLCALL KS ;-有键跳出JNZ STOPLJMP NEXT20;-STOP: CLR TR0CLR TR1LJMP MAIN0 ;-TTM12: LCALL K2MOV A,37HCJNE A,#0EH,TTM13CLR TR1LCALL DELAY1TTM120: LCALL KSLCALL DELAY1JZ TTM120LCALL K2MOV A,37HCJNE A,#0EH,TTM120SETB TR1LJMP NEXT20TTM13: CJNE A,#0CH,TTM14MOV A,52HINC AMOV 52H,AMOV A,53HINC AMOV 53H,AMOV A,36HINC AMOV 37H,ALJMP TTM2TTM14: CJNE A,#0DH,TTM2MOV A,52HDEC AMOV 52H,AMOV A,53HDEC AMOV 53H,AMOV A,36HDEC AMOV 37H,A24;- TTM2: RET;*;定时器中断子程序 0;*TT0: PUSH ACCPUSH PSWMOV TL0,20HMOV TH0,21HCPL P3.7POP PSWPOP ACCRETI;*;定时器中断子程序 1;*T1INT: MOV TH1, #3cHMOV TL1, #0b0HDJNZ L50MS,X4MOV L50MS,#20;*-每秒种时钟刷新秒显示一次SECSET:MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;显示秒十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;显示秒个位CALL ENABLECALL WRITE2MOV A,SECINC AMOV SEC,AXRL A,#60X4: JNZ OUT25MINSET: MOV SEC,#00H ;*每分钟刷新分显示一次MOV A,MININC AMOV MIN,A MOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;显示分十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;显示分个位CALL ENABLECALL WRITE2MOV A,MIN MOV B,#3MUL ABMOV B,#100DIV ABMOV R2,AMOV A,#10XCH A,BDIV ABMOV A,MINXRL A,#60JNZ OUTHOUSET:MOV MIN,#00H ;*每小时刷新小时显示一次 MOV A,HOUMOV B,#10DIV ABADD A,#30H ;将 BCD 吗转化为 ASIIC 码MOV P0,#0C8H ;显示小时十位CALL ENABLECALL WRITE2MOV A,BADD A,#30H26MOV P0,#0C9H ;显示小时个位CALL ENABLECALL WRITE2MOV A,HOUINC AMOV HOU,AXRL A,#10JNZ OUTSJMP OVERFLOWOUT: RETI;*溢出处理OVERFLOW:MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国金属闪光型银浆行业投资前景及策略咨询研究报告
- 2025至2031年中国缩呢剂行业投资前景及策略咨询研究报告
- 2025至2031年中国三层PET保护膜行业投资前景及策略咨询研究报告
- 校园安全区教育
- 健康素养知识考试题库
- 2024年度宁夏回族自治区护师类之主管护师全真模拟考试试卷B卷含答案
- 专题07 我们邻近的地区和国家(第1课 日本、东南亚)(必刷真题)-2023年中考地理一轮大单元复习过过过(全国)(解析版)
- 2025年江西南昌轨道交通文化发展有限公司招聘笔试参考题库含答案解析
- 2025年泸州翰飞航天科技发展有限责任公司招聘笔试参考题库含答案解析
- 2025年云南永德县林产业开发有限责任公司招聘笔试参考题库含答案解析
- 2024年新人教版六年级数学上册《教材练习2练习二 附答案》教学课件
- 【核心素养目标】六年级科学下册(苏教版)4.13 洁净的水域(教案)
- 北师大版心理健康一年级下册《珍爱生命》教案
- 中考英语688高频词大纲词频表
- 黑龙江省齐齐哈尔市2024年中考数学试卷【附真题答案】
- 2024年广东省中考生物试卷附答案
- 2024年江苏省宿迁市泗阳县中考物理一模试卷含详解
- 新生儿呛奶窒息的应急预案及处理
- 2024年全国国家版图知识竞赛题库及答案(中小学组)
- 《给教师的100条建议》读书交流会省公开课金奖全国赛课一等奖微课获奖课件
- (正式版)QBT 8015-2024 熟制松籽和仁
评论
0/150
提交评论