河南理工单片机程序设计实验报告 精品
- 格式:doc
- 大小:35.01 KB
- 文档页数:3
单片机实验报告引言:单片机是一种集成了处理器、存储器和输入输出设备的微型计算机,广泛应用于电子设备中。
本实验通过对单片机的学习和实践,探索了其原理和应用。
一、实验目的本次实验的目的是熟悉单片机的基本原理和操作方法,掌握单片机的编程语言和开发工具,实现简单的实时控制和数据采集。
二、实验装置及材料1. 单片机:我们选择了常用的51系列单片机,拥有较好的性能和兼容性。
2. 开发板:用于实验中运行和调试所写的程序。
3. 传感器:温度传感器、光照传感器等,用于实现数据采集。
4. LED灯和蜂鸣器:用于实现实时控制和输出。
5. 连接线:将单片机与传感器、开发板等连接起来。
三、实验过程和结果1. 单片机的编程语言:单片机主要使用汇编语言和C语言进行编程。
汇编语言能够直接操作硬件资源,灵活性较高;而C语言则更易于理解和编写,可提高开发效率。
我们选择了C语言进行编程。
2. 开发工具:为了编写和调试单片机程序,我们使用了KeilC51和Proteus软件进行开发。
Keil C51提供了编译器和调试器,可对程序进行编译和调试;Proteus能够模拟开发板的运行情况,方便我们验证程序的正确性。
3. LED控制实验:我们首先进行了LED控制实验,通过单片机的I/O口来控制LED的开灭。
编写程序后,在开发工具中进行仿真,确保程序和电路无误后,将程序下载到单片机上进行实际运行。
实验结果显示,当程序指定LED灯为高电平时,LED灯亮起;当程序指定为低电平时,LED灯熄灭。
4. 数据采集实验:接下来,我们进行了数据采集实验,利用温度传感器和光照传感器采集环境温度和光照强度。
将传感器与单片机连接后,编写相应程序进行数据读取。
实验结果显示,我们能够通过单片机读取到精确的温度和光照数值。
5. 实时控制实验:为了验证单片机的实时控制能力,我们使用蜂鸣器进行了实时报警实验。
通过编写程序,设置蜂鸣器的开关状态,当某个条件满足时,蜂鸣器会发出警报声。
河南理工大学《单片机应用与仿真训练》设计报告基于单片机的出租车计价器的设计姓名:学号:专业班级:指导老师:所在学院:电气工程与自动化2014年3月11日摘要本设计的是一个基于单片机AT89S52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。
复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。
时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。
在上电时四位共阴极5461AS数码管显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以调整起步价,里程收费,等待时间收费。
通过按键模拟出租车的运行,暂停,停止。
在5461AS液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。
在这里主要是以AT89S52单片机为核心控制器,P0口接5461AS液晶显示模块,P1口接按键的,通过按键输入。
关键词:单片机AT89C51;AT89S52;5461AS液晶;出租车计费器;- 1 -河南理工大学大学课程设计说明书目录前言 ............................................................................................................................................. - 2 -第一章出租车计价系统的设计要求与设计方案....................................................................... - 3 -1.1出租车计价器设计要求 (3)1.2系统主要功能 (3)1.3方案论证与比较 (3)第二章出租车计价系统的硬件设计.......................................................................................... - 5 -2.1 振荡电路 (5)2.2 复位电路设计 (5)2.3 键盘接口电路 (6)2.4 显示电路 (7)2.5 路程测量部分 (7)2.6 单片机各引脚功能说明 (8)2.7 5461AS液晶的简介 (9)第三章出租车计价系统的软件设计........................................................................................ - 12 -3.1单片机资源使用 (12)3.2中断子函数 (12)3.3判键子函数 (13)3.4显示子程序 (13)3.5总程序流程框图 (15)第四章PROTEUS的简介 ............................................................................................................. - 16 -4.1P ROTEUS介绍 . (16)第五章设计体会与小结........................................................................................................... - 17 -参考文献 ..................................................................................................................................... - 18 -附录 ......................................................................................................................................... - 19 -一.源程序 (19)二.设计总图 (25)- 2 -前言出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器技术也在不断进步和提高。
一、实验名称单片机原理及应用实验二、实验目的1. 熟悉单片机的基本结构和原理,了解单片机在电子系统中的应用。
2. 掌握单片机编程语言C的基本语法和编程技巧。
3. 学会使用单片机进行简单控制,实现LED流水灯、数码管显示等基本功能。
4. 提高动手实践能力,培养团队合作精神。
三、实验仪器与设备1. 单片机实验箱:包括单片机、电源、按键、LED灯、数码管等。
2. 电脑:用于编程和仿真。
3. 编程软件:Keil uVision5或IAR EWARM等。
四、实验原理单片机是一种集成度高、功能强大的微控制器,具有运算速度快、功耗低、体积小等优点。
本实验以51单片机为例,介绍其基本原理和编程方法。
51单片机主要由以下几个部分组成:1. 中央处理器(CPU):负责执行指令,控制整个单片机系统。
2. 存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。
3. 输入/输出接口:用于与外部设备进行数据交换。
4. 定时器/计数器:用于实现定时和计数功能。
5. 中断系统:用于处理中断事件。
本实验主要涉及以下几个方面:1. 单片机基本结构和工作原理。
2. 单片机编程语言C的基本语法和编程技巧。
3. 单片机I/O口的使用和驱动能力。
4. 定时器/计数器的使用和编程。
5. 中断系统的使用和编程。
五、实验内容1. 实验一:LED流水灯(1)实验目的:掌握单片机I/O口的使用,实现LED流水灯效果。
(2)实验原理:通过单片机I/O口输出高低电平,控制LED灯的亮灭,实现流水灯效果。
(3)实验步骤:① 连接实验箱电路,将LED灯连接到单片机的P1口。
② 编写程序,设置P1口为输出模式,通过循环改变P1口输出电平,实现LED流水灯效果。
③在电脑上编译、下载程序,观察实验效果。
2. 实验二:数码管显示(1)实验目的:掌握单片机I/O口的使用,实现数码管显示功能。
(2)实验原理:通过单片机I/O口输出高低电平,控制数码管显示数字。
单片机课程设计实验报告单片机课程设计实验报告引言单片机是嵌入式系统中常见的一种计算机芯片,具有体积小、功耗低、成本低等优势。
本次实验旨在通过单片机的应用设计,加深对单片机原理和应用的理解,并提升解决问题的能力。
实验目的本次实验的目的是设计一个简单的温度监测系统,通过单片机采集温度传感器的数据,并将数据显示在液晶显示屏上。
通过这个实验,我们可以掌握单片机的基本编程和电路连接方法,同时加深对温度传感器的原理和应用的理解。
实验原理1. 单片机基本原理单片机是一种集成电路,内部包含了CPU、内存、输入输出端口等功能模块。
通过编程,可以控制这些功能模块的工作,实现各种应用。
2. 温度传感器原理温度传感器是一种能够感知环境温度变化的器件,常见的有热敏电阻、热电偶等。
本次实验使用的是热敏电阻,其电阻值随温度的变化而变化。
实验材料1. 单片机开发板2. 温度传感器3. 液晶显示屏4. 连接线等实验步骤1. 连接电路将单片机开发板与温度传感器、液晶显示屏连接起来,确保电路连接正确无误。
2. 编写程序使用C语言编写单片机的程序,实现温度传感器数据的采集和液晶显示屏的显示。
程序的基本思路是通过单片机的模拟输入端口读取温度传感器的电阻值,然后将电阻值转换为温度值,并将温度值显示在液晶显示屏上。
3. 烧录程序将编写好的程序烧录到单片机开发板上,确保程序能够正常运行。
4. 实验测试将温度传感器放置在不同的环境中,观察液晶显示屏上的温度数值是否能够准确显示,并记录实验结果。
实验结果与分析经过实验测试,我们发现温度传感器能够准确地采集环境温度,并将温度数值显示在液晶显示屏上。
通过对比实际温度和显示温度的差异,我们可以评估温度传感器的准确性和精度。
实验总结通过本次实验,我们深入了解了单片机的基本原理和应用,掌握了单片机的编程方法和电路连接方法。
同时,我们也加深了对温度传感器的原理和应用的理解。
这些知识和技能对于今后的学习和工作都具有重要意义。
一、实训目的通过本次单片机程序设计实训,使学生掌握单片机程序设计的基本方法和步骤,提高学生的实际操作能力和编程技巧,培养学生在电子工程领域中的实践能力。
同时,通过实训加深对单片机原理、指令系统、接口技术等方面的理解,为后续单片机技术课程的学习打下坚实基础。
二、实训内容1. 实训环境本次实训采用Keil C51软件进行单片机程序设计,仿真平台为Proteus。
2. 实训任务(1)熟悉单片机硬件结构及指令系统;(2)掌握单片机C语言编程技巧;(3)熟练运用Proteus进行仿真实验;(4)设计并实现以下功能:①控制LED灯闪烁;②实现按键输入,控制LED灯点亮或熄灭;③实现定时器中断,控制LED灯以一定频率闪烁。
三、实训过程1. 熟悉单片机硬件结构及指令系统在实训过程中,我们首先学习了单片机的硬件结构,包括CPU、存储器、输入/输出接口等。
同时,我们掌握了8051单片机的指令系统,包括数据传送、算术运算、逻辑运算、控制转移等指令。
2. 掌握单片机C语言编程技巧在实训过程中,我们学习了单片机C语言的语法规则,掌握了变量声明、数据类型、运算符、函数等基本概念。
通过编写简单的程序,我们熟悉了单片机C语言编程的基本技巧。
3. 熟练运用Proteus进行仿真实验Proteus是一款功能强大的仿真软件,能够模拟单片机的硬件电路和程序运行。
在实训过程中,我们学会了如何使用Proteus创建电路图、添加元器件、设置仿真参数等操作。
通过仿真实验,我们验证了程序的正确性,提高了编程能力。
4. 设计并实现以下功能(1)控制LED灯闪烁设计思路:使用定时器中断,每隔一定时间改变LED灯的状态。
程序代码:```c#include <reg51.h>void Timer0_Init() {TMOD = 0x01; // 设置定时器模式为模式1TH0 = 0xFC; // 设置定时器初值TL0 = 0x18; // 设置定时器初值ET0 = 1; // 使能定时器0中断EA = 1; // 使能全局中断}void main() {P1 = 0xFF; // 初始化LED灯状态Timer0_Init(); // 初始化定时器while (1) {// 主循环}}void Timer0_ISR() interrupt 1 {TH0 = 0xFC; // 重新装载定时器初值TL0 = 0x18; // 重新装载定时器初值P1 ^= 0x01; // 切换LED灯状态}```(2)实现按键输入,控制LED灯点亮或熄灭设计思路:使用外部中断,检测按键状态,控制LED灯点亮或熄灭。
摘要本次设计是以单片机为核心,温度传感器为外扩来实现对环境温度的实时监测。
单片机是一个集成在一块芯片上完整的计算机系统。
它具有优异的性能:价格比较低、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗等特点。
单片机广泛应用于我们生活的各个领域,现今几乎很难找到哪个领域没有单片机踪迹:办公自动化领域、商业营销领域、汽车及通信、计算机外部设备、模糊控制等各领域中。
DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20采用一线通信接口,在使用时应完成ROM设定,否则记忆和控制功能将无法使用。
LCD液晶显示器的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否来显示信息的目的。
设计将用AT89C51单片机作为核心来构建测量周围温度的数字显示系统。
用DS18B20智能温度传感器作为检测元件;用LCD数码只读显示温度。
通过模块的设计将各个部分不同功能的硬件组合起来达到最终目的。
具体步骤主要包括:体设计,系统模块,程序编写与分析,实验仿真,硬件电路连接。
该数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,可以用于对测温要求比较高的场所。
目录1 概述1.1 单片机简介 (3)1.2 DS18B20初识 (3)1.3 浅谈LCD (3)2 系统总体方案及硬件设计2.1 主控制器 (4)2.2 温度传感器 (5)2.3 显示电路 (6)3 软件设计3.1 程序流程图 (6)3.2 温度读取程序 (7)3.3 温度转换程序 (7)3.4 温度计算程序 (7)3.5 数据显示及更新程序 (8)4 Proteus软件仿真4.1 Protues简介 (8)4.2 仿真电路图 (9)5课程设计体会 (10)6参考文献 (11)附录1 (12)附录2 (17)概述1.1单片机简介单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
实验一并行输入输出口的使用一、实验目的:学会设计proteus 7仿真电路,学习P1口的使用方法和延时子程序的编写用Keil uVision 3编程实现发光二极管的流水点亮。
二、实验原理:P1口为8位准双向I/O口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1)。
P1口作为输出,接8个发光二极管D1~D8经限流电阻分别接至8个引脚。
本实验仿真电路图、流程图如下:三、实验代码:#include<reg51.h>#include<intrins.h> //移位库函数包含于此头文件中void delay(unsigned int d) //定义延时子函数{ while(--d>0);}void main(){ unsigned char i,sel;while(1){ sel=0xfe;for(i=0;i<=8;i++){ P1=sel; //显示变量赋给P1口delay(50000); //延时sel=_crol_(sel,1); //改变显示变量}}}四、实验结论:用while语句实现发光二极管循环流水点亮,从上到下一次点亮。
实验二C51分支程序设计一、实验目的:学习多分支选择结构和switch语句,了解循环的嵌套。
二、实验原理:do while 循环先执行后判断是否循环,switch括号中的表达式的值与某case后的常量表达式的值相同时,就执行它后面的语句,遇到break语句则退出switch语句。
本实验仿真电路图、流程图如下:(仿真电路图)(流程图)三、实验代码:#include <reg51.h>void main(){ char a;do{ P1=0xff;a=P1;a=a&0x03;switch(a){ case 0:P2=0x0e;break;case 1:P2=0x0d;break;case 2:P2=0x0b;break;case 3:P2=0x07;break;}}while(1);}四、实验结论:多分支选择的switch/case语句,可直接处理并行多分支选择问题,从匹配表达式的括号开始执行,不再进行判断。
单片机实验报告范文单片机(Microcontroller)是指一种封装了微处理器(Microprocessor)、存储器和各种输入输出接口电路功能的集成电路。
单片机在电子设计与开发中有广泛应用,可以用于控制和监测各种系统和设备。
本实验报告将介绍在实验中使用单片机所进行的实验步骤和实验结果。
实验目的:1.理解单片机的基本工作原理和功能。
2.掌握单片机的编程和调试方法。
3.应用单片机实现简单的控制功能。
实验仪器和材料:1.单片机开发板2.计算机B数据线4.电源适配器5.LED灯6.麦克风模块7.温度传感器实验步骤:1.准备工作:将单片机开发板与计算机连接,接通电源适配器。
2.熟悉开发工具:安装单片机开发软件,并了解软件的基本功能。
3.学习编程语言:了解单片机的编程语言,例如C语言或汇编语言,并编写简单的程序。
4.硬件连接:将LED灯、麦克风模块和温度传感器连接至开发板的相应引脚。
5.编程实现:根据实验要求,编写相应的程序,控制LED灯、获取麦克风模块的声音信号或获取温度传感器的温度值。
7.实验结果:根据实验要求,记录LED灯的亮灭状态、麦克风模块的声音信号强度或温度传感器的温度数值。
实验结果:通过实验,我们成功地控制了LED灯的亮灭状态,获取了麦克风模块的声音信号强度和温度传感器的温度数值。
在编程实现过程中,我们学会了使用单片机编程语言,了解了一些常用的语法和函数。
在调试测试中,我们可以通过相关的输出或显示结果来判断程序的正确性,及时发现和修复错误。
实验总结:本实验通过单片机开发板和相应的硬件以及编程实现了简单的控制和监测功能。
通过实验,我们深入了解了单片机的基本工作原理和功能,并掌握了一些基本的编程和调试方法。
实验结果表明,我们成功实现了实验要求,并对单片机的应用有了更加深入的理解。
通过这次实验,我们不仅提高了动手实践能力,也增加了对科技发展的看法。
一、实验目的1. 熟悉单片机的基本结构和工作原理;2. 掌握单片机的编程方法和调试技巧;3. 通过实际操作,加深对单片机原理的理解和应用。
二、实验内容1. 单片机基本原理实验;2. 单片机编程实验;3. 单片机接口实验。
三、实验器材1. 单片机实验板;2. 编程器;3. 调试器;4. 仿真软件;5. 实验指导书。
四、实验步骤1. 单片机基本原理实验(1)搭建单片机最小系统,包括电源、晶振、复位电路、时钟电路等;(2)观察单片机的基本引脚功能,如P1、P2、P3等;(3)了解单片机的存储器结构,包括ROM、RAM、特殊功能寄存器等;(4)学习单片机的指令系统,如数据传送指令、算术逻辑运算指令、控制指令等。
2. 单片机编程实验(1)使用Keil uVision5软件,编写单片机程序;(2)学习C51语言编程,掌握数据类型、运算符、控制结构等;(3)编写程序实现点亮LED灯,观察程序运行效果;(4)编写程序实现按键输入,读取按键状态。
3. 单片机接口实验(1)学习单片机的外设接口,如串口、I2C、SPI等;(2)使用单片机串口通信,实现单片机与PC机的数据传输;(3)编写程序实现I2C通信,读取EEPROM数据;(4)编写程序实现SPI通信,读取传感器数据。
五、实验结果与分析1. 单片机基本原理实验通过搭建单片机最小系统,观察了单片机的基本引脚功能,了解了单片机的存储器结构和指令系统。
实验过程中,掌握了单片机的基本工作原理,为后续编程实验打下了基础。
2. 单片机编程实验使用Keil uVision5软件,编写了点亮LED灯的程序,实现了按键输入读取按键状态。
通过编程实验,掌握了C51语言编程方法,提高了编程能力。
3. 单片机接口实验通过串口、I2C、SPI等接口实验,实现了单片机与PC机的数据传输,读取EEPROM 数据和传感器数据。
实验过程中,了解了单片机的外设接口原理,提高了实际应用能力。
六、实验心得与体会1. 实验过程中,掌握了单片机的基本原理和编程方法,提高了自己的动手能力;2. 通过实验,加深了对单片机原理的理解,为以后的学习和工作打下了基础;3. 在实验过程中,学会了如何查找资料、解决问题,提高了自己的独立思考能力;4. 认识到理论与实践相结合的重要性,只有将所学知识应用于实际,才能真正掌握。
单片机实验报告单片机实验报告引言单片机是一种集成电路芯片,具有微处理器、存储器、输入输出接口等功能,广泛应用于各个领域。
本实验报告将介绍我在单片机实验中的学习和实践经验,包括实验目的、实验步骤、实验结果以及实验心得。
实验目的本次实验的目的是通过使用单片机,学习和掌握单片机的基本原理、编程方法和应用技巧。
具体目标包括了解单片机的基本构成、学习单片机的编程语言、掌握单片机的输入输出操作等。
实验步骤1. 实验准备:在实验开始前,我们首先准备了所需的硬件和软件工具。
硬件方面,我们使用了一块开发板和一片单片机芯片。
软件方面,我们使用了一款单片机开发软件。
2. 硬件连接:将单片机芯片插入开发板的插槽中,并通过连接线将开发板与计算机相连。
3. 编写程序:使用单片机开发软件,编写程序代码。
在本次实验中,我们选择了一个简单的LED灯闪烁的程序作为示例。
4. 烧录程序:将编写好的程序通过编程器烧录到单片机芯片中。
5. 运行程序:将烧录好的芯片插入开发板后,通过电源供电,运行程序。
LED灯将按照程序中设定的频率进行闪烁。
实验结果经过以上实验步骤,我们成功地实现了LED灯的闪烁。
通过调整程序中的参数,我们还可以改变闪烁的频率和模式。
这次实验不仅让我们掌握了单片机的基本编程方法,还让我们对单片机的应用有了更深入的了解。
实验心得通过本次实验,我深刻认识到了单片机在现代电子技术中的重要性和广泛应用。
单片机不仅可以用于控制各种电子设备,还可以应用于嵌入式系统、自动化控制等领域。
掌握单片机的编程和应用技巧,对于我们今后的学习和工作都具有重要意义。
在实验过程中,我遇到了一些困难和问题,但通过查阅资料、与同学讨论等方式,我都得到了解决。
这让我意识到在学习和实践中,积极主动地寻求帮助和解决问题的能力是非常重要的。
此外,我还发现了单片机编程的乐趣。
通过编写程序,我可以控制各种设备的运行,实现自己的创意和想法。
这种创造性的过程给我带来了很大的满足感和成就感。
单片机实验报告(一)引言概述:本文档是关于单片机实验报告的第一部分。
在本实验中,我们使用了单片机进行各种电子电路的设计和实现。
本报告将详细介绍本次实验的目的、实验过程、实验结果以及相关的数据分析和总结。
正文内容:1. 实验目的:- 熟悉单片机的基本原理和操作方法;- 学习如何使用单片机进行数字信号处理;- 掌握通过单片机控制外围设备的方法;- 了解单片机在电子电路设计中的应用;- 培养动手能力和解决问题的能力。
实验过程:- 准备实验所需的器件和材料;- 搭建实验电路并连接单片机;- 编写程序并下载到单片机中;- 运行程序并观察实验现象;- 对实验结果进行测量和记录。
实验结果:- 在本实验中,我们成功完成了以下实验任务:实现一个LED灯的闪烁效果、实现一个温度传感器并显示温度值、通过单片机控制一个小型电机的转动。
- 实验过程中,我们观察到LED灯按照设定的时间间隔闪烁,温度传感器准确地显示了环境温度,并且成功地控制了电机的转动。
- 实验结果与理论预期相符合,证明了单片机在电子电路设计和控制方面的可行性和实用性。
数据分析:- 针对每个实验任务,我们对实验结果进行了数据分析和统计。
- 对LED灯的闪烁效果进行了频率和亮度的分析,验证了程序中设定的时间间隔和LED的亮度参数。
- 对温度传感器进行了精度和灵敏度的测试,发现与其输入温度之间存在一定的误差。
- 对电机控制实验进行了转速和转向的测量,得出了电机在不同控制模式下的转动情况。
总结:通过本次实验,我们熟悉了单片机的基本原理和操作方法,学习了如何使用单片机进行数字信号处理,并且掌握了通过单片机控制外围设备的方法。
本实验验证了单片机在电子电路设计和控制方面的可行性和实用性。
我们通过数据分析,对实验结果进行了详细的解读和讨论,并总结了实验中遇到的问题和经验教训。
在今后的实验中,我们将进一步深入学习和应用单片机技术,不断提高自己的动手能力和解决问题的能力。
单片机课程设计实验报告一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握其内部结构及工作流程。
2. 使学生掌握单片机编程的基本语法和编程技巧,能独立完成简单的程序编写。
3. 帮助学生了解单片机在现实生活中的应用,提高对新技术、新领域的认识。
技能目标:1. 培养学生运用单片机进行实验设计和实践操作的能力。
2. 培养学生分析问题、解决问题的能力,提高创新思维和动手实践能力。
3. 提高学生的团队协作和沟通能力,学会在实验过程中相互交流、共同进步。
情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养主动学习的习惯。
2. 培养学生严谨、细致的实验态度,养成良好的实验操作习惯。
3. 增强学生的自信心和责任感,使他们认识到学习单片机对国家科技发展的意义。
课程性质分析:本课程为单片机课程设计实验,侧重于实践操作和实际应用。
课程要求学生具备一定的电子技术基础和编程能力,通过实验深入了解单片机的工作原理和应用领域。
学生特点分析:本课程面向高年级学生,他们在之前的学习中已掌握了基本的电子技术和编程知识,具备一定的自学能力和动手实践能力。
但学生在单片机应用方面的实践经验不足,需要通过本课程加强实践锻炼。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。
2. 注重启发式教学,引导学生主动思考、探索,培养学生的创新精神和实践能力。
3. 关注学生的个体差异,给予个别辅导,确保每位学生都能达到课程目标。
二、教学内容1. 单片机基础知识:- 单片机原理与结构- 单片机内部资源及功能- 单片机编程语言(汇编语言、C语言)2. 单片机编程与实验:- 基本输入输出编程- 定时器、中断编程- 模数转换、串行通信编程3. 单片机应用案例:- 实例分析:温度控制器、智能小车等- 创新设计:学生自主选题,设计单片机应用项目4. 实验操作与调试:- 实验步骤与方法- 常用工具与仪器的使用- 故障分析与调试技巧教学大纲安排:第一周:单片机基础知识学习,包括原理、结构、编程语言等第二周:基本输入输出编程,实验一:LED灯控制第三周:定时器、中断编程,实验二:简易电子时钟第四周:模数转换、串行通信编程,实验三:温度传感器数据采集第五周:单片机应用案例分析,学生自主选题,设计单片机应用项目第六周:实验操作与调试,完成设计项目,撰写实验报告教材章节关联:教学内容与教材《单片机原理与应用》相关章节紧密关联,具体包括:- 第一章:单片机概述- 第二章:单片机的结构与原理- 第三章:单片机编程语言- 第四章:单片机内部资源及应用- 第五章:单片机实验与调试教学内容确保科学性和系统性,以培养学生的实际操作能力为目标,注重理论与实践相结合,提高学生的创新能力和实践技能。
单片机实训报告范文精选5篇实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。
单片机课程设计在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。
通过在单片机小组里的学习我简单总结了几点心得和体会:第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。
凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。
可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。
第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。
比如:小灯得点亮就没有用到中断可以先不用看。
这样可以避免知识过多记不住的麻烦。
对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。
第三:程序不要只是看别人得,一定要自己写过才是自己的。
开始不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。
明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。
当你自己能写出来的时候说明你真懂了。
第四:一定要学会程序调试的方法。
有时候把程序写完了然后运行时不能实现理想的现象。
这时有人就晕了不知该怎么办,然后就去问别人。
当别人找出问题出在哪里时就会恍然大悟。
其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。
自己一定要掌握解决问的方法和思路。
第五:在学习初期看别人的代码,学习别人的思路这个很有用。
通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。
也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。
单片机验收报告姓名:学号:班级:学院:实验一流水灯实验一、实验目的1)简单 I/O 引脚的输出2)掌握软件延时编程方法3)简单按键输入捕获判断二、实验实现的功能1)开机是点亮 12 发光二极管,闪烁三下2)按照顺时针循环依次点亮发光二极管3)通过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计四、系统软件设计/********程序名:流水灯实验******************程序功能:按键控制流水灯的顺逆旋转*************完成时间: 2015年12月29号下午**********完成人:电科1303班何海坤*//****头文件,注:如果没有添加stc10.h文件到keil安装路径里,则需要添加,否则请将头文件改成reg51.h*****/#include<stc10.h>/****宏定义****/#define uchar unsigned char#define uint unsigned int/***定义按键端口***/sbit key = P3^6;sbit keyl = P0^5;/****led控制数组******/uchar table[] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfb,0xf7,0xef,0xdf};//当引脚电平为时,引脚对应的led亮/******子函数定义*******/void delay1ms(); //延时函数1ms时间void delaynms(uint); //延时函数自定义毫秒数void delay(); //定义延时函数100ms时间void led_init(); //初始化led全体同时亮灭三次/**主函数**/void main(){uchar m = 0;uchar k = 0;keyl = 0 ;led_init(); //led初始化为全体led同时闪灭三次while(1){if(!key){delaynms(5);if(!key){m++;if(m == 2){m = 0;}while(!key);}}if(m == 0){k++;if(k == 13)k=1;}else k--;if(k == 0)k = 12;switch(k-1){case 0 : P2 = table[0];P3 = 0xff;delay(); break;case 1 : P2 = table[1];delay(); break;case 2 : P2 = table[2];delay(); break;case 3 : P2 = table[3];delay(); break;case 4 : P2 = table[4];delay(); break;case 5 : P2 = table[5];delay(); break;case 6 : P2 = table[6];delay(); break;case 7 : P2 = table[7];P3 = 0xff;delay(); break;case 8 : P3 = table[8];P2 = 0xff;delay(); break;case 9 : P3 = table[9];delay(); break;case 10 : P3 = table[10];delay(); break;case 11 : P3 = table[11];P2 = 0xff;delay(); break;}}}/******子函数体********/void delay1ms(void) //误差 0us {unsigned char a,b,c;for(c=1;c>0;c--)for(b=222;b>0;b--)for(a=12;a>0;a--); }void delaynms(uint z){while(z--){delay1ms();}}void delay(){ uchar z = 100;while(z--){delay1ms();}}void led_init(){uchar i ;for(i = 0; i<3;i++){P2 = 0x00;P3 = 0x00;delaynms(500);P2 = 0xff;P3 = 0xff;delaynms(500);}}五、实验过程中遇到的问题及解决方法实验中的问题:一开始是用左移和for循环控制led灯,这样的话不能及时的检测按键信息,总是在八个灯循环完之后才检测到按键。
河南理工大学《单片机应用与仿真训练》设计报告多机温度检测系统设计姓名:学号:310908010310908010专业班级:电气09-6班指导老师:王莉所在学院:电气工程与自动化学院2012年5月20 日目录目录 (I)摘要 (II)1 概述 (1)1.1 下位机温度采集发送系统 (1)1.2上位机显示及报警系统 (1)2 系统总体方案及硬件设计 (3)2.1主要硬件简介 (3)2.2各部分电路设计 (5)3软件设计 (9)3.1 功能需求分析 (9)4实验仿真 (11)5课程设计体会 (12)参考文献 (13)附录一源程序 (14)附录二系统原理图 (31)附录三实物图片 (32)摘要本设计是采用AT89S52 8位单片机作为控制核心设计了温度测量系统,该系统由温度检测模块、微控制器模块、串口通信模块、数码管显示和报警模块等四部分组成,能对0℃~99℃范围的温度进行测量,同时利用4位八段数码管可以实时显示环境温度。
该系统结构简单,成本低,具有较好的应用价值。
本系统首先由下位AT89S52单片机通过p2.3口不断循环采集数字化温度传感器DS18B20的温度数据,然后转换成十进制温度值,通过串行口发送至上位AT89S52单片机,由上位机通过串行口接收数据,再与报警温度进行比较,判断是否进行报警,上位机同时驱动四位八段数码管将温度显示出来。
实现本系统的主要难点在于温度的采集和传送。
DS18B20只需要接到单片机的一个I/O口上,由于单总线为开漏所以需要外接一个4.7K的上拉电阻。
其功能强大,但需要不断地发送采集命令以及循环读取它传出的数值,然后进行换算成十进制温度。
单片机串口通信是单片机一个非常有用的功能,可以构建多机系统来实现更为强大的功能,而且通过MAX232可以进行远距离的通信,实现远程控制,但是对于单片机初学者来说不太容易掌握其发送接收的时序和数据格式,所以我们采用了简单的直接通信而未进行数据发送前的请求应答和数据发送完得数据检查校错。
《单片机C语言程序设计》实验报告一、实验目的和要求1、掌握数模转换的概念。
2、掌握D/A转换芯片DAC0832的功能及特点,掌握与单片机的接口。
3、掌握D/A转换芯片DAC0832的c语言编程实例。
二、实验内容和原理完成信号发生器实验。
具体包括绘制仿真电路图、编写c源程序、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。
实验1.信号发生器功能:使用DAC0832用作信号发生器,编写产生锯齿波、三角波和方波的程序。
本次项目中,DAC0832采用单缓冲单极性的线选法接线方式,其选通地址为7FFFH。
(1)硬件设计使用P1口接3个独立的按键S01、S02、S03,当按下S01时输出锯齿波,按下S02时输出三角波,当按下S03时输出方波。
仿真所需元器件(2)C源程序//信号发生器#include <A T89X51.h>#include <stdio.h>#include <intrins.h>#include <absacc.h>#define DAC0832Addr XBYTE[0x7FFF] //DAC0832地址#define uchar unsigned char //uchar代表单个字节无符号数#define uint unsigned int //uint无符号字void TransformData(uchar c0832data);//转换数据void Delay(uchar n); //延时子程序sbit K01 = P1 ^ 4; //锯齿波按钮sbit K02 = P1 ^ 5; //三角波按钮sbit K03 = P1 ^ 6; //方波按钮void main() {bit upFlag = 1; //上升标志位bit downFlag = 0; //下降标志位uchar cDigital = 0; //待转换的数字量uchar i;Delay(); //调用延时程序while (1) {while (!K01) { //生成锯齿波for (cDigital = 0; cDigital <= 255; cDigital++) {if (K01) {break;}TransformData(cDigital);Delay(5);}}while (!K02) { //生成三角波TransformData(cDigital);//进行数模转换if ((cDigital == 255) && upFlag || (cDigital == 0 && downFlag)) { downFlag = !downFlag;upFlag = !upFlag;} //标志位取反if (upFlag) { //三角波上升阶段cDigital++;} else if(downFlag) { //三角波下降cDigital--;}Delay(5);}while (!K03) { //生成方波TransformData(0);Delay(5000);TransformData(255);Delay(5000);}}}void TransformData(uchar c0832data) {DAC0832Addr=c0832data; //变量c0832data存放在DAC0832Addr这个地址指向的uchar类型存储空间里,即向DAC0832输出待转换数字量c0832data}void Delay(uchar n) { //延时程序while(n--) {unsigned char i, j;i = 2;j = 239;do {while (--j);} while (--i);}}三、主要仪器设备Protues硬件仿真调试软件Keil编程软件四、操作方法与实验步骤1、根据实验一新建工程操作,新建工程。
目录一、实习目的 (2)二、实习单位 (2)三、实习任务 (2)1、收集资料 (2)2、设计初步方案 (3)3、撰写《毕业实习报告》 (3)四、实习内容 (3)熟悉单片机知识阶段 (3)解决难题阶段 (6)总结阶段 (8)五、实习收获 (10)一、实习目的大学毕业之际,毕业实习是极为重要的实践性学习环节,通过阶段性时间的实习,为我们之后走向社会,接触本工作,拓宽知识面,增强感性认识,培养、锻炼我们综合运用所学的基础理论、基本技能和专业知识,去独立分析和解决实际问题的能力,能够将所学的专业理论知识运用与实践,在实践中结合理论加深对其认识和总结,再次学习,将专业知识与实际接轨,逐步认识体会,从而更好地将所学的运用到工作中去,接触社会,认识社会,体验生活,学会生活,学会生活,学会感悟,学会做事,学会与人相处,学会团结协作,为以后毕业走上工作岗位打下一定的基础。
具体目的如下:1。
在图书馆查阅关于单片机设计方面的资料,为毕业设计打下基础。
2。
对毕业设计所选题目-家庭防盗系统的设计有初步的了解。
3。
通过借鉴和分析关于单片机方面的设计实例,从中学到单片机的设计过程及一般步骤。
二、实习单位河南理工大学三、实习任务1、收集资料在学校图书馆查找资料,了解自己所学专业的东西,并且确定自己的课题,得到相关的知识和能力,思考课题的内容与方向,有针对性的收集资料,包括专业资料、工具资料和其他相关的资料。
2、设计初步方案在收集完资料后可以初步确定自己的毕业设计方案,并建立相关的数学模型,进行原理分析、计算和实验,这一项工作是繁琐而艰巨的,需要不断的补充知识修正设计结果.3、撰写《毕业实习报告》做完上面的工作后,就需要及时的编写《毕业实习报告》.这是对这段时间学习的全面总结,编写实习报告,我们能够重现自己学习的经历,重新汇总资料情况,这样会给我们带来设计灵感。
认认真真完成实习报告后,我们就会对自己的课题有了全新的理解,后面的实际设计工作就会变得轻松。
单片机实验报告
一、定时器或实时时钟实验
1、实验目的
1)数码管动态显示技术
2)定时器的应用
3)按键功能定义
2、完成功能要求
1)通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。
2)实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。
上述二个功能至少完成一种功能。
#include <STC10.h>
#define uint unsigned int
#define uchar unsigned char
uchar code a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //段码组合,共阴极uchar ms,s,min;
//======按键定义=========
sbit H1=P3^6;
sbit L1=P0^5;
sbit L2=P0^6;
sbit L3=P0^7;
//============延时函数ms========
void delay_ms(uint x)
{
uchar i;
while(x--) for(i=0;i<120;i++);
}
//===========数码管显示函数=============
void display(void)
{
P0=0xfe,P1=a[min/10]; //显示分钟的十位
delay_ms(20);
P0=0xfd,P1=a[min%10]; //显示分钟的个位
delay_ms(20);
P0=0xfb,P1=a[s/10]; //显示秒的十位
delay_ms(20);
P0=0xf7,P1=a[s%10]; //显示秒的个位
delay_ms(20);
}
void main(void)
{
uchar i;
TMOD=0x01;
TH0=0x28;
TL0=0x00;
ET0=1;
TR0=1;
EA=1;
P1M0=0XFF;
P1M1=0X00;
while(1)
{ display();
H1=0;
if(!L1)
{
delay_ms(10);
if(!L1)
{
// while(!L1)
// display();
min--; //判断1键按下,分钟减1
if(min==255)
min=59;
while(!L1)
display();
}
}
if(!L2)
{
delay_ms(10);
if(!L2)
{
// while(!L2)
// display();
min++; //判断2键按下,分钟加1
if(min>=60)
min=0;
while(!L2)
display();
}
}
if(!L3) i++;
if(i%2==1) TR0=0;
else TR0=1; //3键控制启停
}
}
void timer0(void) interrupt 1
{
TH0=0x28;
TL0=0x00;
ms++;
if(ms==20)
{
ms=0;
s++;
if(s==60)
{
s=0;
min++;
if(min==60) min=0; //分秒显示}
}
}。