搜档网
当前位置:搜档网 › stm8s汇编更改时钟源

stm8s汇编更改时钟源

stm8s汇编更改时钟源
stm8s汇编更改时钟源

stm8/

#include "mapping.inc"

#include "STM8S105C_S.inc" ;加入寄存器定义文件,具体定义在stm8s105c_s.asm中,需加入Source file中

segment 'rom'

main.l

; initialize SP

ldw X,#stack_end

ldw SP,X

#ifdef RAM0

; clear RAM0

ram0_start.b EQU $ram0_segment_start

ram0_end.b EQU $ram0_segment_end

ldw X,#ram0_start

clear_ram0.l

clr (X)

incw X

cpw X,#ram0_end

jrule clear_ram0

#endif

#ifdef RAM1

; clear RAM1

ram1_start.w EQU $ram1_segment_start

ram1_end.w EQU $ram1_segment_end

ldw X,#ram1_start

clear_ram1.l

clr (X)

incw X

cpw X,#ram1_end

jrule clear_ram1

#endif

; clear stack

stack_start.w EQU $stack_segment_start

stack_end.w EQU $stack_segment_end

ldw X,#stack_start

clear_stack.l

clr (X)

incw X

cpw X,#stack_end

jrule clear_stack

intel ;intel格式的数值输入方式,不能顶格书写

ld a,#01

and a,CLK_CSSR;

ld CLK_CSSR,a; CSEEN<-1,时钟安全系统使能

mov CLK_ECKR,#01h ; 允许外部高速振荡器工作

wait_hse_ready

ld a,CLK_ECKR

and a,#02h

jreq wait_hse_ready ; 等待外部高速振荡器准备好

mov CLK_SWCR,#02h ; SWEN <- 1

mov CLK_SWR,#0b4h ; 选择芯片外部的高速振荡器为主时钟wait_clk_switch

ld a,CLK_SWCR

and a,#08h

jreq wait_clk_switch ; 等待切换成功

ld a,#11111001b

and a,CLK_CKDIVR;

ld CLK_CKDIVR,a;

mov PB_DDR,#00000010b ;PC1为输出

mov PB_CR1,#00000010b ;PC1为推挽输出

mov PB_CR2,#00000000b ;

loop

mov PB_ODR,#00000000b ;点亮led0

call delay

mov PB_ODR,#00000010b ;熄灭led0

call delay

jp loop

delay

ld a,#15

next1 ldw x,#0ffffh

next decw x

jrne next

dec a

jrne next1

ret

interrupt NonHandledInterrupt

NonHandledInterrupt.l

iret

motorola ;motorola格式的数值输入方式,不能顶格书写

segment 'vectit'

dc.l {$82000000+main} ; reset dc.l {$82000000+NonHandledInterrupt} ; trap

dc.l {$82000000+NonHandledInterrupt} ; irq0

dc.l {$82000000+NonHandledInterrupt} ; irq1

dc.l {$82000000+NonHandledInterrupt} ; irq2

dc.l {$82000000+NonHandledInterrupt} ; irq3

dc.l {$82000000+NonHandledInterrupt} ; irq4

dc.l {$82000000+NonHandledInterrupt} ; irq5

dc.l {$82000000+NonHandledInterrupt} ; irq6

dc.l {$82000000+NonHandledInterrupt} ; irq7

dc.l {$82000000+NonHandledInterrupt} ; irq8

dc.l {$82000000+NonHandledInterrupt} ; irq9

dc.l {$82000000+NonHandledInterrupt} ; irq10

dc.l {$82000000+NonHandledInterrupt} ; irq11

dc.l {$82000000+NonHandledInterrupt} ; irq12

dc.l {$82000000+NonHandledInterrupt} ; irq13

dc.l {$82000000+NonHandledInterrupt} ; irq14

dc.l {$82000000+NonHandledInterrupt} ; irq15

dc.l {$82000000+NonHandledInterrupt} ; irq16

dc.l {$82000000+NonHandledInterrupt} ; irq17

dc.l {$82000000+NonHandledInterrupt} ; irq18

dc.l {$82000000+NonHandledInterrupt} ; irq19

dc.l {$82000000+NonHandledInterrupt} ; irq20

dc.l {$82000000+NonHandledInterrupt} ; irq21

dc.l {$82000000+NonHandledInterrupt} ; irq22

dc.l {$82000000+NonHandledInterrupt} ; irq23

dc.l {$82000000+NonHandledInterrupt} ; irq24

dc.l {$82000000+NonHandledInterrupt} ; irq25

dc.l {$82000000+NonHandledInterrupt} ; irq26

dc.l {$82000000+NonHandledInterrupt} ; irq27

dc.l {$82000000+NonHandledInterrupt} ; irq28

dc.l {$82000000+NonHandledInterrupt} ; irq29

end

基于某52单片机电子时钟的设计论文设计(纯总汇编语言编写)

编号 单片机课程设计 (2013级) 题目:基于52单片机电子时钟的设计 学院:物理与机电工程学院 专业:电子信息科学与技术 作者姓名:陈??党??杜?? 指导教师:张??职称:教授 完成日期:2016 年7月2日 二〇一六年七月

