当前位置:文档之家› 基于51单片机汇编程序波形发生器实训报告

基于51单片机汇编程序波形发生器实训报告

基于51单片机汇编程序波形发生器实训报告
基于51单片机汇编程序波形发生器实训报告

单片机实训报告

(波形发生器)

一、设计方案

(1)、硬件基本设计思路

本设计方案采用8051单片机和DAC0832将数字信号转化成模拟信号,并通过LM324运算放大器将信号进行处理,最终得到各种波形。其中,波形的切换采用矩阵键盘通过外部中断0来实现。

(2)、软件基本设计思路

首先,将基本波形通过程序进行编写,并调试成功;其次,再编写

按键扫描子程序;最后,将按键程序放入中断中,并进行整体调试,直到调通为止。

(3)、程序说明

二、原理图

波形发生器原理图三、程序

JUCHI E QU 50H

SANJI EQU 51H

FANGB EQU 52H

TIXIN EQU 53H

KU EQU 55H

ORG 0000H ;程序入口

AJMP MAIN ;指向主程序

ORG 0003H ;主程序入口地址

AJMP INTT0 ;指向按键中断程序

ORG 0030H ;中断程序入口地址

MAIN: ;主程序

MOV P2,#00H ;将P2口初始化为0

SETB EA ;开总中断

SETB EX0 ;开启外部中断0

SETB IT0 ;将外部中断0设置为下降沿有效

MOV DPTR,#00FFH ;设置输入寄存器地址

MOV JUCHI,#00H ;初始化

MOV SANJI,#00H

MOV FANGB,#00H

;***************************************************

START:

MOV A,KU ;将键码送累加器A

CJNE A,#00H,W1 ;将累加器A和00H比较,如果相等,则00键按下顺序执行,否则跳到W1再判断01键是否按下

MOV SANJI,#00H ;屏蔽其他波形

MOV FANGB,#00H

MOV TIXIN,#00H

AJMP JCB ;跳转到锯齿波形

W1: CJNE A,#01H,W2 ;判断01键是否按下

MOV JUCHI,#00H ;屏蔽其他波形

MOV FANGB,#00H

MOV TIXIN,#00H

AJMP SJB ;跳转到三角波形

W2: CJNE A,#02H,W3 ;判断02键是否按下

MOV TIXIN,#00H

MOV JUCHI,#00H ;屏蔽其他波形

MOV SANJI,#00H

AJMP FB ;跳转到方波

W3: CJNE A,#03H,W4 ;判断03键是否按下,没有按下,跳转回去继续循环扫描

MOV JUCHI,#00H ;屏蔽其他波形

MOV FANGB,#00H

AJMP TXB ;跳转到梯形波

W4: AJMP START

;**********************************************

INTT0: ;中断程序

;***********键盘扫描子程序KEY*****************

KEY: ACALL KS ;调按键查询子程序,判断是否有键按下JNZ K1 ;有键按下,转移 WEI1跳转

ACALL DELAY ;无键按下,调延时程序去抖

AJMP K4 ;继续查询按键

;***********键盘逐列扫描程序***********************************

K1: ACALL DELAY

ACALL KS ;再次判别是否有键按下

JNZ K2 ;有键按下,转移

AJMP K4

K2: MOV R3,#0FEH ;首列扫描字送R3

MOV R4,#00H ;首列号送R4

K3: MOV A,R3

MOV P2,A ;列扫描字送P2口

MOV P1,#0FFH ;初始化P1口

MOV A,P1 ;读取行扫描值

JB ACC.0,L1 ;第零行无键按下转查第一行为1跳转

MOV A,#00H ;第零行有键按下,行首键号送A

AJMP LK ;转求键号

L1: JB ACC.1,NEXT ;第一行无键按下,转查下一列MOV A,#03H

AJMP LK ;键扫描结束,返回

;************************************************************

NEXT:

INC R4 ;修改列号

MOV A,R3

JNB ACC.2,KEY ;三列扫描完返回按键查询状态

