大工15秋《单片机原理及应用》大作业答案
单片机原理及应用(答案)

一.简答题(每题10分,共40分)1、定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
定时时间与时钟频率和定时初值有关。
2、常用的I/O接口编址有哪两种方式?它们各有什么特点?MCS-51的I/O端口编址采用的是哪种方式?解:一.独立编址方式:独立编址方式就是I/O地址空间和存储器地址空间分开编址。
独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。
但是,却需要设置一套专门的读写I/O的指令和控制信号。
二.统一编址方式:这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。
统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。
MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。
3、MCS-51的位存储区在哪里?寻址范围是多少?内部RAM的20~2FH为位寻址区域,位地址范围00~7FH;特殊功能寄存器中地址能被8整除的字节地址单元也可以位寻址,位地址范围80~FFH;位存储区共256个位。
4、8051的定时器/计数器有几个?是多少位的?有几种工作方式?其工作原理如何?答:8051有2个16位的定时器/计数器,有4种工作方式。
定时器与计数器的工作原理是相同的,8051的定时器/计数器是根据输入的脉冲进行加1计数,当计数器溢出时,将溢出标志位置1,表示计数到预定值。
二、计算机与编程(每题30分,共60分)1、试编写程序,查找在内部RAM的40H~60H单元中是否有0FFH这一数据。
若有,则将51H单元置为“00H”;若未找到,则将51H单元置为“01H”。
答:START: MOV R0,#40HMOV R2,#20HLOOP: MOV A,@R0CJNE A,#0FFH,NEXTMOV 51H,#00HLJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,#01HEXIT: RET2、下列程序段执行后,(A)=_________,(B)=_________。
《单片机原理及应用》作业及答案

1.CS-51系列单片机串行口中断标志TI和R I在执行中断程序后,能否自动清零,这样设计的意图是什么?答:不能,由于串行通信的收发电路使用一个中断源,因而,有利于单片机查询是接收中断还是发送中断。
同时有利于全双工通信。
2.写出8051单片机的复位及5个中断服务程序的入口地址。
答:(1)复位入口地址:0000H;(2)外部中断0中断服务程序入口地址为0003H;(3)定时器/计数器0中断服务程序入口地址为000BH;(4)外部中断1中断服务程序入口地址为0013H;(5)定时器/计数器1中断服务程序入口地址为001BH;(6)串行口中断服务程序入口地址为0023H。
3.简述MCS-51单片机的工作寄存器的分布结构(包括:几个区、如何选择、每个区几个寄存器、如何表示)?答:(1)四个通用寄存器区;(2)通过PSW的RS1、RS0选择:00--0区、01—1区、10—2区、11—3区;(3)每个区有8个工作寄存器R0—R7;4.MCS-51单片机的P0口作为一般的I/O口使用时应注意什么?答:应注意:①由于P0口的输出级是漏极开路的开漏电路,所以作为一般的I/O口使用时需接外部上拉电阻;②P0口的输出级的输出驱动能力,可以驱动8个LS的TTL电路,使用必须确认是否能驱动的外部电路,否则应加驱动电路;③由于P0口为准双向口,在读引脚时,应先把口置1。
5.画出MCS-51单片机的三总线图(控制总线应包括三条)并注明几条数据线、几条地址线、各个控制线的意义。
答:(1)(2)8条数据线、16条地址线(3)/RD:对外部RAM及I/O口的读允许;/WR:对外部RAM及I/O口的写允许;/PSEN:对外部ROM的读允许;6.MCS-51系列单片机内部有哪些主要逻辑部件组成?(书)答:CPU、RAM、程序存储器、定时器、I/O接口、中断系统、串行接口等。
7.简述P3口的特殊专用功能(第2功能)。
答:P3.0----串行通信收;P3.1-----串行通信发;P3.2-----外部中断0;P3.3-----外部中断1;P3.4----- T0的计数输入;P3.5----- T1的计数输入;P3.6-----外部数据区写有效;P3.7-----外部数据区读有效。
单片机原理及应用作业答案(供参考)

作业答案0-1绪论1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM 和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。
2.什么叫单片机?其主要特点有哪些?解:将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。
单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。
第1章MCS-51单片机的结构与原理15. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?解:MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。
每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。
通常把4个端口称为P0~P3。
在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。
在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
MCS-51系列单片机数据总线为8位,地址总线为18位,对外可寻址空间为64KB。
25. 开机复位后,CPU使用的是哪组工作寄存器(R0-R n)?它们的地址是什么?CPU如何确定和改变当前工作寄存器组(R0-R n)?解:开机复位后,CPU使用的是第0组工作寄存器。
它们的地址是00H-07H。
CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。
27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。
大工15秋《单片机原理及应用》在线作业1满分答案