基于52单片机电子时钟的设计 摘要 本次设计的多功能时钟系统采用STC89C52单片机为核心器件,利用其定时器/计数器定时和记数的原理,结合液晶显示电路、时钟芯片DS1302电路、电源电路以及按键电路来设计计时器。将软硬件有机地结合起来,使得系统能够实现液晶显示,显示有年、月、日、时、分、秒以及星期,还可以设置闹钟和整点报时。其中软件系统采用单片机汇编语言编写程序,包括显示程序、闹钟程序、中断、延时程序,按键消抖程序等,并在keil中调试运行,硬件系统利用PROTEUS 强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。 关键词:STC89C52芯片;时钟芯片DS1302;单片机汇编语言;液晶显示电路

1 设计任务及要求分析 1.1 设计任务:基于单片机的电子时钟设计 1.2 要求: 1.2.1 用LCD液晶作为显示设备 1.2.2 可以分别设定小时、分钟和秒,复位后时间为 00 00 00 1.2.3 能实现日期的设置年、月、日 1.3 扩展要求:如闹钟功能、显示星期、整点音乐报时等 2 系统方案 2.1 系统整体方案的论证 电路原理设计是基于小系统板包括电源电路、复位电路、按键电路、DS1302时钟电路、液晶显示驱动电路、输出控制电路。电源部分是用电池来提供的3v-5v,晶体振荡器采用的是12MHz的石英晶体振荡器。 整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。时钟芯片产生时钟信号,利用单片机的I/O口传给单片机;并通过I/O口实现LCD的显示。系统设有4个独立式按键可以对时间年、月、日和星期进行调整,还可以设置闹钟。具体如图2.1所示: 图2.1 系统整体框图

用C++编写模拟时钟程序

模拟时钟程序 1 基本功能描述 本次课程设计是基于面向对象的应用程序设计,主要运用C++语言在VC++开发环境下的MFC中编程实现。模拟时钟的基本功能是程序初始在屏幕上有一指针式时钟表盘,表盘为椭圆形,内部分布有12个刻度,表盘上有三个长度和颜色不同的时针分针和秒针,相互之间容易辨认,指针的运动通过数学推导之后以代码实现。表盘的下方是一个数字形式显示的数字钟,其显示时间的格式是时:分:秒,指针式时钟和数字式时钟显示的时间同步,且两个时钟所显示的时间与系统时间相致,页面的菜单项设有时间设置项,可以对所显示的时间进行调整,能进行调整的具体内容是年、月、日、时、分、秒。设计成功之后,此应用程序便可以起到时钟显示的作用。 2 设计思路 2.1 程序流程图

图1 模拟时钟程序流程图 2.2 程序流程分析 (1) 绘制指针式的时钟和数字式的时钟图形时,要在CView类下进行。其中OnDraw()函数在绘制视图窗口时被调用,在定义了画刷CBrush和画笔CPen之后,调用GetClientRect()定义屏幕大小并确定椭圆中心的坐标,然后调用Ellipse绘制椭圆,即指针式的时钟表盘,SetTextColor绘制文本颜色,调用MoveTo和LineTo绘制表盘指针,同时调用CreateFont()创建数字钟字体,TextOut则是用以数字钟的文本输出。 (2) 模拟时钟处理消息的过程:首先调用SetTimer函数定义时钟消息,包括参数指定计时器的ID,消息产生的时间间隔,回调函数为NULL;调用消息处理函数OnTimer()刷新窗口显示。在相应的WM_TIMER消息处理里添加时钟消息响应代码;最后调用KillTimer 释放该时钟。 (3) 要实现时钟的动态效果,即时间窗显示的时间每隔一秒钟更新一次,需要在时间窗格的正文调用CStatusBar::SetPaneText()函数。要定时更新,则应利用WM_TIMER消息,计时器每隔一定的时间间隔就会发出一个WM_TIMER消息,而这个时间间隔可由用户指定。MFC的Windows类提供了WM_TIMER消息处理函数OnTimer(),应在该函数内进行更新时间窗格的工作。先利用ClassWazard给CMainFrame类加入WM_TIMER消息处理函数OnTimer(),CMainFrame:: OnTimer()函数是在系统发给框架窗口消息WM_TIMER时调用

微机原理实习报告---电子时钟(用汇编语言实现)

河南农业大学 课程设计报告 题目:电子时钟显示设计 课程:微型计算机原理 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师: 完成日期: 机电工程学院

目录 前言 (1) 第一章绪论 (2) 一、实习目的 (2) 二、实习要求 (2) 三、设计所需设备 (2) 第二章软件系统介绍 (3) 一、中断技术(或其它相关技术) (3) (一)介绍中断的概念中断技术 (3) (二)DOS及BIOS中断 (3) 二、汇编语言及汇编工具简介 (3) 三、软件介绍 (3) 第三章设计分析 (4) 一、软件设计思路 (4) 二、软件各模块内容 (4) (一)光标定位子程序原理 (4) (二)清屏原理 (4) (三)字符及字符串显示原理 (4) (四)压缩BCD转为ASCII码原理 (5) (五)动态扫描键盘原理 (5) 三、程序流程图设计 (5) 第四章系统实现 (7) 一、程序原代码清单及详细注释 (7) 二、实验结果 (15) 总结 (16) 一、软件的选取 (16) 二、图案的设计 (16) 三、程序调试 (16) 参考文献 (16)