RL A ;未扫描完,改为下列扫描字

MOV R3,A ;扫描字暂存R3

AJMP K3 ;转列扫描程序

LK: ADD A,R4 ;形成键码送A

MOV KU,A

PUSH ACC ;键码入栈保护

;**********************************************

K4:

ACALL KS ;等待键释放

JNZ K4

POP ACC ;键释放,弹栈送A

RETI ;中断返回

;**********按键查询子程序**************************************

KS: ;MOV A,#00H

MOV P2,#00H ;全扫描字送p2口

MOV P1,#0FFH

MOV A,P1 ;读入P1口状态

CPL A ;变正逻辑,高电平表示有键按下

ANL A,#0FH ;屏蔽高四位

RET ;子程序返回

;****************锯齿波***********************

JCB:

MOV A,JUCHI ;转换初值

WW: MOVX @DPTR,A ;D/A转换

INC A ;A自加1

NOP ;延时

CJNE A,#255,WW ;判断A是否加到255,若没有返回到WW继续加MOV JUCHI,A

AJMP START

;******************三角波********************

SJB:

MOV A,SANJI ;转换初值

EE: MOVX @DPTR,A ;D/A转换

INC A

NOP

CJNE A,#255,EE

DEC A

QQ: MOVX @DPTR,A

DEC A

NOP

CJNE A,#00,QQ

MOV SANJI,A

AJMP START

;******************方波********************* FB:

MOV A,FANGB

MOVX @DPTR,A

ACALL DELAY3

ACALL DELAY3

CPL A

MOVX @DPTR,A

ACALL DELAY3

ACALL DELAY3

MOV FANGB,A

POP ACC

AJMP START

;***************梯形波**********************

TXB:

MOV A,TIXIN

SS: MOVX @DPTR,A

INC A

ACALL DELAY3

CJNE A,#255,SS

ACALL DELAY3

ACALL DELAY3

DEC A

ZZ: MOVX @DPTR,A

DEC A

ACALL DELAY3

CJNE A,#00,ZZ

ACALL DELAY3

ACALL DELAY3

MOV TIXIN,A

AJMP START

;*******************************************************1ms DELAY3: MOV R0,#7DH

DEL7: NOP

NOP

DJNZ R0,DEL7

RET

;*******************************************50毫秒延时子程序

DELAY2: MOV R0,#05

DEL5: MOV R1,#10

DEL4: MOV R2,7DH

DEL3: NOP

NOP

DJNZ R2,DEL3

DJNZ R1,DEL4

DJNZ R0,DEL5

RET

;******************************************

END

四、实训总结

通过两周的实训,我们对单片机有了一个基本的认识和了解,我们学

到了怎样从一个设计课题入手去编写相关程序,并通过硬件实现。

单片机实训心得

沧州职业技术学院单片机实训报告 心得体会 为期一周的单片机实训结束了,真是让我受益匪浅啊!学到了很多东西,不管怎么样,先感谢学校给我的这么多机会,真正的学到了东西。 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,我们就学习了单片机这门课程,感觉是有点难。也不知道整个学习过程是怎么过来得,可是时间不等人。不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费我我们学到了很多知识,也让我们对单片机有了更深一步的了解,虽然最后结果是出来了,可这与老师的精心指导是分不开的她引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以老师是功不可没的。 总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。

单片机实习报告

目录一、绪论 二、流水灯 三、拉幕灯 四、六十秒倒计时 五、ARES软件应用 六、心得体会

一、绪论 本次实习利用Proteus7 professional软件中的ISIS软件和ARES软件进行仿真电路连接.利用Keil uvision4进行编程。从而实现对AT89C51单片机的控制。 图1-1 图1-2

图1-3 1、ISIS软件 双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus 7 Professional”→“ISIS 7 Professional”,出现如图2-1所示屏幕,表明进入Proteus ISIS集成环境。 图2-1 Proteus ISIS集成环境 进入之后的界面类似如图2- 2 所示。 图中已经标注各个部分的作用,我们现在就使用软件提供的功能进行工作。