大工15秋《单片机原理及应用》在线作业1满分答案
大工15秋《单片机原理及应用》在线作业1答案大工15秋《单片机原理及应用》在线作业1
一、单选题(共 10 道试题,共 50 分。
)
1. 单片机也称为()。
A. 微处理器
B. 存储器
C. 微控制器
D. 可编程控制器
——选择:C
2. 关于系统定时器(SysTick)说法错误的是()。
A. 24位加计数器
B. 当系统处于睡眠状态时,系统定时器仍然在工作
C. 可以用于提供精确的短延时
D. 主要用于操作系统的时钟滴答输出
——选择:A
3. Bit-band区域的存储器以()位的方式进行访问。
A. 8
B. 16
C. 32
D. 64
——选择:C
4. 关于STM32的多种低功耗模式说法错误的是()。
A. Cortex-M3控制寄存器中的SLEEPONEXIT位决定进入睡眠模式的机制
B. 执行WFI/WFE时,CPU立即进入睡眠模式
C. 如果RTC或IWDG正在运行,进入停止模式时这些外设仍然运行,不会停止
D. 在待机模式下,所有IO引脚处于高阻状态
——选择:D
5. 计数器方向控制由TIMx_CR1中的()位控制。
单片机原理及应用作业参考答案

单片机原理及应用作业参考答案1. 2 单片机的结构特点表现在哪些主要方面?答:(1)在存储器结构上,严格将程序存储器和数据存储器在空间上分开,并使用不同的寻址方式,使用两个不同的地址指针;(2)在内部有一个全双工的串行接口;(3)有一个独立进行操作的位处理器。
1. 4 通用单片机的供应状态主要取决于什么?供应状态有哪几种?用户选用单片机的供应状态的原则是什么?答:通用单片机的供应状态主要取决于片内ROM 的配置状态。
(1)片内ROM 的配置状态掩膜ROM ,适合于低成本。
大批量产品的场合(2)片内EPROM 配置状态可通过高压脉冲写入应用程序到EPROM ,适合于开发样机,小批量生产。
(3)片内无ROM 配置状态必须外扩EPROM ,价格低,使用灵活,适合于需要外接能在现场进行修改和更新程序存储器的应用场合。
2.3 单片机的EA 端有何功用?8031 的EA 端应如何处理,为什么?答:EA 端是访问外部程序存储器的控制信号:当EA 无效时,访问内部ROM ,当EA 为有效时,访问外部ROM 。
由于8031 没有内部ROM ,所以EA 端必须接低电平。
2.4 MCS -51引脚中有多少I/O 线?它们与单片机对外的地址总线、数据总线和控制总线有什么关系?地址总线和数据总线各是几位?答:MCS-51 引脚中有32根I/O 线,一般由P0口提供单片机对外的数据总线,同时作为分时复用的地址总线的低8位,由P2口作为地址总线的高8位,控制总线由第二功能的状态下的P3口以及RST、EA 、ALE 和PSEN 提供。
2.5 8051 单片机的内部数据存储器可以分为哪几个不同的区域?各有什么特点?答:数据存储器主要分为两个区域:00H~7FH 是真正的RAM 区,80H~FFH 专门用作特殊功能寄存器的区域。
其中00H~7FH可分为三个区域:00H~1FH为四组工作寄存器;20H~2FH为128位位寻址区,30H ~7FH 为一般RAM 区。
单片机原理与应用(习题答案).