前言 软件设计题目 电子时钟。(在计算机屏幕上显示当前系统的时间,日期,或时间和日期,3人一组)设计目的: 1.了解定时/计数器和中断(DOS/BIOS)的使用; 2.掌握定时/计数器和中断的工作原理和编程方法。 编程要求: 1.调用系统时间,在屏幕上显示出来; 2.获取键盘的按键值,判断键值并退出系统。 程序设计参考步骤: 第一部分:定义显示界面。 第二部分:调用系统时间(日期),并将调用的用二进制表示的时间数转换成ASCII码, 并将时间数(日期数)存入内存区。 第三部分:将存在系统内存区的时间数(日期数)用显示字符串的形式显示出来。 第四部分:获取键盘的按键值,判断键值并退出系统。

用C#编的模拟时钟(附源代码)

使用C#模拟时钟表的一种简单制作方法 1.GDI+图形库简介 1.1概述 GDI+是Microsoft的新.NET Framework类库用于图形编程,因为它是.NET Framework的一部分,所以也是面对对象的。 1.2设备环境和对象 在GDI+中识别输出设备的方式是使用设备环境DC对象,该对象存储特定设备的信息并能把GDI+API函数调用转换为要发送给该设备的指令,还可以查询设备环境对象,确定对应的设 备有什么功能,这样才能据此调整输出结果。 在GDI+中设备环境包装在.NET基类System.Drawing.Graphics中,大多数绘图工作都是调用Graphics的对象完成的。 2.如何利用GDI+绘制时钟表 2.1时钟表的各控件属性的设置 用C#中各控件制作一个指针式的时钟放在桌面上显示的界面。包括1个PictureBox控件、1个Timer控件、1个NotifyIcon控件及StatusStrip控件。 2.2各控件的属性设置 Timer控件的Interval属性值设置为1000,Enable属性值设置为True;窗体的StartPosi tion属性设置为CenterScreen,这个属性使得钟表在屏幕上中中央显示。 2.3功能实现代码 为实现该时钟表功能,需要设计并输入相应对象相应事件或过程的程序代码。方法是:在设计状态,双击相应控件,或双击控件的某一事件,并输入相应的C#程序代码。 2.4通用声明及时钟表设计方法 在程序中需要有一批变量或常量的定义,可事先在通用声明中完成,代码如下: const int s_pinlen = 100;//秒针长度 const int m_pinlen = 75; //分针长度 const int h_pinlen = 75; //时针长度 PointF center = new PointF(s_pinlen +3, s_pinlen +3);//中心点位置 SolidBrush sb = new SolidBrush(Color.Black);//时钟圆心的刷子 除上述变量声明外,时钟表功能编写子方法,方法名为:AngleToPos和myClock,

单片机电子时钟汇编语言程序

51单片机架构下时钟控制程序 ;KEY A A键功能程序开启/关闭定时器 ;KEYB B键功能程序时值加1 ;KEYC C键功能程序分值加1 ;KEYD D键功能程序秒值加1 ;KEYE E键功能程序12/24时值转换 ;BEEP_BL整点报时 ;P0 显示接口 ;系统初始化程序**************************************************** KEY A EQU P3.0 ;单片机控制设置 KEYB EQU P3.1 ;单片机控制设置 KEYC EQU P3.2 ;单片机控制设置 KEYD EQU P3.3 ;单片机控制设置 KEYE EQU P3.4 ;单片机控制设置 BEEP EQU P3.7 ;单片机控制设置 ORG 0000H AJMP MAIN ;转到系统初始化程序 ORG 000BH AJMP PITO ;转到定时器0中断服务程序 ORG 0100H MAIN: MOV SP, #60H ;确立堆栈区 MOV TMOD, #01H ;设定定时器0为工作方式1 MOV TL0, #0DCH ;装计数器初值 MOV TH0, #0BH CLR 21H.0 CLR TR0 ; TR0置"0",定时关闭 SETB EA ; EA置"1",中断总允许 SETB ET0 ; ET0置"1",定时器0中断 ; 允许 MOV 30H, #10H ; 循环次数 MOV 7EH, #0AH ; P.点显示初始化 MOV R0, #79H MOV R1, #05H PP: MOV @R0, #0BH INC R0 DJNZ R1, PP MOV R0, #31H ; 时、分、秒值存储单元清零

模拟时钟转动程序

模拟时钟转动程序 一、课程设计的内容 能模拟机械钟表行走,还要准确利用数字显示日期和时间,在屏幕上显示一个活动时钟,按任意键时程序退出。 二、课程设计的要求与数据 1.进一步掌握和利用C语言进行课程设计的能力 2.进一步理解和运用结构化程序设计的思想和方法 3.初步掌握开发一个小型实用系统的基本方法 4.学会调试一个较长程序的基本方法 5.学会利用流程图和N-S图表示算法 6.掌握书写程序设计开发文当的能力 三、课程设计应完成的工作 1、编写完成相应题目的程序 2、编写课程设计报告,课程设计报告应该包含以下6部分 1)需求分析:包括设计题目、设计要求以及系统功能需求分析 2)总体设计:包括系统总体设计框架和系统功能模块图 3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图 4)调试分析过程描述:包括测试数据、测试输出结果以及对程序测试过程中存在问题进行思考(主要问题的出错现象、出错原因、 解决方法及其效果等,相应效果截图) 5)总结:课程设计完成了哪些主要功能,是否有扩展功能?还有哪些地方需要改进?课程设计的学习与体会?有哪些合理化建 议? 6)附录:主要原程序代码含必要的注释 3、答辩:在实验室建立程序运行环境,并在指导教师的监督下,独立解决问题,运行程序和回答教师的提问。 四、课程设计进程安排