图2-2 ISIS主窗口 选择器件→进行连接→执行 在原理图编辑窗口下面有一排按钮,利用它 可以控制仿真的过程。点击按钮开始仿真,开始以后按钮的小三角 变成绿色,点击按钮单步仿真,点击按钮暂停和继续仿真切换,点击按钮停止仿真。 以简单项目P1P2为例,说明仿真效果。点击开始仿真按钮,电路如 图2-20所示。

图2-20 运行仿真 观察发现,单片机P1,P2,P3口引脚的每一根线的旁边都有一个红色的小方框,表明当前引脚是高电平,如果小方框是蓝色,表明引脚当前是低电平。如果小方框是灰色,说明此引脚是悬空,P1口的8个引脚就是悬空。与电源VCC相连的引脚都是高电平。与地线GND相连的引脚都是低电平。 点击图中的一个按键,对应的发光二极管会亮。放开按键发光二极管就灭。 点住一个按键不放,观察对应的P1口导线旁边的小方框,变成蓝色,和其对应的P2口的输出线旁边的小方框也变成蓝色,对应的发光二极管亮。这是程序的作用,我们的程序就是将P1口的输入传送到P2口进行输出。 2、keil uvision软件 单击桌面上实验软件,选择如图1的图标或者单击屏幕左下方的 “开始”→“程序”→实验软件→keil uvision.然后出现如图二

51单片机串口调试实验(C语言)

//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 /****************************************************************************** * * 实验名: 串口实验 * 使用的IO : P2 * 实验效果: 将接收到发送回电脑上面。 * 注意: ******************************************************************************* / #include void UsartConfiguration(); /****************************************************************************** * * 函数名: main * 函数功能: 主函数 * 输入: 无 * 输出: 无 ******************************************************************************* / void main() { UsartConfiguration(); while(1) { } } /****************************************************************************** * * 函数名:UsartConfiguration() * 函数功能:设置串口 * 输入: 无 * 输出: 无 ******************************************************************************* / void UsartConfiguration() { SCON=0X50; //设置为工作方式1

简单51单片机数字时钟设计

题目:简单51单片机数字时钟设计 院系: 物理与电气工程学院 专业:自动化专业 班级:10级自动化 姓名:苏吉振 学号:2 老师:李艾华

引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个 人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

51单片机练习题