《单片机原理与应用》课后习题参考答案第1章1.(1)15 (2)0.0859375 (3)14.68752.(1)10000100 (2)1011101001111 (3)100110100. 10113. 原码:正数的符号位用0表示,负数符号位用1表示,而数值位保持原样的机器码称为原码。
反码:在计算机中,对于正数,其反码的符号位为“0”,数值部分保持不变;对于负数,其反码除了在符号位上表示“1”外,数值部分的各位都取与它相反的数码,即“0”变“1”、“1”变“0”。
也就是说:正数的反码与它的原码相同;负数的反码由其绝对值按位求反后得到。
补码:在计算机中,对于正数,其补码的符号位为“0”,数值部分保持不变;对于负数,其补码除了在符号位上表示“1”外,数值部分的各位都取与它相反的数码,然后在最低位加“1”。
也就是说:正数的补码与它的原码相同;负数的补码由其对应的绝对值按位求反后加1得到。
4.(1)原码:000101110 反码:000101110 补码:000101110(2)原码:10.10101101 反码:10.01010010 补码:10.01010011(3)原码:00.101011 反码:00.101011 补码:00.1010115.[N]原=1.1010 [N]补=1.0110 N=-0.6256.原码0.1010-0.1011 = -0.0001补码0.1010+(1.0101)=(1.1111)7. 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
微处理器是是指计算机内部对数据进行处理并对处理过程进行控制的部件,采用大规模集成电路工艺在一块或几块芯片上制成的中央处理器。
如果将构成微型计算机的各功能部件(CPU,RAM,ROM及I/O接口电路)集成在同一块大规模集成电路芯片上,一个芯片就是一台微型机,则该微型机就称为单片微型计算机。
8. MCS-51系列单片机是美国INTEL公司于1980年推出的一种8位单片机系列。
大工 《单片机原理及应用》大作业 答案