五、应收集的资料及其主要参考文献 [1]谭浩强.C程序设计(第三版)[M]北京:清华大学出版社,2005年9月 [2]谭浩强.C程序设计题解与上机指导(第三版)[M]北京:清华大学出版社,2005年7月 [3]夏宝岚张慕蓉夏耘.程序设计教程(第二版)[M],上海:华东理工出版社,2003.1 [4]陈锦昌赵明秀.C语言计算机绘图教程(第一版)[M],广州:华南理工大 学出版社,1998.9 发出任务日期:2010年12月15日指导教师签名: 计划完成日期:2010年12月30日基层教学单位责任人签名: 主管院长签章: 目录 1.设计目的与要求 (5)

单片机电子时钟汇编语言程序

51单片机架构下时钟控制程序 ;KEYA A键功能程序开启/关闭定时器 ;KEYB B键功能程序时值加1 ;KEYC C键功能程序分值加1 ;KEYD D键功能程序秒值加1 ;KEYE E键功能程序12/24时值转换 ;BEEP_BL整点报时 ;P0 显示接口 ;系统初始化程序**************************************************** KEYA EQU P3.0 ;单片机控制设置 KEYB EQU P3.1 ;单片机控制设置 KEYC EQU P3.2 ;单片机控制设置 KEYD EQU P3.3 ;单片机控制设置 KEYE EQU P3.4 ;单片机控制设置 BEEP EQU P3.7 ;单片机控制设置 ORG 0000H AJMP MAIN ;转到系统初始化程序 ORG 000BH AJMP PITO ;转到定时器0中断服务程序 ORG 0100H MAIN: MOV SP, #60H ;确立堆栈区 MOV TMOD, #01H ;设定定时器0为工作方式1 MOV TL0, #0DCH ;装计数器初值 MOV TH0, #0BH CLR 21H.0 CLR TR0 ; TR0置"0",定时关闭 SETB EA ; EA置"1",中断总允许 SETB ET0 ; ET0置"1",定时器0中断 ; 允许 MOV 30H, #10H ; 循环次数 MOV 7EH, #0AH ; P.点显示初始化 MOV R0, #79H MOV R1, #05H PP: MOV @R0, #0BH INC R0 DJNZ R1, PP MOV R0, #31H ; 时、分、秒值存储单元清零

电子时钟单片机【完整版】

烟台南山学院 单片机课程设计题目电子时钟 姓名: 所在学院 所学专业: 班级: 学号: 指导教师: 完成时间:

随时代的发展,生活节奏的加快,人们的时间观念愈来愈强;随自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方也会愈来愈多,因此,设计开发数字时钟具有良好的应用前景。 由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。本设计利用Atmel公司的AT89S52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用汇编语言进行软件编程,并用实验板进行演示、验证。 在介绍本单片机的发展情况基础上,说明了本设计实现的功能,以及实验板硬件情况,并对各功能电路进行了分析。主要工作放在软件编程上,用实验板实现时间、日期、定时及它们的设定功能,详细对软件编程流程以及调试进行了说明,并对计时误差进行了分析及校正,提出了定时音与显示相冲突问题及解决方案。实验证明效果良好,可以投入使用。 本次仿真设计的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS—51单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。在本学期的开始我们进行了计算机工程实践,在实践中我们以微机原理与接口技术课程中所学知识为基础,设计了电子时钟系统。本系统为多功能数字钟的系统。本设计以单片机AT89c51为控制核心,选用DS1302串行时钟芯片,RT1602液晶显示器实现液晶显示当前时间、日期、星期。本电子时钟具有日期、时、分、秒的显示、调整功能,采用的时间制式为24小时制,时间显示格式为时(十位、个位)、分(十位、个位)、秒(十位、个位)。 关键词:单片机 AT89S52 电子时钟汇编语言

单片机模拟电子时钟设计

单片机课程设计 课题:单片机模拟电子时钟设计 学院:自动化学院 专业: 07电气工程及其自动化 (低压电力智能控制方向) 姓名:谭善文 学号:2007104743002 指导老师:张华

目录 一、前言 (3) 二、设计目的 (3) 三、设计任务与要求 (3) 四、设计原理 (3) 五、总体设计方案 (4) 六、小结与展望 (21) 七、致谢 (22) 八、主要参考文献 (22) (3)、晶振 (5) (4)、LED (5) (5)、复位 (6) (6)、蜂鸣器 (6) (7)、按键 (6) (8)、串行口 (7) (9)、单片机 (7) (10)、数码管 (8) 2、程序编写 (10) 六、小结与展望 (21) 七、致谢 (22) 八、主要参考文献 (22)