一.闪烁灯 1.实验任务 如图4.1.1所示:在端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1)延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行 某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是 如何设计呢下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个22+2×248=49820× DJNZ R7,$ 2个2×248(498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求秒=200ms,10ms×R5 =200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当端口输出高电平,即=1时,根据发光二极管的单向导 电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发 光二极管L1亮;我们可以使用SETB指令使端口输出高电平,使用CLR 指令使端口输出低电平。 5.程序框图

基于51单片机的电子时钟的设计

目录 0 前言 (1) 1 总体方案设计 (2) 2 硬件电路设计 (2) 3 软件设计 (5) 4 调试分析及说明 (7) 5 结论 (9) 参考文献 (9) 课设体会 (10) 附录1 电路原理 (12) 附录2 程序清单 (13)

电子时钟的设计 许山沈阳航空航天大学自动化学院 摘要:传统的数字电子时钟采用了较多的分立元器件,不仅占用了很大的空间而且利用率也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很难满足设计需求。 单片机是集CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。它体积小、成本低、功能强,广泛应用于智能产品和工业自动化上。而51系列的单片机是各单片机中最为典型和最有代表性的一种。,本次设计提出了系统总体设计方案,并设计了各部分硬件模块和软件流程,在用C语言设计了具体软件程序后,将各个模块完全编译通过过后,结果证明了该设计系统的可行性。该设计给出了以AT89C2051为核心,利用单片机的运算和控制功能,并采用系统化LED显示模块实时显示数字的设计方案,适当地解决了实际生产和日常生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的应用性。 关键字:AT89C2051,C语言程序,电子钟。 0前言 利用51单片机开发电子时钟,实现时间显示、调整和闹铃功能。具体要求如下: (1)按以上要求制定设计方案,并绘制出系统工作框图; (2)按要求设计部分外围电路,并与单片机仿真器、单片机实验箱、电源等正确可靠的连接,给出电路原理图; (3)用仿真器及单片机实验箱进行程序设计与调试;

(4)利用键盘输入调整秒、分和小时时刻,数码管显示时间; (5)实现闹钟功能,在设定的时间给出声音提示。 1总体方案设计 该电子时钟由89C51,BUTTON,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,利用单片机内部定时计数器0通过软件扩展产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。闹钟和时钟的时分秒的调节是由一个按键控制,而另外一个按键控制时钟和闹钟的时间的调节。 图1 系统结构框图 该电子时钟由STC89C51,BUTTON,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,晶振电路的晶振频率为12MHZ,使用的定时器/计数器工作方式0,通过软件扩展产生的一秒定时,达到时分秒的计时,60秒为一分钟,60分钟为一小时,24小时为一天,又重00:00:00开始计时。没有按键按键按下时,时钟正常运行,当按下调节时钟按键K1,就会关闭时钟,当按下闹钟按键K3时时钟就会进入设置时间界面,但是时钟不会停止工作,按K2键,,就可以对时钟和闹钟要设置的时间进行调整。 2硬件电路设计

51单片机实训报告

“51单片机”精简开发板的组装及调试实训报告

为期一周的单片机实习已经结束了。通过此次实训,让我们掌握了单片机基本原理的基础、单片机的编程知识以及初步掌握单片机应用系统开发实用技术,了解“51”单片机精简开发板的焊接方法。同时培养我们理论与实践相结合的能力,提高分析问题和解决问题的能力,增强学生独立工作能力;培养了我们团结合作、共同探讨、共同前进的精神与严谨的科学作风。 此次实训主要有以下几个方面: 一、实训目的 1.了解“51”精简开发板的工作原理及其结构。 2.了解复杂电子产品生产制造的全过程。 3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践概念。4.能运用51单片机进行简单的单片机应用系统的硬件设计。 5.掌握单片机应用系统的硬件、软件调试方法 二、实验原理 流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 它的电气性能指标:输入电压:DC4.5~6V,典型值为5V。可用干电池组供电,也可用直流稳压电源供电。 如图所示: 本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。 三、硬件组成 1、晶振电路部分 单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振的瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。 2、复位端、复位电路 给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,时如果手按着一直不放,系统将一直复位,不能正常。当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各

单片机实习报告

关于单片机应用实习的实习报告 一、实习目的 本次实习的目的在于加深对MCS-51单片机的理解,初步掌握单片机应用系统的设计方法;掌握常用接口芯片的正确使用方法;强化单片机应用电路的设计与分析能力;提高学生在单片机应用方面的实践技能;培育学生综合运用理论知识解决问题的能力,力求实现理论结合实际,学以至用的原则。 二、设计题目: 单片机数据采集系统设计 三、功能描述 1.实时采集0-5V的电压信号; 2.将采集的0-5V的电压信号实时显示; 3.可以轮流采集8路通道,或指定通道数据; 4.可以设定报警上下限,并报警。 四、方案设计 4.1系统分析 根据系统功能要求,可将系统组成结构分成四大部分。单片机控制中心、键盘接口。其中,单片机控制中心是核心。MCU根据按键输入,可切换不同的显示模式或设置不同的参数。数码显示管第2至4位将实时采集的0~5V电压,数码管第1位显示指定通道数。通过按键可切换到设定电压上下限报警的模式。由于我组单片机实验板缺少烽鸣器,因此利用LED灯来报警。 以下是系统组成结构图: 图1 系统组成结构图

五、硬件电路设计 5.1 单片机最小系统设计 最小系统包括CPU时钟与复位电路,其原理图如下: 图2单片机最小系统设计 5.2 显示电路设计 数码管主要是用于数字的显示,图中采用共阴极。电源+5V通过470欧的电阻直接给数码管的7个段位供电,P0.0-P0.7对应了两个接数码管的a,b,c,d,e,f,g和小数点位p,P1.0,P1.1,P1.2,P1.3接位选码。其原理图如下: 图3 显示电路设计

其原理图如下: 图4 按键电路设计 5.4 A/D转换电路设计 其原理图如下: 图5 A/D转换电路设计

基于51单片机的电子时钟设计源程序

#include unsigned char DispBuf[6]; //时间显示缓冲区 unsigned char Disdate[6]; //日期显示缓冲区 unsigned char DisSec[6]; //秒表缓冲区 struct //设定时间结构体 { unsigned char Hour; unsigned char Min; unsigned char Sec; }Time; struct //设定日期结构体 { unsigned char Year; unsigned char Month; unsigned char Days; }Date; struct //设定毫秒结构体 { unsigned char Minite; unsigned char Second; unsigned char MilliSec; }Millisecond; unsigned char point=0; unsigned char point1=0; unsigned char point2=0; unsigned char Daymount; unsigned char Daymount1; unsigned char T0_Int_Times=0; //中断次数计数变量 unsigned char Flash_flag=0; //闪烁标志,每半秒闪烁 unsigned char Flash_flag1=0; //闪烁标志,每半秒闪烁 unsigned char DisPlay_Back=0; //显示缓冲区更新备份,如果显示缓冲区更新则跟闪烁标志不一致 unsigned char DisPlay_Back1=0; //显示缓冲区更新备份,如果显示缓冲区更新则跟闪烁标志不一致 unsigned char i,j; unsigned char SetMillisecond; //启动秒表 code unsigned char LEDCode[]={0x01,0xd7,0x22,0x82,0xc4,0x88,0x08,0xc1,0x00,0x80}; //数码管显示代码 code unsigned char ErrorLEDCode[]={0x01,0xe7,0x12,0x82,0xc4,0x88,0x08,0xc1,0x00,0x80};//绘制错误图纸的数码管显示代码 void DisPlayBuf(); void ChangeToDispCode(); void ChangeToDispCode1(); void changedate(); // 调日期 void displaydate(); // 显示日期 void makedays(); //确定每个月的日期 void runSec();

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 姓名:学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;显示精度伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为 1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计#include<> #include""

#define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4; sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) {

51单片机电子时钟设计报告

电子时钟实验报告 全部代码在文档末尾:51单片机,LCD1602液晶显示屏平台下编程实现,可直接编译运行 目录: 一,实验目的 (1) 二,实验要求 (2) 三,实验基本原理 (2) 四,实验设计分析 (2) 五,实验要求实现 (3) A.电路设计 (3) 1. 整体设计 (3) 2. 分块设计 (4) 2.1 输入部分 (4) 2.2 输出部分 (5) 2.3 晶振与复位电路 (5) B.程序设计 (6) B.1 程序总体设计 (6) B.2 程序主要模块 (6) 五.实验总结及感想 (8) 一,实验目的 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以电子钟是以其小巧,价格低廉,走时精度高,使用方便,

功能多,便于集成化而受广大消费的喜爱,得到了广泛的使用。 1. 学习8051定时器时间计时处理、按键扫描及LCD液晶显示的设计方法。 2. 设计任务及要求利用实验平台上LCD1602液晶显示屏,设计带有闹铃功能的数字时钟 二,实验要求 A.基本要求: 1. 在LCD1602液晶显示屏上显示当前日期,时间。 2. 利用按键可对时间及闹玲进行设置,并可显示设置闹玲的时间。闹玲时间到蜂鸣器发出 声响,一分钟后闹铃停止。 B.扩展部分: 1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)实现年月日时分秒的调整,星期准确的随着日期改变而改变进行显示。 2.定时功能(设定一段时间长度,定时到后,闹铃提示) C.可扩展部分: 1.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调) 2.可进行备忘录提示,按照年月日,可在设定的某年某月进行闹铃提示。 三,实验基本原理 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20,每中断一次中断计数初值加1,当减到20时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了,是否一天到了,是否一个月到了,是否一年到了。 将时间在LCD液晶屏上显示,降低了程序的编写难度。LCD的固定显示特性是我们省去了数码管的动态扫描显示。 四,实验设计分析 针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