题目一:单片机电子时钟设计
准则:设计一个基于51单片机或STM单片机的电子时钟,并且能够实现时分
秒的显示和调节
撰写要求:(1)首先介绍课题背景,并进行需求分析及可行性分析,包括软硬件功
能分配、核心器件的选型等;
(2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等;
(3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件
开发流程;
(4)总结:需要说明的问题以及设计的心得体会。
答:
单片机电子时钟设计
一、引言
单片机技术是计算机科学技术的独立分支,拥有着高性价比、高集成度、体积少、强大控制功能、功耗低、高可靠性、电压低、容易生产、方便携带等优点,越来越广泛的被应用于实际生活中。
单片机全称,单片机微型计算机,从应用领域来看,单片机主要用来控制系统运行,所以又称微控制器或嵌入式控制器,单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。
二、时钟的基本原理分析
利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管。
大工15秋《单片机原理及应用》在线作业2 满分答案

大工15秋《单片机原理及应用》在线作业2一、单选题(共 10 道试题,共 50 分。
)1. 设原来内部RAM 80H单元中的内容为58H,R6中内容为F0H,则执行指令MOV 80H,R6后,80H单元内容变为()。
A. 58HB. 60HC. 80HD. F0H正确答案:D2. 按某种控制规律重复执行的程序称为()。
A. 顺序程序B. 分支程序C. 循环程序D. 子程序正确答案:C3. 设原来内部RAM 90H单元中内容为09H,P1口上数据为AAH,则执行MOV 90H,P1后,90H中的内容变为()。
A. 09HB. 90HC. AAHD. FFH正确答案:C4. 指令“MOV A,90H”采用的寻址方式是()。
A. 寄存器寻址B. 直接寻址C. 寄存器间接寻址D. 立即寻址正确答案:B5. 设原来A中内容为00H,R4中内容为11H,则执行指令XCH A,R4后,A中内容变为()。
A. 00HB. 01HC. 10HD. 11H正确答案:D6. 指令“MOV A,#50H”采用的寻址方式是()。
A. 寄存器寻址B. 直接寻址C. 寄存器间接寻址D. 立即寻址正确答案:D7. 累加器A采用的寻址方式是()。
A. 寄存器寻址B. 直接寻址C. 寄存器间接寻址D. 立即寻址正确答案:A8. MCS-51系列单片机共有()条指令。
A. 49B. 98C. 100D. 111正确答案:D9. 设原来A中的内容为C8H,R0中内容为65H,内部RAM 65H单元中内容为55H,则执行MOV A,@R0后A的内容变为()。
A. 55HB. 65HC. C8HD. 00H正确答案:A10. 若A=00H,(40H)=FFH,指令“MOV A,40H”执行后,累加器A和40H单元的内容分别为()。
A. 00H,FFHB. 00H,00HC. FFH,FFHD. FFH,00H正确答案:C大工15秋《单片机原理及应用》在线作业2二、判断题(共 10 道试题,共 50 分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络教育学院《单片机原理及应用》大作业题目:单片机电子时钟设计学习中心:奥鹏远程教育福州学习中心层次:专升本专业:电气工程及其自动化年级: 2014 年 09秋季学号:学生姓名:大工15秋《单片机原理及应用》大作业具体要求:1 作业内容从以下五个题目中任选其一作答。
2 正文格式作业正文内容统一采用宋体,字号为小四,字数在2000字以上。
3. 作业提交学生需要以附件形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业,点“上交”即可。
如下图所示。
4. 截止时间2016年3月9日。
在此之前,学生可随时提交离线作业,如需修改,可直接上传新文件,平台会自动覆盖原有文件。
5. 注意事项请同学独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计!题目一:单片机电子时钟设计准则:设计一个基于51单片机或STM单片机的电子时钟,并且能够实现时分秒的显示和调节撰写要求:(1)首先介绍课题背景,并进行需求分析及可行性分析,包括软硬件功能分配、核心器件的选型等;(2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等;(3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件开发流程;(4)总结:需要说明的问题以及设计的心得体会。
一、课题背景1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。
现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。
从而达到计时的功能,是人们日常生活不可缺少的工具。
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
二、时钟的基本原理分析利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据储存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
三、51单片机介绍及时钟设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。
运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。
首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。
这是前期准备工作。
第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。
第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。
第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。
第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。
第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。
最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!四、时钟的设计A.电路设计1. 整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示,星期(年份),小时、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。
单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。
电路的总体设计框架如下:2.模块电路主要分为:输入部分、输出部分、复位和晶振电路。
2.1 输入部分输入信号主要是各种模式选择和调整信号,由按键开关提供。
以下为输入部分样例:在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。
对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:2.2 输出部分本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。
本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:闹铃由P2.6端输出,模块如下:2.3 晶振与复位电路本实验单片机时钟用内部时钟,模块如下:复位电路为手动复位构成,模块如下:各模块拼接组合,电路总体设计图如下:B.程序设计B.1 程序总体设计本实验用汇编程序完成.程序总的流程图如下:B.2 程序主要模块B.2.1 延时模块数码管显示动态扫描时,用到延时程序,这里使用延迟1ms的程序,此程序需反复调,除数码管动态扫描外,数码管的闪烁提示,以及音乐模块也用到了延时,只是延时的长短不同罢了,在此不再赘述。
B.2.2中断服务程序本实验中,计数器T0,T1中断都有运用,其中T0中断为时钟定时所用,T1中断用于音乐播放。
T0的定时长度为0.01s,工作于方式1,计数1次,时长1us,故计数器计数10000次,进入中断,计数初值为65536-10000=55536=#0D8F0,装满定时器需要0.01s的时间,从而100次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。
包括日期显示的功能也是如此。
另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。
基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。
计数器T1工作于方式1,当调用响铃程序时,其计数功能开启,为音乐音调不同频率的方波的形成,提供延时。
其中断服务程序就是根据音调改变音乐方波输出口电平的高低,用语句 CPL实现。
中断服务程序中日历的实现较为复杂,要考虑平年,闰年,特殊的2月,每月的天数的不尽相同。
具体的逻辑判断方法为:首先,要考虑年份是不是闰年,闰年的判断方法是:将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。
只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。
其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。
日历进位判断流程图如下:本实验用8个数码管,刚好能显示年,月,日,扫描显示与时间的扫描显示类似。
年比较特殊,由两个寄存器存储,个位,十位为0时,表明年数能被100整除,若此时千位,百位组成两位数能被4整除,则年数被400整除,为闰年。
若十位,个位组成两位数能被4整除,则年数能被4整除,为闰年。
B.2.3主程序主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用相关程序。
B.2.4 显示子程序8个数码管轮流进行显示,分别显示1ms,依赖人的视觉暂留效应,给人以数码管持续高亮的错觉。
日期的显示,秒表的显示,倒计时的显示,调闹铃,调定时的显示,闪烁的显示程序与以上的的扫描相似,有的以子程序的方式出现,通过子程序调用语句ACALL调用;有点直接嵌套在相应的程序里面,顺序执行,或者用调转语句AJMP 调用。
C 程序调试及仿真本程序通过Keil单片机开发平台实现程序的编译,链接,生成HEX文件。
通过Keil和硬件仿真平台Proteus的联合,可以将设计效果仿真出来,根据效果,有目的的改变设计,优化程序。
利用Proteus仿真实验过程截图:普通时间显示模式仿真图,表示:星期一 9点10分38秒五、总结通过本次设计,我深深体会到了掌握知识的重要性,本次设计也使我熟悉了单片机的硬件特点和编程方法,并成功将学到的知识变成了实际的成果,虽然在设计过程中遇到了很多问题,例如知识的融会贯通、调试遇到的BUG等,但通过努力都一一得到了克服,从而也提高了我学习的信心,坚定了我继续深入学习的决心。
附录:延时程序:D_1MS:MOV R7,#2D_5:MOV R2,#250DJNZ R2,$DJNZ R7,D_5RET主程序:MAIN:JNB P3.0,DATETZ ;按下0键,显示日期并可对日期进行调整JNB P3.1,ZSTZ1 ;按下1键,显示时间,并可调时JNB P3.2,NLTZZ ;按下2键,进行闹铃设置JNB P3.3,DSTZ ;按下3键,进行定时设置JNB P3.4,CESHI ;闹铃测试JNB P3.6,STOPWATCHTZ ;按下6键,进入秒表方式ACALL DISP ;调用时钟显示子程序JNB P0.6,RERING ;判断是否开启闹铃重响功能RE: JNB P2.7,DSPDKQ ;判断是否开启闹铃功能,没开则去判断定时FMQPD: ;判断定时值R4,R3是否到零、闹铃时刻是否已到MOV A,HOUR;SUBB A,38H;JZ FEN ;判断小时数是否到闹铃所定时间,若到,则对分进行判断;若不到,则对定时进行判断AJMP DSPDKQFEN:MOV A,MINUTE;SUBB A,37H;JZ MIAO ;判断分是否到闹铃所定时间,若到,则对秒进行判断;若不到,则对定时进行判断AJMP DSPDKQMIAO:MOV A,SECONDSUBB A,#0JZ SHENGYIN1 ;判断秒是否到闹铃所定时间,若到,则时,分,秒都到达闹铃时刻,进入响铃子程序;若不到则判断定时AJMP DSPDKQRERING: ;闹铃重响判断程序JNB F0, RE ;标志位F0为0,不进行闹铃重响设定CPL F0MOV 3CH,#1 ;定时判断标志位赋1,定时判断功能开启JNB P0.7,M1 ;闹铃重响间隔时间选取MOV R4,#0 ;闹铃重响间隔30秒MOV R3,#30AJMP MAINM1: ;闹铃重响间隔60秒MOV R4,#1MOV R3,#0AJMP MAINDSPDKQ: ;判断是否应该进行定时判断MOV A,3CH ;3CH是引入的判断因子,当其为0时,不对定时时间是否到0进行判断JNZ DSPD2 ;当3CH不是0时,跳转到定时判断程序AJMP MAINDSPD2:MOV A,R4;JZ S_PD ;R4所存定时分数为0,则转而判断R3所存定时秒数AJMP MAIN;S_PD:MOV A,R3;JNZ MAIN ;R4,R3所存参数减为0,定时长度已到JNB P0.6,SHENGYIN2 ;闹铃重响功能开启时,跳入响铃程序AJMP TISHI ;不是闹铃重响定时,则定时时间到时,跳入提示程序AJMP MAINCESHI:ACALL RINGAJMP MAINSHENGYIN1: ;调用响铃子程序LCALL RINGAJMP MAINSHENGYIN2:SETB F0 ;闹铃重响标志位设定LCALL RING ;响铃CLR F0 ;标志位复位AJMP MAINNLTZZ:AJMP NLTZ1 ;跳入闹铃调整程序DSTZ:AJMP DSTZ1 ;跳入定时调整程序DATETZ:AJMP DATETZ1 ;跳入日期调整程序STOPWATCHTZ:AJMP STOPWATCHTZ1 ;跳入秒表程序显示子程序:DISP: ;时间显示子程序JNB P3.7,OUT1 ;判断节能开关7是否按下,按下则数码管不显示,延长其寿命MOV DPTR,#LEDTABMOV A,SECOND ;显示当前时间秒位MOV B,#10DIV AB ;A存十位,B存个位MOVC A,@A+DPTRMOV P1,ACLR SEC_SACALL D_1MS ;显示当前时间秒十位SETB SEC_SMOV A,BMOVC A,@A+DPTRMOV P1,ACLR SEC_GACALL D_1MS ;显示当前时间秒个位MOV A,MINUTE ;显示当前时间分位MOV B,#10DIV ABMOVC A,@A+DPTRMOV P1,ACLR MIN_SACALL D_1MSSETB MIN_SMOV A,BMOVC A,@A+DPTRMOV P1,ACLR MIN_GACALL D_1MSSETB MIN_GMOV A,HOUR ;显示当前时间时位MOV B,#10DIV ABMOV DPTR,#LEDTABMOVC A,@A+DPTRMOV P1,ACLR HOU_SACALL D_1MSSETB HOU_SMOV A,BMOVC A,@A+DPTRMOV P1,ACLR HOU_GACALL D_1MSMOV A,WEEK ;显示当前星期数MOVC A,@A+DPTRMOV P1,ACLR Y_SACALL D_1MSSETB Y_SOUT1:RET。