一、前言 在当今的工作和生活环境中,有越来越多的单片机在为人们服务,例如电视遥控、手机、洗衣机、空调等,单片机几乎无所不在,学习单片微型计算机这门课程,就是为了对单片微型计算机有进一步感性的认识,了解、掌握、应用,甚至设计开发它。让我们能综合运用单片机的软、硬件技术分析实际问题,为工业生产、科学研究和实验设备等领域的单片机应用和开发打下良好的基础。 二、设计目的 a)通过《单片微型计算机原理与接口技术教程》了解单片微型计算机的发 展; b)根据课程设计的要求,学会用汇编语言设计程序,学会应用程序设计调 试软件; c)通过调试程序设计模块,掌握单片微型计算机的结构原理,了解程序设 计的编程思想; d)通过软件调试熟悉使用单片机指令系统,掌握汇编语言程序设计方法及 编程技巧,掌握子程序的设计与使用,熟悉中断服务程序的设计及调用 过程。 三、设计任务与要求 任务:利用单片机定时功能实现电子时钟的计时 要求:1.设计单片机电子时钟设计控制方案,功能设计; 2.详细描述实现需要的硬件,效果等; 3.编写汇编语言程序设计,在KEIL仿真实现调试程序; 四、设计原理 单片机可以利用定时功能实现电子时钟的计时。设计时利用单片机的定时器

微机原理课设(电子时钟)

学院:计算机科学技术 专业:计算机科学与技术(工)班级:计08-1班 姓名:秦振兴 学号:27 指导教师:孙海 2011年7月1日

微机原理与汇编语言课程设计任务书 一、题目:电子表 二、设计的目的 1. 掌握利用PC机的的中断及中断服务程序的编写方法; 2. 掌握定时器/计数器8253的工作原理及编程方法。 三、设计要求 编写程序,利用主机内的8253-2的计数器0产生10m的方波输出,此输出送至IRQ0使8259A每10ms产生1次中断,100次后秒加1,然后调整时、分、秒并在屏幕上显示。程序从按下任意键开始显示数据区存放的时间值,运行中按下空格键即停止运行,并返回DOS。要求每人独立完成课程设计。 四、设计内容 采用PC系列微机现有的硬件和软件资源编写汇编语言程序,在显示器上显示XX(时):XX(分):XX(秒),每秒钟更新1次。 五、课程设计工作量 一般每人的程序量应在100行有效程序行以上。不得抄袭,否则给不及格成绩。 六、课程设计工作计划 2011年6月27日1-2节指导教师讲课,学生准备文献资料; 2011年6月28日~2011年7月01日每人完成自己程序并能独立演示; 2011年7月01日下午验收,学生撰写课程设计报告。

指导教师签字: 专业主任签章: 微机原理与汇编语言课程设计指导教师评语与成绩

目录

第1章概述 ..................................................................................................... 错误!未定义书签。 选题来源 .............................................................................................. 错误!未定义书签。 选题目的 .............................................................................................. 错误!未定义书签。 选题意义 .............................................................................................. 错误!未定义书签。 解决问题 .............................................................................................. 错误!未定义书签。 技术要求 .............................................................................................. 错误!未定义书签。第2章总体方案设计 ..................................................................................... 错误!未定义书签。 硬件总体设计 ...................................................................................... 错误!未定义书签。 软件总体设计 ...................................................................................... 错误!未定义书签。第3章详细设计 ............................................................................................. 错误!未定义书签。 硬件设计 .............................................................................................. 错误!未定义书签。 显示模块........................................................................................... 错误!未定义书签。 时钟运算模块................................................................................... 错误!未定义书签。 对时模块........................................................................................... 错误!未定义书签。 设计电路图....................................................................................... 错误!未定义书签。 软件设计 .............................................................................................. 错误!未定义书签。 程序流程图....................................................................................... 错误!未定义书签。第4章调试与运行结果说明 ......................................................................... 错误!未定义书签。 试验结果 .............................................................................................. 错误!未定义书签。 分析 ...................................................................................................... 错误!未定义书签。课程设计总结 ................................................................................................... 错误!未定义书签。谢启 ................................................................................................................... 错误!未定义书签。参考文献 ........................................................................................................... 错误!未定义书签。附录 ................................................................................................................... 错误!未定义书签。

用VC++制作 模拟时钟应用程序

案例五模拟时钟应用程序 以实例为背景学习基于MFC的WINDOWS应用程序设计,编写一个模拟时钟程序,此程序在屏幕左边有一个指针式钟面,右方有两个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致,下方的矩形框作为秒表。用菜单选项或按钮设置时间和秒表。时间不必与机器系统时间相同,可任意设置。 模拟时钟示意图 1 编程要求 (1)为该程序设计一个美观大方的图标。 (2)程序界面设计合理,色彩得体大方,显示正确。 (3)时针、分针和秒针形象美观,即使各指针重合也可辨认。 (4)各指针运动规律正确。为便于演示,时钟速度应比实际时间快20倍,即1小时相当于3分钟。 (5)数字式时钟的时间显示与指针式时钟显示一致。