基于单片机的万年历实习报告

基于单片机的万年历实习报告

————————————————————————————————作者: ————————————————————————————————日期:

桂林理工大学信息科学与工程学院“电子系统设计创新与实践” 课程设计(实习)报告 题目: 具有温湿度测量功能的万年历设计专业(方向):电子信息工程 班级:电信二班 指导老师:蒋存波

2016年3月27日 目次 1. 绪论----------------------------------------------- 1 2. 总体设计方案--------------------------------------- 2 2.1 技术方案比较----------------------------------- -- 2 2.2总体技术方案------------------------------------- 3 3.硬件系统设计---------------------------------------- 4 3.1 硬件总体原理框图--------------------------------- 4

3.2关键元件介绍-------------------------------------- 4 3.2.1 LCD602显示屏-------------------------------- 4 3.2.3 DS1302时钟芯片------------------------------ 7 3.2.2 SHT10温湿度感应器--------------------------- 9 3.3 硬件设计------------------------------------------ 10 3.3.1 复位电路设计-------------------------------- 10 3.3.2晶振电路设计-------------------------------- 10 3.3.3 时钟芯片电路设计---------------------------- 10 3.3.4 温湿度感应器模块电路设计-------------------- 11 3.3.5按键模块电路设计---------------------------- 11 3.3.6 LCD1602显示模块电路设计--------------------- 11 3.3.7 电量检测报警电路设计------------------------- 12 3.3.8 蜂鸣器报警电路设计--------------------------12 3.3.6 总体电路原理图------------------------------- 12 4. 软件系统设计------------------------------------------13 4.1 软件功能设计-------------------------------------- 13 4.2 程序设计总体方案----------------------------------13 4.2.1 总体设计思路--------------------------------- 13

