单片机实验程序报告(北交大)
- 格式:docx
- 大小:108.12 KB
- 文档页数:26
单片机实训报告一、实训目的本次单片机实训的目的在于通过实际操作和项目实践,深入理解单片机的工作原理和应用开发,提高自身的硬件设计能力、软件编程能力以及解决实际问题的能力。
同时,培养团队合作精神和创新思维,为今后从事相关领域的工作打下坚实的基础。
二、实训设备在本次实训中,我们使用了以下主要设备:1、单片机开发板:用于实验和项目的开发与调试。
2、计算机:安装相关的编程软件和开发工具。
3、示波器:用于观察电路中的信号波形。
4、万用表:用于测量电路中的电压、电流等参数。
三、实训内容1、单片机基础知识学习首先,我们对单片机的基本结构、工作原理、指令系统等进行了系统的学习。
了解了单片机的内部组成,包括中央处理器(CPU)、存储器、输入输出端口等。
通过学习指令系统,掌握了如何使用汇编语言或 C 语言对单片机进行编程控制。
2、硬件电路设计在硬件电路设计方面,我们学习了如何根据实际需求设计单片机的最小系统,包括电源电路、时钟电路、复位电路等。
同时,还掌握了如何扩展外部存储器、输入输出设备等。
通过实际绘制电路图和制作电路板,提高了我们的硬件设计能力和动手实践能力。
3、软件编程在软件编程方面,我们使用了汇编语言和 C 语言两种编程方式。
通过编写简单的程序,如点亮 LED 灯、控制数码管显示、实现按键输入等,逐渐熟悉了单片机的编程方法和技巧。
同时,还学习了如何使用中断、定时器、串口通信等功能,提高了程序的复杂程度和实用性。
4、项目实践在项目实践环节,我们分组完成了一个基于单片机的温度控制系统的设计与实现。
该系统通过温度传感器采集环境温度,经过单片机处理后,控制风扇的转速和加热装置的工作状态,从而实现对环境温度的自动控制。
在项目实践过程中,我们充分运用了所学的知识和技能,从系统方案设计、硬件电路搭建、软件编程调试到系统测试优化,每个环节都进行了精心的设计和认真的实施。
四、实训过程在实训开始阶段,我们首先进行了单片机基础知识的学习和实验。
单片机课程设计自适应屏幕亮度调节班级:自动化摘要:本设计是基于单片机的的液晶屏幕亮度自动调节系统,如今市场上大多数电子设备的显示屏都是液晶的,虽然相比于传统电子设备的屏幕,它具有功耗小,辐射小(几乎没有辐射)等优点,但是由于它的亮度过高,反而更容易是我们的眼睛变得疲劳,造成视力下降,甚至产生头痛等症状。
基于此原因,我设计出了一个比较简易的液晶屏幕亮度自动调节装置,它通过根据所处环境中的光的亮度,来自动调节屏幕的背光的亮度,而不是使屏幕一直保持在同一个亮度,通过自动调节,在一定程度上可以使得它的功耗进一步减少,此外最重要的是通过自适应亮度调节,可以使我们(观察者)在浏览屏幕内容的时候,眼睛更加舒服,减少了亮度不适带来的眼睛疲劳,保护了我们的视力。
关键词:单片机技术、自动调节一、实验设计目的学习并掌握单片机I/O口的基本输入输出功能;学习信号处理中比较常用的A/D和D/A的过程处理;学习单片机内部定时器的操作;学习并掌握液晶屏1602的显示操作;学习并掌握光敏电阻的使用方法;二、设计任务及要求以单片机为核心处理部件,根据液晶屏设备所处的环境来自动调节屏幕背光亮度;除了自动调节功能外,出于特殊情况,自动调节后的屏幕亮度可能不能满足我们的要求,这时就需要手动调节屏幕亮度,所以设计中还需要一个开关来负责切换自动调节功能和手动调节功能,在自动调节功能中,有两个按钮负责控制亮度增大或亮度减小。
三、硬件设计1.光敏部分和A/D处理此部分是根据当前所处环境的光的强度,转化成一个8位的数字量,其中这个数字量是自己定义的,然后送到89C52芯片中进行处理。
原理框图如下:光敏部分提取电压ADC0809转化电压为数字量74LS373锁存器89C52处理电路原理图(用proteus仿真):1)光强的处理部分,出于经济方面的原因,我采用的最原始的光敏电阻,根据光敏电阻的物理特性:随着外界光照强度的变大,光敏电阻的阻值减小。
如上图所示,让它和一个电阻串联,根据分压关系,通过采集定值电阻两端的电压,来大致判断光线强度的变化。
单片机实验报告第一篇:单片机实验报告单片机实验报告一、实验目的1.熟练使用Keil、Protues两款软件2.通过上机操作,增强个人动手实践能力3.加深对理论知识的理解4.培养运用汇编语言进行初步编写程序的能力二、实验内容1.将片外RAM3050-306FH中数据转移至片内70-8FH中。
要求:可以从Keil或Protues上看到RAM的数据转移结果。
2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。
要求:开发板或Prrotues演示3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。
要求:在Keil或Protues上看到数据转换结果。
4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。
要求:Protues使软件间示波器显示方波。
三、实验程序1.将片外RAM3050-306FH中数据转移至片内70-8FH中ORG 0000H AJMP MAIN 上电,转向主程序ORG 0030H 主程序入口MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1SJMP $ 等待END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮ORG 0000H SJMP MAIN 上电,转向主程序ORG 0003H 外部中断0向量入口AJMP INSER ORG 0030H 主程序入口MAIN: SETB EX0 SETB IT0SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP 允许外部中断0中断选择边沿触发方式开中断等待中断设置循环次数赋初值,设置高电平亮将初值送往P2口延时左移一位判断循环次数,是否跳转到中断返回延时程序DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值MOV TL1,#0F0HSETB ET1 开中断SETB EA CPU开中断SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断ORG 001BH T1中断向量地址CLR TF1 将TF1清零CPL P2.0 P2.0取反输出MOV TH1,#0D8H 重装初值MOV TH0,#0F0HRETI;中断返回END 4.2 查询方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待CLR TF1产生溢出,清标志位CPL P2.0 P2.0取反输出SJMP LOOP 循环END四、实验结果截图1.23.4.14.2第二篇:单片机实验报告实验四、中断交通灯实验林立强1000850116一、实验目的1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。
单片机实验程序实验二8155并行I/O口扩展和动态扫描程序编制1.实验目的(1)掌握8155并行I/O芯片扩展和使用方法(2)掌握数码管动态扫描汇编语言的编制方法2.预习要点(1)8155芯片基础知识(2)51单片机的总线时序、地址译码的原理(3)数码管动态扫描显示方法3.实验设备计算机、单片机实验箱。
4.实验内容基本要求:通过实验板的上的8155(U16)显示电路(在电路板上已经固定连接字形和字位控制线的8155部分),并通过跳线确定8155的地址,在8个LED数码管上依次动态显示数字1~8。
扩展要求:假定30H~33H的存储单元内容为4个字节16进制数,请依序将他们显示在8个LED数码管上根据程序要求做如下程序流程图:主程序流程图:显示子程序流程框图:基本要求编程如下:ORG 0000HAJMP MAINORG 0050HMAIN: MOV SP,#60H ;压栈MOV DPTR, #4100HMOV A,#0FH ;方式控制字0FH送AMOVX @DPTR, A ;8155初始化MOV 70H,#01H ;设置显示缓冲区MOV 71H,#02HMOV 72H,#03HMOV 73H,#04HMOV 74H,#05HMOV 75H,#06HMOV 76H,#07HMOV 77H,#08HLOOP: ACALL DISPLAY ;循环调用显示子程序AJMP LOOPDISPLAY:MOV R0,#70H ;显示缓冲区首地址送R0MOV R3,#0FEH ;字位控制初值送R3LD0: MOV DPTR,#4102HMOV A,#0FFHMOVX @DPTR, A ;B口字位送高,关共阴显示MOV A,@R0MOV DPTR,#DISTABMOVC A,@A+DPTR ;查表MOV DPTR,#4101H ;PA口作字形MOVX @DPTR,AMOV DPTR,#4102H ;PB口作字位MOV A,R3MOVX @DPTR,AACALL DELAY ;延时1msINC R0 ;修正显示缓冲区指针JNB ACC.7,LD1 ;若显示完一遍,则LD1RL A ;字位码左移一位此处A中的值是R3MOV R3,A ;送回R3AJMP LD0 ;显示下一个数码LD1: RET ;此处把每一个八位显示看成一次函数。
单片机实训报告优选范文5篇分享单片)是一种集成电路芯片,是具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
下面就是小编给大家带来的单片机实训报告优选范文5篇分享,希望大家喜欢!单片机实训报告范文(一)前言一周的单片机实训很快就结束咯,在这一周的时间里,我学到了很多关于单片机各方面的知识。
老师在实训课中也教会咯我们很多关于单片机软件编程与硬件设施的知识。
一周的实训中我们一共实训咯好几个项目,通过这几个项目的实训,我们掌握咯一些单片机的汇编语言和硬件调试,达到了很好的效果。
一周时间实训过后,我把之前在课堂上不懂的知识点,通过实际操作的练习,我都搞明白咯。
当然在实训过程中也遇到咯很多问题,就是有时在调试方面不能调试成功,有时程序是没有错误,但是就是调试不好,一直找原因也找不出是什么原因。
希望以后能够拥有更多的实训时间和机会学习单片机。
实训任务一一、实验目的熟悉Keil C51集成开发环境的使用方法二、实验设备及器件IBM PC机三、实验内容按照本书的第2章的2.1节到2.4节内容进行Keil C51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HEX文件。
ORG 8000HLJMP MainORG 80F0HMain:MOV R7,#0LOOP:MOV R6,#0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOP ;延时一台CPL P1.0CPL P1.1CPL P1.2CPL P1.3CPL P1.4CPL P1.5CPL P1.6CPL P1.7SJMP MainEND ;P1.0取反 ;P1.1取反 ;P1.2取反 ;P1.3取反 ;P1.4取反 ;P1.5取反 ;P1.6取反 ;P1.7取反通过该程序实现八盏灯的同时亮和同时灭的功能,更好的掌握汇编指令。
北京交通大学单片机实验报告- 电子时钟单片机课程设计实验报告电子时钟电子时钟、实验目的学习8051定时器时间计时处理、按键扫描及LED 数码管显示的设计方法。
二、设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1.在4位数码管上显示当前时间。
显示格式“时时分分”2.由LED闪动做秒显示。
3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。
当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。
4.拓展:使数字时钟的闹铃为音乐。
(电子音调发生器)三、硬件设计1.显示模块为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示。
方法是将所有位的段选线相应并联,由一个8位I/O 口控制,从而形成段选线的多路复用,同时各位的公共端分别由相应的I/O线控制,实现分时选通硬件电路图如下,图中10k电阻起到限流作用;三极管起到驱动数码管的作用。
若不使用三极管,数码管发光微弱。
'A '' PN1 '£TH2■闹铃模块闹铃声由交流蜂鸣器产生,电路图如下。
当P1.7输出不同频率的方波,.蜂鸣器便会发出不同的声音。
■!—Hfc 415'IP■i a > J-■■r ■• _ ■… . … IB"'81:::汇JQ_ n R§TPTPD外毗FD.右心咏旅円Z.'^E F2咖II 吃砂雄P2 5Jjftl3n e.'^k.[FZz牆铝3.整体硬件电路图四、软件设计1.计时模块利用单片机定时器0完成计时功能。
定 时器0计时中断程序每隔1ms 中断一次并 当作一个计数,每中断一次计数加 1,当 计数1000次时,则表示1s 到了,秒变量 加1。
当秒变量达k ii<iP岖屮 PDJWmprr PH 7-.'fOF3 Wn.iMFSFFT ALEPx LAp= cmpi 」闪 1.T®P 询Ll Pl 3P- 4 n 如n円耳 PJ 咼 p- r>h : wnr TrwSQUNC®R& : 10D -<TDCT到60时,秒变量清零同时分变量加1。
单片机实训报告【三篇】单片机实训报告篇一通过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不足。
相信这对我们以后的学习和工作都会有很大的帮助。
我们一定要在最短的时间里对这些不足加以改正!首先,在这次试训中我被单片机强大的功能所震撼,以前在课堂上完全没有能理解可编程单片机的优越性。
这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活力。
换是我们认识到这次试训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。
特别是protues软件的功能是我们了解了当今开发系统的新方向,简直太不可思议啦!单片机作为一种最简单的软件,与我们的日常生活息息相关,了解一些单片机程序的简单录入是非常必要的。
如:LED显示器、键盘和显示器的应用和原理。
在被刺实训中我们每个人通过一个八位流水灯的制作,使我们深深地体会到了单片机在现实生活中的小小应用,既增强了我们的好奇心,又巩固了我们的理论知识。
更让我们体会到了单片机手动的开始平台的完善与成熟。
只要你有想法,单片机就有可能让他成为现实。
这里我学习完protues软件后的第一感觉是,虽然这软件工作不稳定,但是会有相当不错的效果出来。
这对我以后的工作一定会有帮助的。
在这次试训中不仅只对单片机编程有了新的认识,还对整个单片机的开发平台都有了一厅的了解,这是一笔不错的收获。
通过这几天的试训,使我的感触很深,真实“条条大路通罗马”,要达到目的,不同的人就有不同的方法。
只要你的方法不错!五花八门都可以,而且是各有特色。
走出来的结果都有各自的独到之处。
在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟单片机留给用户的资源是有限的,所以我们要充分利用这些资源,达到更好的效果,这些是我们在以后的学习生活中应值得注意的地方。
在试训中有苦有甜,当我们为一个很难攻破的程序找出路时,心情烦躁,感觉自己很不可理喻,当程序一点一点编好后,自己从心底感觉到一点小小的安慰,看着自己的成果。
单片机实验报告1. 实验背景单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、内存、计时器、I/O接口等功能的集成电路芯片。
它具有体积小巧、功耗低、性能高等优点,在嵌入式系统中应用广泛。
本实验旨在通过对单片机的实际操作,加深对单片机原理及应用的理解。
2. 实验目的本次实验的主要目的是:- 掌握单片机的基础知识,包括单片机的结构、工作原理等;- 学习单片机的编程方法,初步掌握单片机的编程技巧;- 进行简单的单片机应用实验,提高对实际应用的理解。
3. 实验设备与材料实验所需的设备和材料包括:- 单片机开发板;- 计算机;- 连接线等。
4. 实验过程与结果在本实验中,我们使用XXX型单片机开发板作为实验平台,通过连接计算机进行编程。
具体的实验过程如下:4.1 硬件连接将单片机开发板与计算机通过连接线连接,并确保连接正常。
接下来,将我们设计好的电路按照要求连接到开发板的相应引脚上。
4.2 编程使用XXX软件对单片机进行编程。
根据实验要求,编写相应的程序代码,并将代码下载到单片机开发板中。
验证代码是否编译通过,并将运行结果显示在数码管、液晶显示屏等外设上。
4.3 实验结果实验结果根据不同的实验要求而定,可以是对某个外设的控制、信号的采集、数据的处理等。
在实验过程中需记录实验结果,并进行分析。
5. 实验总结通过本次实验,我对单片机的基本原理及应用有了更深入的了解。
掌握了单片机的硬件连接方法和编程技巧,并成功完成了实验要求。
实验结果表明,单片机在各个领域都有广泛的应用前景,对于嵌入式系统的开发起着重要作用。
当然,本次实验只是单片机应用的初步探索,还有很多更深入的研究和应用值得去探索。
在今后的学习与实践中,我将进一步深化对单片机的理解,并将其灵活应用于各种项目中。
6. 参考文献[参考文献1][参考文献2][参考文献3](文章内容仅供参考,具体实验过程和结果以实际情况为准。
)。
微程序控制器实验报告北京交通大学一、实验目的通过看懂教学计算机中已经设计好并正常运行的数条基本指令(例如:ADD、MVRR、RET等指令)的功能、格式和执行流程,然后自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。
其最终要达到:1.深入理解计算机微程序控制器的组成和运行原理;2.深入地学习计算机各类典型指令的执行流程;3.对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;4.学习微程序控制器的设计过程和相关技术。
二、实验内容综合型实验思考题1:在进行56页到59页的实验时,你可能已经发现不同指令在执行的过程中都会经过相同的微地址,也就是说,不同指令的微程序也有公用部分。
请你找出这些公共的微指令,说明它们所做的工作。
答:公共指令如下:(1)微址为00下址为00的指令,所做工作为:给出微程序的首地址并在启动时执行;(2)微址为30下址为3A的指令,所做工作为:完成检查中断请求。
思考题2:总结机器指令和微程序之间的关系。
答:机器指令和微程序之间的关系总结如下:(1)一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。
即,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令编成的微程序进行解释和执行;(2)从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器有关,与此相关也有相对应的硬设备;(3)机器指令是把程序员编写的程序经编译以后成为机器能执行的以二进制码形式表示的指令;在微程序控制的计算机中通过执行一串微指令完成一条指令的功能;思考题3:总结指令的一般流程。
答:流程如下图:设计型实验1设计几条指令的功能、格式和执行流程,设计每条微指令各字段的具体编码值,包括控制码的各字段、下地址字段、形成下址用到的条件码。
写出指令格式、指令功能、执行流程及对应的微程序,确定各步的控制信号。
设计一条新的机器指令,该指令的功能是把一个通用寄存器的内容与一个内存单元ADR中的内容相加,结果保存到另外一个通用寄存器中,即:DR <- [ADR] + SR1.实验课的分组组号:第1组;2.小组要求使用的操作码和微程序首地址:操作码71H,微程序首地址51H;3.新指令的指令格式:双字长指令:1-8位操作码:01110001;9-12位DR:0000;13-16位SR:0000;17-32位ADR:0000 0000 0000 0000。
单片机实习报告(精选12篇)大文斗范文网会员为你整理了“单片机实习报告”12篇范文,希望对你有参考作用。
篇1:单片机实习报告课程设计任务书学生姓名:专业班级:指导教师:工作单位:武汉理工大学题目: 单片机原理与应用初始条件:STC89C52 温度采集芯片DS18B20 数码管MAX232 开关74LS04 仿真软件要求完成的主要任务:1)利用PROTEL等软件进行硬件设计;2)利用Keil uV2软件完成应用系统软件设计;3)利用PROTEUS软件进行仿真设计;4)完成单片机最小系统和应用系统电路板的焊接;5)对电路进行调试;6)利用stc-isp软件完成在系统编程、下载,并完成系统软件调试;7)题目由指导教师提供;8)要求每个学生单独完成硬件软件设计、仿真、焊接、调试任务;9)写出实习报告,实习报告主要包括以下内容:目录、摘要、关键词、基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真结果、实物运行结果照片、结论、参考文献等;10)实习完成后通过答辩;11)答辩时交实习报告电子文档,通过答辩后根据修改意见修改并打印、装订成册。
时间安排:实习时间20xx年12月17日---20xx年12月30日。
指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (3)Abstract (4)1 基本原理 (5)1.1基本原理及原理框图 (5)1.2 STC89C52结构功能介绍 (5)2 方案论证 (7)2.1 数字温度计方案 (7)3 硬件设计 (8)3.1复位电路 (8)3.1.1上电复位 (8)3.1.2按键复位 (8)3.2振荡电路 (9)3.3 单片机最小系统单片机 (10)3.4 显示电路 (10)3.5矩阵键盘电路 (11)3.6 温度采集电路 (11)3.7串口通信电路 (12)3.8总设计电路 (13)4 软件设计 (14)4.1 软件介绍 (14)4.1.1设计软件Protel (14)4.1.2 程序编写软件Keil (14)4.1.3仿真软件Proteus (15)4.2 数码管显示 (15)4.3数字温度计的设计 (16)4.4串口通信的设计 (17)5仿真结果 (18)5.1数字温度计仿真 (18)5.2键盘扫描仿真 (18)6 实物调试结果 (19)7元件列表 (20)8参考文献 (22)9实习日记 (23)10附录 (40)摘要单片微型计算机简称单片机,又称为微型控制器,是微型计算机的一个重要分支。
一、实验内容:设计一个数字时钟,显示范围为00:00:00~23:59:59。
通过5个开关进行控制,其中开关K1用于切换时间设置(调节时钟)和时钟运行(正常运行)状态;开关K2用于切换修改时、分、秒数值;开关K3用于使相应数值加1调节;开关K4用于减1调节;开关K5用于设定闹钟,闹钟同样可以设定初值,并且设定好后到时间通过实验箱音频放出一段乐曲作为闹铃。
选做增加项目:还可增加秒表功能(精确到0.01s)或年月日设定功能。
电路:(只连粗实线部分)二、实验电路及功能说明数码LED显示器电路(不需接线)电子音响电路按键键名功能说明K1 切换键校分后切换到校时校时后切换到时钟状态闹钟设定分值后切换到设定时值闹钟设定时值后切换到时钟状态K2 校时进入校时状态K3 加1键校分或校时的时候使其加1递增K4 减1键校分或校时的时候使其减1递减K5 闹钟设定键进入闹钟设定状态三、实验程序流程图:本实验设计了基于单片机的多功能数字钟的总体方案,对装置软、硬件的设计作了详细研究,并进行了相应的软件和硬件调试。
该数字钟采用AT89C51单片机作为核心控制芯片,完成整点报时、显示、定时功能。
整个系统分为几个小的电路,分别实现各自的功能。
晶振电路,12MHZ晶振和两个30pF 电容构成并连谐振接到X1和X2口。
复位电路,在RST复位输入引脚上接一10uF电容至VCC端,下接一个51K电阻到地。
控制电路,4个按键控制,进行调时,定时,复位操作。
显示电路,用6位7段数码管进行时,分,秒的显示。
装置中软件设计部分包括一个主程序、四个模块程序和二个子程序,各自执行自己的功能,完成定时,调时等设操作。
本文从整体到部分详细介绍了数字钟的设计,在比较重要的部分进行了详细的论述,并且给出了程序框图及说明。
软件程序整个流程图如下:四、实验结果分析定时程序设计:单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。
学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。
二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。
以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。
2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。
六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
单片机原理及应用课程设计报告基于单片机的电子时钟设计摘要:单片机是集中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器T0/T1和多种接口于一体的微控制器。
它体积小、成本低、功能强,特别适用于控制领域,已广泛应用于工业测控、计算机通信、各类仪器仪表和工业自动化中.传统的数字电子时钟采用了较多的分立元器件,不仅占用了很大的空间而且利用率也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很难满足设计需求.利用单片机设计的电子时钟则可以克服传统电子时钟的弊端.本设计拟实现的基本功能为时钟显示,加入定时及秒表拓展功能。
关键词:单片机;电子时钟;闹钟;秒表;C语言一。
背景:1。
1数字电子钟的背景:20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
1.2数字电子钟的意义:数字钟是采用数字电路实现对时,分数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
单片机实验报告范文单片机(Microcontroller)是指一种封装了微处理器(Microprocessor)、存储器和各种输入输出接口电路功能的集成电路。
单片机在电子设计与开发中有广泛应用,可以用于控制和监测各种系统和设备。
本实验报告将介绍在实验中使用单片机所进行的实验步骤和实验结果。
实验目的:1.理解单片机的基本工作原理和功能。
2.掌握单片机的编程和调试方法。
3.应用单片机实现简单的控制功能。
实验仪器和材料:1.单片机开发板2.计算机B数据线4.电源适配器5.LED灯6.麦克风模块7.温度传感器实验步骤:1.准备工作:将单片机开发板与计算机连接,接通电源适配器。
2.熟悉开发工具:安装单片机开发软件,并了解软件的基本功能。
3.学习编程语言:了解单片机的编程语言,例如C语言或汇编语言,并编写简单的程序。
4.硬件连接:将LED灯、麦克风模块和温度传感器连接至开发板的相应引脚。
5.编程实现:根据实验要求,编写相应的程序,控制LED灯、获取麦克风模块的声音信号或获取温度传感器的温度值。
7.实验结果:根据实验要求,记录LED灯的亮灭状态、麦克风模块的声音信号强度或温度传感器的温度数值。
实验结果:通过实验,我们成功地控制了LED灯的亮灭状态,获取了麦克风模块的声音信号强度和温度传感器的温度数值。
在编程实现过程中,我们学会了使用单片机编程语言,了解了一些常用的语法和函数。
在调试测试中,我们可以通过相关的输出或显示结果来判断程序的正确性,及时发现和修复错误。
实验总结:本实验通过单片机开发板和相应的硬件以及编程实现了简单的控制和监测功能。
通过实验,我们深入了解了单片机的基本工作原理和功能,并掌握了一些基本的编程和调试方法。
实验结果表明,我们成功实现了实验要求,并对单片机的应用有了更加深入的理解。
通过这次实验,我们不仅提高了动手实践能力,也增加了对科技发展的看法。
/*-----------------------------------------------------简易电子表-----------------------------------------------------------------------------------------------------------------------------何梦浩--------------------------------------------------------------------*/;*******************************; 初始定义MIAO BIT P3.0 ;秒点位HOU_S BIT P2.0 ;时十位HOU_G BIT P2.1 ;时个位MIN_S BIT P2.2 ;分十位MIN_G BIT P2.3 ;分个位KEY1 BIT P3.2 ;时升一调整键KEY2 BIT P3.3 ;时降一调整键KEY3 BIT P3.4 ;分升一调整键KEY4 BIT P3.5 ;分降一调整键SHAN BIT P1.0 ;秒点闪烁LEDBUS EQU P0 ;显示数据总线SECOND EQU 30H ;秒寄存器MINUTE EQU 31H ;分寄存器HOUR EQU 32H ;时寄存器TIM_1 EQU 33H ;定时器0中断次数TIM_2 EQU 34H ;定时器0中断次数AMINUTE EQU 41HAHOUR EQU 42H;********************************ORG 0000H ;程序开始LJMP INITORG 000BH ;定时器0中断入口地址LJMP TIMER0ORG 0030H ;程序从30H开始;********************************; 单片机初始化INIT:MOV SECOND, #0 ;秒置0MOV MINUTE, #10 ;分置14MOV HOUR, #20 ;开机后显示20:14MOV AMINUTE, #14 ;闹钟分置24MOV AHOUR, #20 ;闹钟时置20MOV TIM_1, #10 ;中断10次为0.5秒MOV TIM_2, #2 ;0.5*2=1秒MOV SP, #60H ;堆栈指针指向60HMOV TMOD, #01H ;定时器0为模式1(16位)MOV TH0, #03CHMOV TL0, #0B0H ;50毫秒初值(晶振12M)SETB E T0 ;定时器0中断允许SETB TR0 ;启动定时器0SETB E A ;开总中断;********************************; 主程序MAIN:LCALL DISP ;调用显示子程序LCALL RINLCALL ANKEYLJMP MAIN ;转LOOP继续检测按键状态;********************************; 定时器0中断服务程序TIMER0:MOV A, #0B1H ;定时器0中断服务子程序ADD A, TL0 ;同步修正MOV TL0, AMOV TH0, #03CH ;重装定时器0初值PUSH ACC ;入栈保护ACC和PSWPUSH PSWDJNZ TIM_1, RETI_1MOV TIM_1, #10 ;中断10次为0.5秒CPL S HAN ;取反闪烁位DJNZ TIM_2, RETI_1MOV TIM_2, #2 ;1秒时间到INC S ECOND ;秒加1MOV A, SECONDCJNE A,#60, RETI_1MOV SECOND, #0 ;秒到60变0INC M INUTE ;分加1MOV A, MINUTECJNE A,#60, RETI_1MOV MINUTE, #0 ;分到60变0INC H OUR ;时加1MOV A, HOURCJNE A,#24, RETI_1MOV HOUR, #0 ;时到24变0RETI_1: POP PSW ;出栈POP ACCRETI;********************************; 时间调整ANKEY:JB KEY2, N1 ;进入时调整LJMP N2 ;进入分调整N1: JB KEY1, L1LJMP L3N2: JB KEY1, L2LJMP L4;----- 时钟时调整-----------------L1:JNB KEY3,HT1JNB KEY4,HT2RET;----- 时升一调整-----------------HT1:LCALL DISP ;调用显示子程序MOV A, HOURCJNE A,#24, HT11MOV HOUR, #0HT11:JNB KEY3, HT1 ;判断按键是否松开INC H OUR ;时加1MOV A, HOURCJNE A,#24, L1MOV HOUR, #0 ;判断时是否到24,时到24变0 AJMP L1;----- 时降一调整-----------------HT2:LCALL DISPMOV A, HOURCJNE A,#0, HT21MOV HOUR, #24HT21:JNB KEY4, HT2 ;判断按键是否松开DEC HOUR ;时减一MOV A, HOURCJNE A,#0, L1MOV HOUR, #24AJMP L1;----- 时钟分调整-----------------L2:JNB KEY3,MT1JNB KEY4,MT2RET;----- 分升一调整-----------------MT1:LCALL DISP ;调用显示子程序JNB KEY3, MT1 ;判断按键是否松开INC M INUTE ;分加一MOV A, MINUTECJNE A,#60, L2 ;判断分是否加到60MOV MINUTE, #0 ;分到60变为0MOV SECOND, #0 ;秒置0INC HOURMOV A, HOURCJNE A,#24, L2MOV HOUR, #0LJMP L2;----- 分降一调整-----------------MT2:LCALL DISP ;调用显示子程序MOV A, MINUTECJNE A,#0, MT21MOV MINUTE, #60MOV A, HOURCJNE A,#0, MT21MOV HOUR, #24MT21:JNB KEY4, MT2 ;判断按键是否松开DEC MINUTE ;分减一MOV A, MINUTECJNE A,#59, MT22 ;判断分是否减到59DEC HOURLJMP L2MT22:CJNE A,#0, L2MOV A, HOURCJNE A,#0, L2MOV HOUR, #24AJMP L2;----- 闹钟时调整-----------------L3:JNB KEY3,AHT1JNB KEY4,AHT2RET;----- 时升一调整-----------------AHT1:LCALL ADISP ;调用显示子程序MOV A, AHOURCJNE A,#24, AHT11MOV AHOUR, #0AHT11:JNB KEY3, AHT1 ;判断按键是否松开INC A HOUR ;时加1MOV A, AHOURCJNE A,#24, L3MOV AHOUR, #0 ;判断时是否到24,时到24变0 AJMP L3;----- 时降一调整-----------------AHT2:LCALL ADISPMOV A, AHOURCJNE A,#0, AHT21MOV AHOUR, #24AHT21:JNB KEY4, AHT2 ;判断按键是否松开DEC AHOUR ;时减一MOV A, AHOURCJNE A,#0, L3MOV AHOUR, #24AJMP L3;----- 闹钟分调整-----------------L4:JNB KEY3,AMT1JNB KEY4,AMT2RET;----- 分升一调整-----------------AMT1:LCALL ADISP ;调用显示子程序JNB KEY3, AMT1 ;判断按键是否松开INC A MINUTE ;分加一MOV A, AMINUTECJNE A,#60, L4 ;判断分是否加到60MOV AMINUTE, #0 ;分到60变为0MOV SECOND, #0 ;秒置0INC AHOURMOV A, AHOURCJNE A,#24, L4MOV AHOUR, #0LJMP L4;----- 分降一调整-----------------AMT2:LCALL ADISP ;调用显示子程序MOV A, AMINUTECJNE A,#0, AMT21MOV AMINUTE, #60MOV A, AHOURCJNE A,#0, AMT21MOV AHOUR, #24AMT21:JNB KEY4, AMT2 ;判断按键是否松开DEC AMINUTE ;分减一MOV A, AMINUTECJNE A,#59, AMT22 ;判断分是否减到59 DEC AHOURLJMP L4AMT22:CJNE A,#0, L4MOV A, AHOURCJNE A,#0, L4MOV AHOUR, #24AJMP L4;********************************; 显示子程序DISP:MOV DPTR, #LEDTAB ;数码管段码表首地址送DPTR MOV A, MINUTE ;分放入ACCMOV B, #10 ;B放入10DIV A B ;A/B,商在A余数在BMOVC A, @A+DPTR ;查表取分十位段码MOV LEDBUS, A ;段码送LEDBUS口显示MOV C, SHANMOV MIAO, C ;秒点闪烁CLR MIN_S ;打开分十位显示ACALL D1MS ;延时1毫秒SETB MIN_S ;关闭分十位显示MOV A, BMOVC A, @A+DPTR ;查表取分个位段码MOV LEDBUS, AMOV C, SHANMOV MIAO, C ;秒点闪烁CLR MIN_G ;打开分个位显示ACALL D1MS ;延时1毫秒SETB MIN_G ;关闭分十位显示MOV A, HOURMOV B, #10DIV A B ;拆分小时的十位和个位JZ DISP0 ;十位为0不显示十位MOVC A, @A+DPTRMOV LEDBUS, ACLR HOU_S ;打开时十位显示DISP0:ACALL D1MSSETB HOU_S ;关闭时十位显示MOV A, BMOVC A, @A+DPTRMOV LEDBUS, ACLR HOU_G ;打开时个位显示ACALL D1MSSETB HOU_G ;关闭时个位显示RETADISP:MOV DPTR, #LEDTAB ;数码管段码表首地址送DPTR MOV A, AMINUTE ;分放入ACCMOV B, #10 ;B放入10DIV A B ;A/B,商在A余数在BMOVC A, @A+DPTR ;查表取分十位段码MOV LEDBUS, A ;段码送LEDBUS口显示CLR MIN_S ;打开分十位显示ACALL D1MS ;延时1毫秒SETB MIN_S ;关闭分十位显示MOV A, BMOVC A, @A+DPTR ;查表取分个位段码MOV LEDBUS, ACLR MIN_G ;打开分个位显示ACALL D1MS ;延时1毫秒SETB MIN_G ;关闭分十位显示MOV A, AHOURMOV B, #10DIV A B ;拆分小时的十位和个位JZ ADISP0 ;十位为0不显示十位MOVC A, @A+DPTRMOV LEDBUS, ACLR HOU_S ;打开时十位显示ADISP0:ACALL D1MSSETB HOU_S ;关闭时十位显示MOV A, BMOVC A, @A+DPTRMOV LEDBUS, ACLR HOU_G ;打开时个位显示ACALL D1MSSETB HOU_G ;关闭时个位显示RET;********************************; 延时子程序D1MS: MOV R7, #2 ;延时1毫秒子程序D_1: MOV R6, #250 ;延时时间估算250*2*2=1000微秒=1毫秒DJNZ R6, $DJNZ R7, D_1RET;***********************************; 判断闹钟子程序RIN:MOV A,HOUR ;比较时CJNE A,AHOUR,EXITMOV A,MINUTE ;比较分CJNE A,AMINUTE,EXITJNB P3.4,STOPCLR P2.4LCALL D1MSEXIT:RETSTOP:SETB P2.4LCALL D1MSLJMP EXIT;********************************; 数码管段码表LEDTAB:DB 0C0H, 0F9H, 0A4H, 0B0H, 99HDB 92H, 82H, 0F8H, 80H, 90HEND/*-----------------------------------------------------简易电子表-----------------------------------------------------------------------------------------------------------------------------何梦浩--------------------------------------------------------------------*/。
单片机程序设计与综合实验目录一、设计目的 (2)二、硬件电路设计 (3)1、主原理图 (3)2、AT89C52引脚级共能说明 (3)3、74LS138引脚图级功能说明 (4)4、74HC573引脚图级功能说明 (4)5、矩阵是键盘电路及功能说明 (5)6、数码管功能说明 (5)三、流程图 (7)1、主流程图 (7)2、判断所按键值流程图 (7)3、动态显示子程序 (8)4、判断有无键按下 (8)四、程序设计 (8)五、心得体会 (13)单片机课程设计报告一、设计题目:简易计算器的设计设计要求:(1)设计实现两位小于100的整数加、减运算;(2)键盘采用4*4的矩阵键盘,键盘安排如下;1 2 3 45 6 7 89 0 + -=(3)输入数据及运算结果采用三位数码管进行显示;设计目的:(1)掌握数码管一位动态扫描的编程方法;(2)掌握矩阵扫描的编程方法;(3)掌握简单数据运算的编程方法二、硬件电路的设计1、原理电路图:图1功能说明:(1)如图1,AT89C52单片机的P0.0 – P0.7接74HC573的输入端,数码管的相同字段接在一起,并分别接在74HC573的输出端(PA0 -–PA7)。
跳线CON3接Vcc,使74HC573处于透明状态(即不锁存),这样由单片机传送的数据即可通过573送到数码管,并显示。
另外,573也可提高驱动能力。
(2)74HC138的输入端A、B、C分别接单片机的P2.0 -- P2.2, 其输出~Y0 -- ~Y7接入数码管的选通信号,这样,通过对P2口不同的赋值,即可选择不同的数码管进行显示。
(3)键盘处的跳线CON3选通J1和J3,使用4*4的矩阵键盘。
其中P3.0 – P3.3为行线,P3.4 – P3.7为列线。
2、各芯片引脚及功能:I、AT89C52图2 AT89C52 引脚各引脚功能:(1)Vcc:电源线,接+5v电源GND:接地线(2)时钟引脚XTAL1:内部振荡电路的反相放大电路的输入端。
实验报告指导老师:付文秀实验课程:单片机实验班级:通信0607班姓名:电子音调发生器一、实验目的1.了解计算机发声原理。
2.熟悉定时器和键盘扫描电路的工作原理及编程方法。
二、设计任务及要求利用实验平台上的开关k0-k7和蜂鸣器设计电子音调发生器,要求:1.利用实验平台上开关k0-k7进行音调选择,即拨动不同的开关产生不同的音调,依次拨动K0~K7,蜂鸣器发出1234567i八个音调。
2.编写2支歌曲,并可进行选择播放。
三、工作原理及设计思路音节由不同频率的方波产生,音节与频率的关系如表1所示。
要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。
利用计时器计时此半周期时间,每当计时到后就将输出方波的I/0反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。
在ZKS-03实验仪上,产生方波的I/O脚选用P1.7,通过跳线选择器JP1将单片机的P1.7与蜂鸣器的驱动电路相连。
这样P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。
另外,音乐的节拍是由延时实现的,如果1拍为0.4秒,1/4拍是0.1秒。
只要设定延时时间,就可求得节拍的时间。
延时作为基本延时时间,节拍值只能是它的整数倍,每个音节相应的定时器初值X可按下法计算:(1/2)*(1/f)=(12/fose)*(216-x)即 x=216-(fose/24f)其中f:音调频率,当晶振fose=11.0592MHz时,音节“1”相应的定时器初值为x,依次可以求得。
硬件连线电路图系统功能说明:可以通过开关K0闭合依次令蜂鸣器发出相应的1234567i 这8个音调;可以通过同时按下K1或K2选择播放两首歌曲,并通过闭合K3选择暂停,打开K3继续播放,K4结束一首VCC歌,再次按下K1或K2将重新播放歌曲。
(由于最初是在开发板上进行实验的,开发板上一共只有四个开关,所以我就设置成了一个开关控制播放8个音阶) 1、 总体设计 系统总体设计框架五键键盘控制P3.2、P3.3、P3.4、P3.1、P3.6状态 系统功能模块图2、 硬件电路设计 电路设计思路在ZKS-03单片机实验仪中,通过5个开关用导线分别与P1和P3口5位直接相连。
点阵式LED显示器一、实验目的1.了解点阵式LED显示原理。
2.掌握单片机与8×8点阵块之间接口电路设计及编程。
3.掌握8155工作原理及与单片机的接口电路设计。
二、设计任务及要求系统设计要求:利用8×8点阵显示屏,自己设计、焊接并调试电路板,实现在单片机的控制下,点阵显示屏显示“电子设计”,显示方式分别为单字循环显示、左右滚动显示、上下滚动显示。
系统功能说明:系统在正常工作模式下为单字循环显示“电子设计”四个字,当按下第一个开关时,点阵显示屏开始上下滚动显示“电子设计”,循环显示三次。
而当按下第二个开关时,点阵显示屏开始左右滚动显示“电子设计”,循环显示三次。
当按下复位开关时,单片机复位,程序重新开始。
三、工作原理及设计思路(1)电路原理图:点阵显示模块的硬件电路设计如图1所示:图1复位电路的基本功能是:系统上电时提供复位信号,在加电瞬间,RST端出现一定时间的高电平,直至系统电源稳定后,撤销复位信号。
如下图:晶振电路如下图:(2)电路设计原理:8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置0电平,某一行置1电平,则相应的二极管就亮;8X8点阵的列输入为C0~C7,行输入为R0~R7,它们通过驱动电路(芯片1416及74LS245)接至发光二极管的阴极和阳极。
要显示某一个字,首先要设计该字的点阵字形,编好行(或列)点阵码,然后在单片机的控制下对点阵进行逐行(或列)扫描。
在人眼的暂存效应下我们会看到完整的字形,从而实现了字体在点阵显示屏上的输出。
(3)设计思路:由于只控制8*8点阵显示屏,故不需要扩展单片机的I/O接口。
考虑到P0口需要接上拉电阻,使得电路较为复杂,因此利用单片机的P1口来控制点阵的行,用P2口控制点阵的列。
(4)芯片原理1.单片机STC89C51RC引脚功能:4KB程序存储器,512B的数据存储器,中断源8个,定时器3个,32位I/O口,有看门狗电路。
单片机程序设计实验报告姓名:学号:专业班级:第二节课:实验一:1357,2468位置的灯交替闪烁一实验要求1357,2468位置的灯交替闪烁。
二硬件连接图与结果三原理简述程序直接控制LED各位置的灯亮灭,时间间隔简单的用了一个延时的语句。
四程序#include<reg51.h>main (){int i;P0=0XAA; //1357四个灯亮for (i=0;i<=25000;i++); //延时程序P0=0X55; //2468四个灯亮for (i=0;i<=25000;i++); //延时程序}五所遇问题与解决方式程序比较简单,没有遇到问题。
实验二:流水灯一实验要求流水灯,一个接一个的灯亮,亮到最后一个后,全部的灯亮,然后重头开始。
二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。
时间间隔简单的用了一个延时的语句。
因为移位时是直接补0,发送低电平不亮,所以直接移位达到要求。
四程序//流水灯#include<reg51.h>main (){int i,j;while(1){P0=0X01; //第1个灯亮for (i=0;i<=30000;i++); //延时程序for(j=0;j<=7;j++) //移位循环程序{P0=P0<<1; //移位for (i=0;i<=30000;i++); //延时程序}P0=0xff; //全亮for (i=0;i<=30000;i++); //延时程序}}五所遇问题与解决方式程序比较简单,没有遇到问题。
实验三:跑马灯一实验要求一个接一个的灯亮,前面亮过的等依旧亮,直到最后一个灯,最后重新开始,循环。
二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。
单片机实验程序实验二8155并行I/O口扩展和动态扫描程序编制1.实验目的(1)掌握8155并行I/O芯片扩展和使用方法(2)掌握数码管动态扫描汇编语言的编制方法2.预习要点(1)8155芯片基础知识(2)51单片机的总线时序、地址译码的原理(3)数码管动态扫描显示方法3.实验设备计算机、单片机实验箱。
4.实验内容基本要求:通过实验板的上的8155(U16)显示电路(在电路板上已经固定连接字形和字位控制线的8155部分),并通过跳线确定8155的地址,在8个LED数码管上依次动态显示数字1~8。
扩展要求:假定30H~33H的存储单元内容为4个字节16进制数,请依序将他们显示在8个LED数码管上根据程序要求做如下程序流程图:主程序流程图:显示子程序流程框图:基本要求编程如下:ORG 0000HAJMP MAINORG 0050HMAIN: MOV SP,#60H ;压栈MOV DPTR, #4100HMOV A,#0FH ;方式控制字0FH送AMOVX @DPTR, A ;8155初始化MOV 70H,#01H ;设置显示缓冲区MOV 71H,#02HMOV 72H,#03HMOV 73H,#04HMOV 74H,#05HMOV 75H,#06HMOV 76H,#07HMOV 77H,#08HLOOP: ACALL DISPLAY ;循环调用显示子程序AJMP LOOPDISPLAY:MOV R0,#70H ;显示缓冲区首地址送R0MOV R3,#0FEH ;字位控制初值送R3LD0: MOV DPTR,#4102HMOV A,#0FFHMOVX @DPTR, A ;B口字位送高,关共阴显示MOV A,@R0MOV DPTR,#DISTABMOVC A,@A+DPTR ;查表MOV DPTR,#4101H ;PA口作字形MOVX @DPTR,AMOV DPTR,#4102H ;PB口作字位MOV A,R3MOVX @DPTR,AACALL DELAY ;延时1msINC R0 ;修正显示缓冲区指针JNB ACC.7,LD1 ;若显示完一遍,则LD1RL A ;字位码左移一位此处A中的值是R3MOV R3,A ;送回R3AJMP LD0 ;显示下一个数码LD1: RET ;此处把每一个八位显示看成一次函数。
DISTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;(共阴极字形表) DELAY: MOV R7,#02H ;1ms延时DELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验中遇到的问题:开始时没有预先在显示缓冲区中存入1~7,故实验显示的数据不是1、2、3、4、5、6、7、8,而是显示缓冲区中之前存在的无规则的一些数据,待向显示缓冲区重新赋值后,显示正常。
扩展要求编程如下:ORG 0000HLJMP MAINORG 1000HMAIN: MOV SP,#50HMOV 30H,#0A1HMOV 31H,#0C2HMOV 32H,#0D3HMOV 33H,#0F4HLCALL TRANMOV DPTR,#4100HMOV A,#0FHMOVX @DPTR,ALOOP: LCALL DISPLAYSJMP LOOPTRAN: MOV R1,#30H ;将30-31H里的十六进制数分成两位存在70-71H中MOV R0,#70HMOV R3,#04LD2: MOV A,@R1ANL A,#0FH ;取出低字节MOV @R0,AINC R0MOV A,@R1ANL A,#0F0H ;取出高字节SWAP A ;高低字节交换,将十六进制数的两位分开存放MOV @R0,AINC R0INC R1DJNZ R3,LD2RETDISPLAY:MOV R1,#0FEH ;显示部分同基本要求MOV R0,#70HMOV A,R1LD0: MOV DPTR,#4102HMOVX @DPTR,AMOV A, @R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#4101HMOVX @DPTR,ALCALL DELAYINC R0MOV A,R1JNB ACC.7,LD1RLAMOV R1,ASJMP LD0LD1: RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79H, 71HDELAY: MOV R7,#02HDELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY2RETEND实验三查询式键盘实验1.实验目的(1)掌握查询式按键检测方法(2)掌握数码管动态扫描汇编语言的编制方法2.预习要点(1)按键检测的基本原理(2)数码管动态扫描显示方法3.实验设备计算机、单片机实验箱。
4.实验内容基本要求:接实验二的实验内容,通过实验板的4个按键电路,将按键的检测线连接到CPU 的p1.0~p1.3上。
当按下按键1到4时,在实验板显示电路(U16)分别对应显示1,2,3,4。
扩展要求:30H~33H中放置字母A~D,字母在LED上循环显示,默认的循环周期为50ms,当按下按键1到4时,A~D循环间隔分别变为1至4秒,无按键按下时,恢复默认的时间间隔。
根据程序要求得到如下程序流程图:基本要求编程如下:ORG 0000H MAIN: MOV 70H,#0MOV 71H,#1MOV 72H,#2MOV 73H,#3MOV 74H,#4MOV DPTR,#4100HMOV A,#03HMOVX @DPTR,A READKEY:MOV A,#0FFHMOV P1,AMOV A,P1JNB ACC.0,RP10JNB ACC.1,RP11JNB ACC.2,RP12JNB ACC.3,RP13 OFF: MOV R0,#70HMOV R3,#0FFHSJMP LD0RP10: MOV R0,#70HMOV R3,#0FEHAJMP LD0RP11: MOV R0,#71HMOV R3,#0FEHAJMP LD0RP12: MOV R0,#72HMOV R3,#0FEHAJMP LD0RP13: MOV R0,#73HMOV R3,#0FEHAJMP LD0LD0: MOV A,R3MOV DPTR,#4102HMOVX @DPTR,AMOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#4101HMOVX @DPTR,AACALL DELAYAJMP MAINTAB: DB 06H, 5BH, 4FH, 66HDB 6DH, 7DH, 07H, 7FH DELAY: MOV R7,#02H DELAY1:MOV R6,#0FFH DELAY2: DJNZ R6,DELAY2DJNZ R7,DELAY1RETSJMP$END扩展要求编程如下:ORG 0000HLJMP MAINORG 1000HMAIN: MOV SP,#60HMOV 30H,#0AHMOV 31H,#0BHMOV 32H,#0CHMOV 33H,#0DHMOV A,#0FHMOV DPTR,#4100HMOVX @DPTR,AREADKEY:MOV A,#0FFHMOV P1,AMOV A,P1JNB ACC.0,RP10JNB ACC.1,RP11JNB ACC.2,RP12JNB ACC.3,RP13 OFF: MOV R7,#50AJMP DISPLAY RP10: MOV R7,#100AJMP DISPLAY RP11: MOV R7,#200AJMP DISPLAYRP12: MOV R7,#300AJMP DISPLAYRP13: MOV R7,#400AJMP DISPLAYDISPLAY: MOV R0,#30HMOV R2,#0FEHLD: MOV A,@R0MOV DPTR,#TABMOV A,@A+DPTRMOV DPTR,#4101HMOVX @DPTR,AMOV DPTR,#4102HMOV A,R2MOVX @DPTR,AACALL DELAYINC R0JNB ACC.3,LD1RL AMOV R2,AAJMP LDLD1: AJMP READKEYDELAY : MOV R6,#500DELAY1: DJNZ R6,DELAY1DJNZ R7,DELAYRETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79H, 71H实验四利用中断控制LED灯1.实验目的(1)掌握单片机中断的基本原理。
(2)掌握单片机中断程序的编制方法。
2.预习要点(1)单片机中断基本原理(2)中断程序编制方法3.实验设备计算机、单片机实验箱、信号发生器。
4.实验内容基本要求:将信号发生器输出的脉冲信号连接到CPU的INT0上,将CPU的P1.0到P1.7和8个红色LED灯连接,脉冲信号为5V、100Hz,每输入一百个脉冲LED灯亮一次,并且LED灯顺序循环移位一次,形成跑马灯。
扩展要求:在LED数码管上与跑马灯同步显示1~8,顺序为P1.0对应的灯亮时对应显示数字1,依次类推。
根据程序要求得到如下程序流程图:主程序流程图中断子程序流程图基本要求编程如下:ORG 0000HLJMP MAINORG 0003HLJMP L1MAIN:SETB IT0SETB EX0SETB EAMOV R0,#00HMOV P1,#0FEHL2:SJMP L2L1:INC R0CJNE R0,#64H,L3MOV R0,#00HMOV A,P1RL AMOV P1,AL3:RETI扩展实验程序:ORG 0000HAJMP MAINORG 0003HAJMP EXINT0ORG 0060HMAIN: MOV SP,#60HSETB IT0SETB EX0SETB EAMOV 30H,#0MOV 31H,#1MOV 32H,#3MOV 33H,#2MOV 34H,#5MOV 35H,#6MOV 36H,#7MOV 37H,#8 ;缓存器中送入1--8MOV R3,#00H ;用于计脉冲MOV P1,#00H ;关LED显示MOV R4,#01H ;控制跑马灯MOV R0,#30HMOV R5,#0FEHMOV R2,#8MOV DPTR,#4100HMOV A,#03HMOVX @DPTR,A ;方式控制字送8155命令口SJMP $EXINT0:INC R3CJNE R3,#64H,NEXT ;计算脉冲达到100MOV R3,#00H ;清零,重新计数MOV A,R4MOV P1,A ;跑马灯显示RL AMOV R4,ADISPLAY1:MOV R0,#30HMOV R5,#0FEHMOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#4101HMOVX @DPTR,AMOV DPTR,#4102HMOV A ,R5MOVX @DPTR,AACALL DELAY ;INC R0DJNZ R2,NEXTMOV R2,#8MOV R0,#30HNEXT: RETITAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDELAY:MOV R7,#05HDELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验五单相方波波形发生器1.实验目的(1)掌握单片机定时器基本原理和使用方法。