(6)按下设置时间按钮或菜单项可弹出一对话框,用于设置当前的时间和日期。 (7)按下秒表控制按钮后,秒表显示窗中显示从0开始的时间,单位为百分之一秒。再次按下秒表控制按钮后计时停止,该窗口显示累计时间。 2 问题分析 本题主要涉及到的知识点有:时钟指针运动算法、屏幕重绘方法、定时器消息、鼠标消息、菜单命令、对话框、画笔/画刷、显示文字等。指针运动算法和屏幕重绘方法是本程序主要难点所在。 不论何种指针,每次转动均以π/30弧度(一秒的角度)为基本单位,且都以表盘中心为转动圆心。计算指针端点(x, y)的公式如下:x =圆心x坐标+ 指针长度* cos (指针方向角) y =圆心y坐标+ 指针长度* sin (指针方向角) 注意,指针长度是指自圆心至指针一个端点的长度(是整个指针的一部分),由于指针可能跨越圆心,因此一个指针需要计算两个端点。 三个指针的运动是相关联的,秒针转一圈引起分针运动一格,分针转一圈引起时针运动一格,因此应该使用一个定时器消息来处理指针的运动。若用三个定时器消息分别处理时针、分针和秒针的运动,就会使问题复杂化且不易实现三个指针联动的正确规律。采用一个定时器消息可以很容易实现指针联动算法。 由于屏幕的重绘速度很快(50 ms一次),如果采用全屏删除式重绘则闪烁十分明显,显示效果不佳。本程序采用非删除式重绘,假定指

单片机课程设计电子钟汇编语言

ORG 0000H MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV R0,#00H MOV R1,#00H CLR P3.0 CLR P3.1 UU: MOV TMOD ,#00H MOV TH0,#00H MOV TL0,#00H CLR TR0 MM: MOV A,40H MOV 50H,#11111110B MOV P2,50H MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P0,A LCALL YY MOV A,50H RL A MOV 50H,A MM1: MOV P2,50H MOV DPTR,#TAB MOV A,41H ADD A,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM2: MOV P2,50H MOV DPTR,#TAB MOV A,42H

MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM3: MOV P2,50H MOV DPTR,#TAB MOV A,43H ADD A,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM4: MOV P2,50H MOV DPTR,#TAB MOV A,44H MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM5:MOV P2,50H MOV DPTR,#TAB MOV A,45H ADD A ,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM6: MOV P2,50H MOV DPTR,#TAB MOV A,46H

模拟时钟转动程序

东南大学 C语言课程设计报告 课程名称:计算机综合课程设计 学院:土木工程学院 设计题目:模拟时钟转动程序 级别:B级 学生姓名:韦信丞 学号:05114419 同组学生: 学号: 指导教师:郭恒宁 2015年9月 1 日 C语言课程设计任务书

模拟时钟转动程序 一、课程设计的内容 1、能模拟机械钟表行走 2、还要准确利用数字显示日期和时间 3、在屏幕上显示一个活动时钟 4、按任意键时程序退出。 二、课程设计应完成的工作 1、编写完成相应题目的程序 2、编写课程设计报告,课程设计报告应该包含以下6部分 1)需求分析:包括设计题目、设计要求以及系统功能需求分析 2)总体设计:包括系统总体设计框架和系统功能模块图 3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图 4)调试分析过程描述:包括测试数据、测试输出结果以及对程序测试过程中存在问题进行思考(主要问题的出错现象、出错原因、 解决方法及其效果等,相应效果截图) 5)总结:课程设计完成了哪些主要功能,是否有扩展功能?还有哪些地方需要改进?课程设计的学习与体会?有哪些合理化建 议? 6)附录:主要原程序代码含必要的注释 3、答辩:在实验室建立程序运行环境,并在指导教师的监督下,独立解决问题,运行程序和回答教师的提问。 四、应收集的资料及其主要参考文献 [1]谭浩强.C程序设计(第四版),北京:清华大学出版社,2010年6月[2]陈清华朱红 . C语言课程设计案例精选与编程指导(第一版),南京:东南大学出版社,2003年6月 [3]顾小晶 . 实用C语言简明教程(第一版),北京:中国电力出版社,2003年9月

单片机汇编语言电子时钟设计

目录 第一章电子时钟功能及设计方案 (1) 1.1电子时钟功能 (1) 1.1.1时钟简介 (1) 1.1.2时钟的基本特点及原理 (1) 1.2设计方案 (2) 1.2.1计时方案 (2) 1.2.2显示方案 (2) 第二章硬件介绍 (3) 2.1单片机简介 (3) 2.1.1单片机的特点 (3) 2.1.2 89C51单片机介绍 (3) 2.2LED数码管 (6) 2.3晶振电路 (7) 第三章软件仿真 (8) 3.1 PROTUES软件 (8) 3.1.1protues软件简介 (8) 3.1.2电路功能仿真 (8) 3.2电路原理图 (9) 3.3流程图 (9) 第四章调试结果 (10) 4.1使用说明 (10) 4.1.1 时间显示 (10) 4.1.2时间调整 (11) 第五章心得体会 (12) 附录: (13) 电子钟总体程序清单: (13)

第一章电子时钟功能及设计方案 1.1电子时钟功能 1.1.1时钟简介 现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。 1.1.2时钟的基本特点及原理 现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 该电子时钟由89C51,BUTTON,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。