51单片机的电子时钟设计

基于51单片机的电子时钟设计 摘要:本文介绍了基于51单片机的电子时钟的设计,从硬件和软件两个方面给出了具体实现过程。该时钟的设计采用功能分块的思想方法,将硬件电路划分为开关电路,显示驱动电路和数码管电路等若干独立模块,而软件的实现则由闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等组成。文中给出了各个模块的电路图,并用Proteus的ISIS软件对电子时钟系统的各个功能进行了仿真,并给出了相应的仿真结果图像。 关键词:单片机;电子时钟;键盘控制 Electronic Clock Design Based on 51 Single-chip *** Shandong Institute of Business and Technology , 264005 Abstract:This paper introduces the electronic clock design based on 51 single-chip microcomputer, and it provides us specific implementation process from aspects of hardware and software. This clock is designed by the method of function blocks. In hardware, it’s circuit is divided into switch block, display drive block and digital control block. However, the software consist of the program of alarm clock, time display, date display, stopwatch display, time adjust, timing adjustment, the alarm clock adjustment, time delay and so on. Circuit diagrams of each module is also given and the corresponding simulation image of this clock produced by software of Proteus is also showed in this paper. Key words:single chip microcomputer; electronic clock;Keyboard control 一,引言 1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,

C51单片机定时器及数码管控制实验报告

昆明理工大学信息工程与自动化学院学生实验报告 ( 201 —201学年第1 学期) 课程名称:单片机技术 开课实验室: 年月日