(完整版)基于8086的电子时钟设计(汇编语音)

目录 摘要 (1) Abstract (1) 第一章电子钟设计总体方案设计 (2) 1.1 设计目的 (2) 1.2 设计要求 (2) 1.3 方案比较 (2) 1.3.1 非中断方式与中断方式的比较 (2) 1.3.2 LED显示与液晶显的比较 (3) 1.4 总体方案设计思路 (3) 第二章系统硬件设计 (4) 2.1 8255与CPU之间的连接关系 (4) 2.2 8253与周边电路的连接关系 (4) 2.3 8259与周边电路连接关系 (5) 2.4 液晶显示模块与8255之间的连线关系 (5) 2.5 地址译码器与按键 (6) 2.6 系统总体硬件电路图 (6) 第三章系统软件设计 (7) 3.1 编址及控制字的确定 (7) 3.1.1 编址 (7) 3.1.2 控制字 (7) 3.2 分块子程序 (7) 3.2.1 1602读写操作子程序 (7) 3.2.2中断子程序 (9) 3.3 主程序设计 (11) 总结与致谢: (13)

参考文献: (14) 附录: (15)

摘要 本设计以微机原理与接口技术为基础,以8086CPU为核心,利用INTER 8253可编程定时/计数器,通过引入时钟发生器产生标准时钟进行精准定时;经定时器产生中断源,采用可编程中断控制器8259A进行中断扩展,用可屏蔽中断方式进行时间的采集;以可编程并行I/O接口芯片8255A扩展接口,驱动MSC1602液晶模块进行时间显示。 第一章电子钟设计总体方案设计 1.1 设计目的 电子钟是一种基于微电子技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。通过该题目的设计和分析,学习微机软、硬件系统设计开发的过程,加深微机原理及其应用课程基础知识的理解和综合运用能力,熟悉集成电路芯片的使用方法,熟悉微机编程及接口电路,学会体会工程实际设计过程,培养学生独立解决实际工程问题的综合能力。初步得到用汇编语言书写程序的训练,全面培养程序设计的分析、设计、编测试及文档规范书写的能力,得到运用汇编语言的综合训练,提高解决实际问题的能力。 1.2 设计任务 通过该题目的设计过程,可以初步掌握汇编语言的运用、软件开发方法并提高解决实际问题的综合能力。电子时钟实际是一个多重的定时技术系统。对于秒、分技术系统,逢60进1,即当秒计数到60时,秒计数器向分计数器输入一个计数脉冲;而当分计数器计数到60时,向小时计数器输入一个计数脉冲。当小时计数器逢24进1.把秒计数器、分计数器和小时计数器的内容通过七段数码管或其他芯片显示出来,就完成了时间信息的输出。本课程设计要求利用8086系统模拟电子时钟结构,完成以下设计任务: 1、时间初值输入:利用键盘输入时间初值; 2、电子钟计数:电子钟通过计数器自动计数,实现时间的自动更新;

模拟时钟程序设计全解

目录 1.设计目的和内容 2.基本功能描述 3.设计思路 4.软件设计:设计步骤、界面设计、关键功能的实现 5.结论与心得体会 6.参考文献 7.附录:调试报告、测试结果、关键源代码

1.设计目的和实验内容 1.1设计目的: 1学习Visual C++的MFC开发程序的步骤。 2综合运用所学的类、继承和多态的知识。 3进一步掌握程序的调试方法。 1.2 实验内容 1基于MFC的WINDOWS应用程序设计方法,编写一个模拟时钟程序; 2在屏幕中间有一个指针式时钟; 3这个时钟的下方或者上方以数字方式显示时间,该时间应与指针显示的时间一致; 4用菜单选项打开的对话框,或者主界面里的控件设置时间。时间不必与机器系统时间相同,可任意设置。 2.基本功能描述 编辑运行代码时,窗口界面会出现一个色调为绿色,背景为黑色的指针时钟;一个精确到秒的数字时钟;一个退出按钮;一个设置按钮;三个设置自定义时间的编辑框。运行时调用的为系统的时间,在编辑框中分别输入自定义时分秒点击设置,指针时钟和数字时钟会跳转为自定义时间。按退出键关闭窗口。 3.设计思路 首先,指针时钟的背景,指针形状长度,正点格子和秒数格子的设计代码过于繁琐和复杂,稍做了解便可从网上抄录,然后再把参数及变量改成自己设计部分所需的名称即可。 其次,本程序的基础及核心思路为用一个计数器器SetTime(1,1000,NULL)调用WM_TIMER的On Timer()函数,达到更新时间,重绘窗口的效果。 而在程序初步完成后,导师初查指出用SetTime()计数与系统时间的进度存在误差,所以不可以用SetTime()函数计时。于是本人将算法改成用系统时间和编辑框输入的时间作差,得到一个定值,再用系统时间减去这个定值就为设置的时间了,此时SetTime()函

河南农业大学-10级电子时钟(汇编语言)实验报告

姓名成绩 LL GKF GS 河南农业大学 课程设计报告 题目:电子时钟显示设计 课程:微型计算机原理 专业:电子信息工程 班级: 10电信(1)班 学生姓名: LL GKF GS 学号: 指导教师: ZJH 完成日期: 2012.12.30