一、实验目的 1. 掌握定时器 T0、T1 的方式选择与编程方法,了解中断服务程序的设计方法, 学会实时程序的调试技巧。 2. 掌握 LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别就是外部中断请求 0、外部中断请求 1、定时器/计数器 0 溢出中断请求、定时器/计数器 0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器 TCON 与 SCON 中。当中断源请求中断时,相应标志分别由 TCON 与SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在同一优先级别中,靠内部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器 IE、IP、TCON (用六位)与 SCON(用二位), 分别用于控制中断的类型、中断的开/关与各种中断源的优先级别。中断程序由中断控制程序(主程序)与中断服务程序两部分组成: 1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过 interrupt m 进行修饰。在 C51 程序设计中,当函数定义时用了 interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段与尾段,并按 MCS-51 系统中断的处理方式自动把它安排在 程序存储器中的相应位置。 在该修饰符中,m 的取值为 0~31,对应的中断情况如下: 0——外部中断 0 1——定时/计数器 T0 2——外部中断 1 3——定时/计数器 T1 4——串行口中断 5——定时/计数器 T2 其它值预留。 89C51 单片机内设置了两个可编程的 16 位定时器 T0 与 T1,通过编程,可以设定为定时器与外部计数方式。T1 还可以作为其串行口的波特率发生器。 2. 定时器 T0 由特殊功能寄存器 TL0 与 TH0 构成,定时器 T1 由 TH1 与TL1 构成, 特殊功能寄存器 TMOD 控制定时器的工作方式,TCON 控制其运行。定时器的中断由中断允许寄存器 IE,中断优先权寄存器 IP 中的相应位进行控制。定时器 T0 的中断入口地址为 000BH,T1 的中断入口地址为 001BH。 定时器的编程包括: 1) 置工作方式。 2) 置计数初值。

51单片机实习报告

(电子工艺实习) 实习报告 院(部):轨道交通学院 实习地点:工程训练中心D309 班级:自动化141 学生姓名:巩龙波学号140816112 指导教师:张吉卫 时间:2015 年11 月9 日到2015 年11 月13 日 山东交通学院

目录 1. 555电路控制二极管闪烁 (1) 1.1 焊接注意事项 (1) 1.2 设计内容与步骤 (1) 1.2.1 设计电路 (1) 1.2.2 画实物电路图 (1) 1.2.3 焊接成果显示 (2) 1.3 设计材料与成果要求 (2) 1.3.1 设计材料 (2) 1.3.2 实验成果 (2) 2. 555单稳态触发器 (3) 2.1 555定时器工作原理 (3) 2.2 555单稳态触发器 (3) 2.3 画实物电路图 (3) 2.4 实验成果 (3) 3. 万用表的组装与应用 (3) 3.1 实验仪器 (3) 3.2 实验原理 (4) 3.3 试验部件与检测方法 (4) 3.4 安装调试与故障检测 (4) 3.4.1安装 (5) 3.4.2调试与故障检测 (5) 3.5 焊装成果显示 (5) 4 实践收获与体会 (6) 5 实验总结 (6)

实习任务

1.555电路控制二极管闪烁 1.1焊接注意事项 ①掌握好加热时间 在保证焊料润湿焊件的前提下时间越短越好。 ②保持合适的温度 保持烙铁头在合适的温度范围。一般经验是烙铁头温度比焊料熔化温度高50℃较为适宜。 ③用烙铁对焊点加力加热是错误的。 会造成被焊件的损伤,例如电位器、开关、接插件的焊接点往往都是固定在塑料构件上,加力的结果容易造成元件失效。 1.2设计内容与步骤 1.2.1设计电路 1.2.2画实物电路图

51单片机实验课题集

51单片机实验课题设计要求 1.1课程设计的总体要求 本课程设计是在理论课程学习和软件设计的基础上,对51单片机硬件系统进行了解和研究,使学生更深入的掌握51单片机开发技术,培养学生面对实际课题,发现问题、分析问题和解决问题,提高学生的实验动手能力。设计根据实验大纲提供的题目要求,选择适当的课题,并通过课题资料收集、原理分析、理论计算、实际编程、系统调试、测试和故障排除,解决在实际设计中的问题,使设计系统能正常工作,有能力的同学可以超出题目要求任意发挥设计。 (1)基本要求: 根据课题要求,研究51单片机实验(如AT89S51_V1.4等)开发板或其它实验开发板的功能和实验样例,学习和掌握keil集成开发环境或Medwin集成开发环境,在此基础上仔细研究课题功能,重新设计实验所需要的电气原理图,编写相对应的应用程序,实现其功能,学生课题实验的优劣可以从以下几个标准衡量: 1.只会使用标准测试程序和资源实现课题部分功能; 2.使用标准测试程序及其他资源实现部分功能; 3.通过修改标准程序实验全部课题基本要求者; 4.完全自主编程实现全部课题基本要求者; 5.软硬件技术应用自如,超越课题要求者。 (2)发挥要求: 在完成本人选题的基本要求前题下,完成发挥部分要求,并具有新内容的自主 发挥和创新,并取得良好效果。 (3)分类标准: 1.完成了实验(1)的全部要求,并熟练运用开发工具。 2.在完成实验(2)的部分要求,并具有创新内容。 1.2分组和实验注意事项 本实验提供的实验课题根据教学要求组成设计小组,进行分工合作,实验工作要细心认真、防止意外,有问题及时向指导老师反映,同学间可以通过研讨、互相学习解决实验中的问题。 每组同学实验过程包括: (1)听课,了解实验方法 (2)调研和了解课题,进行课题的方案选择 (3)学习开发工具,包括实验板,编程软件,仿真软件等 (4)学习汇编语言以及C语言在51编程上的使用 (5)学习系统测试、调试和故障排除,功能实现 (6)自主实验,包括课题实现和相关资料整理提交 1.3报告要求 (3)基本要求:写明实验内容和方法,画出所用部分资源的原理图等。 (4)提高要求:说明选题依据,资源的选择和该资源在设计中的功能说明,原理图设计,程序结构框图和说明,操作使用说明。 (5)发挥部分:提出设计思想,设计原理图,提供源程序,说明创新点。提供程序

基于51单片机的数字时钟设计_毕业设计

基于51单片机的数字时钟设计 目录 摘要 (1) Abstract (2) 第一章绪论 (3) 1.1 数字时钟设计的背景 (3) 第二章AT89C51单片机简介 (3) 2.1 单片机介绍 (3) 2.2 单片机的应用特点 (4) 2.3 单片机的应用领域 (4) 2.4 单片机的中断与定时系统 (4) 2.4.1 MCS-51单片机中断系统 (4) 2.4.2 MCS-51 单片机的定时器/计数器 (6) 2.4.3 MCS-51定时器/计数器的四种工作方式 (6) 2.5 AT89C51引脚功能介绍 (7) 第三章设计方案 (8) 3.1 主程序 (8) 3.2 数码管显示模块 (9) 3.3 定时器计数器T0中断服务程序 (9) 3.4按键处理模块 (10) 第四章硬件电路设计 (10) 4.1 复位电路 (10) 4.2 时钟电路 (11) 4.3 按键电路 (12) 4.4 数码管显示电路 (13) 4.5 电源电路设计 (13) 第五章软件设计与程序代码 (14) 5.1 软件选择与介绍 (14) 5.1.1 软件介绍 (14) 5.1.2 Proteus7.8的特点 (15) 5.2 软件仿真电路全图 (15) 5.3 源程序代码 (16) 第六章结论 (20) 参考文献 (21) 致谢 (22)

摘要 近几年,单片机在各个领域得到广泛的应用。从工业到人们的日常生活,大部分的科技产品都是通过单片机来控制。在它问世之前,自动控制设备得不到广泛的应用,这是因为控制设备的体积庞大,耗电量大,价格昂贵。在第一台微处理器成功研制不久,第一个单片机就问世了。因为其小巧的体积,低功耗,以及高效的性能,单片机受到了大家的欢迎。 本设计利用Atmel公司的AT89C52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用C语言进行软件编程,并用Proteus软件进行演示、验证。主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机80C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机的数字电子时钟。它的计时周期为24小时,显满刻度为“23时59分59秒”,且配有4个独立键盘,可以灵活地调节时间和日期,并具有一定的扩展性。 关键词:单片机,数字时钟,动态显示,LED数码管显示,独立按键

相关主题
文本预览
相关文档 最新文档