机电工程学院 目 录 第一章 前言 (3) 1.1实习目的………………………………………………………………………………… 3 1.2实习要 求 (3) 1.3设计所需设备 (3) 第二章 软件系统介绍 (4) 2.1 DOS及BIOS功能调用 (4) 2.2 DOS及BIOS功能中断的用途和好处 (4) 2.3 DOS及BIOS功能中断的调用方法 (4) 2.4介绍中断技术 (4) 第三章 系统介

绍………………………………………………………………………………… 5 3.1流程图 (5) 3.2程序设计原理 (5) 第四章 实习设计分析 (7) 第五章 系统实现……………………………………………………………………………… 8 5.1程序源代码清单及详细注释 (8) 5.2实验结果………………………………………………………………………………… 第六章总结................................................................................................参考文献 (14)

第一章前言 1.1实习目的 汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这样用符号代替机器语言的二进制代码,就把机器语言变成了汇编语言。汇编语言能够最大限度的发挥硬件的性能。本次实习主要是为了了解定时/计数器和中断的使用。掌握微机常用的输入输出方式及接口技术。掌握一定的汇编语言,增强自己动手的能力。掌握程序设计的一般方法和步骤,能调试和修改程序。 1.2实习要求 根据实习的要求,可知需要设计的计算机时钟模拟显示程序是基于汇编语言的WINDOWS应用程序设计,程序运行成功后,页面出现数字式的时钟。 首先在数据段开辟一显示缓冲区,用来存储系统时间。调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号’$’。调用DOS字符串显示功能将时间显示出来。并调用屏幕I/O中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序,屏幕显示延迟一段时间后再跳回到初始位置,再显示,由此循环下去。程序的最后还设计一了个按“ESC”键就退出的功能,采取了判断键值的方法。为了显示的美观,还设计一个字符图界面,通过显示字符串的方法显示出来。本程序具有很强的扩展功能,我们可以在此基础上进行一些输入、输出扩展,显示的扩展,比如可以做成计时器,并设计一个精美的运动的图形界面,时间到了会自动调用PC喇叭发出报警声等等。。。但是由于时间的原因,所以只做了核心的部分,这不得不说是一个遗憾。此模拟时钟外观简洁明了,功能和实际运用到的时钟的基本功能一样,用起来非常方便、快捷。 1.3设计所需设备

单片机汇编程序电子闹钟

电子闹钟课程设计摘要:本课程设计主要是通过单片机系统,综合运用定时器、中断、数码显示等知识设计一个可定时的电子钟。它包括系统总体方案及硬件设计,软件设计,Proteus软件仿真等部分。 硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器,I/O电路及有关外围电路等然后设计出系统的电路原理图。 合理的软件结构是设计出一个性能优良的单片机应用性系统软件的基础,因此必须充分重视。编写完程序后在用Proteus软件仿真检查设计是否合理。一.课程设计的概况 通过对51单片机的扩展,接键盘,显示器等相应的外围器件。在LED显示器中分成静态显示和动态显示两类,在本设计中主要用了它的动态显示功能,动态显示利用了人视觉的短暂停留,在数据的传输中是一个一个传输的,且先传输低位。键盘是由若干个按键组成的开关矩阵,是一种廉价的输入设备。键盘通常包括有数字键,字母键以及一些功能键。操作人员可以通过对键盘向计算机输入数据,地址,指令或其他的控制命令,实现简单的人机对话。这里采用非编码式键盘。通过51单片机的P1口扩展出独立连接式键盘。外围扩展复位,时钟电路,利用软件源程序代码实现相应的功能。 二.课程设计实现的功能: 1.能显示时时-分分-秒秒。 2.能够设定定时时间,修改定时时间。 3.定时时间到能发出警报声或者启动继电器,从而控制电器的起停。 三.设计方案 使用是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。 本系统采用单片机AT89C51作为本设计的核心元件,利用7段共阴LED

作为显示器件。接入共阴LED 显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间电器的起停时间到,从而控制电器的起停。 电路由下列部分组成:时钟电路、复位电路、控制电路、LED 显示, 报警电路,芯片选用AT89C51 单片机。 系统框图: 四.硬件设计 1.单片机AT89C51 AT89C51是一个低电压,高性能CMOS 型 8位单片机,片内含4KB 的可反复擦写的储器 (RAM ),器件采用 ATMEL 公司的高密 度、非易失性置通用计算 AT89C51提供了 方案。 引脚使用说明: I/O 端口的编程实际上就是根据应用电路的具体功能和要求对I/O 寄存器进行编程。具体步骤如下: l)根据实际电路的要求,选择要使用哪些I/O 端口。 2)初始化端口的数据输出寄存器,应避免端口作为输出时的开始阶段出现不确定状态,影响外围电路正常工作。 3)根据外围电路功能,确定FO 端口的方向,初始化端口的数据方向寄存器。对于用作输入的端口可以不考虑方向初始化,因为FO 的复位缺省值为输入。 4)用作输入的FO 管脚,如需上拉,再通过输入上拉使能寄存器为其内部配置上拉电阻。 5)最后对I/O 端口进行输出(写数据输出寄存器)和输入(读端口)编程,完成对外围电路的相应功能。 几个特殊管脚:

相关主题