电子科技大学选修单片机实验报告

合集下载

关于单片机实训报告万能【六篇】

关于单片机实训报告万能【六篇】

关于单片机实训报告万能【六篇】【篇1】单片机实训报告万能通过今次单片机实训,使我对单片机的认识有了更深刻的理解。

系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。

由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。

例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。

踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。

当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。

我相信其中的酸甜苦辣最终都会化为甜美的甘泉。

但在这次实训中同时使我对汇编语言有了更深的认识。

当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。

这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。

这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。

希望这次的经历能让我在以后学习中激励我继续进步。

【篇2】单片机实训报告万能通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。

了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。

LED显示器:LED显示器是由发光二管组成显示字段的器件。

通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。

有段选码和和位选码。

当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA 电流;位线的电流应选择40-80MA。

LED显示器的显示方式有动态和静态两种。

7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。

单片机实训报告优选范文5篇分享

单片机实训报告优选范文5篇分享

单片机实训报告优选范文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取反通过该程序实现八盏灯的同时亮和同时灭的功能,更好的掌握汇编指令。

单片机实验报告

单片机实验报告

单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。

二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil)4、下载器5、示波器6、万用表三、实验内容1、点亮 LED 灯通过编写简单的程序,控制单片机的引脚输出高低电平,从而点亮或熄灭连接在该引脚上的 LED 灯。

这是单片机最基础的操作之一,旨在熟悉单片机的编程环境和引脚控制方式。

2、数码管显示利用单片机驱动数码管,实现数字的显示。

需要了解数码管的工作原理和驱动方式,通过编程控制数码管的段选和位选信号,显示不同的数字。

3、按键输入设计按键电路,通过读取按键的状态,实现对单片机系统的输入控制。

例如,通过按键切换不同的显示模式或控制其他外部设备。

4、定时器/计数器应用使用单片机的定时器/计数器功能,实现定时、计数等操作。

例如,设计一个定时闪烁的 LED 灯,或者通过计数器统计外部脉冲的个数。

5、串口通信实现单片机与计算机之间的串口通信,将单片机采集到的数据发送到计算机上进行显示和处理,或者接收计算机发送的指令对单片机系统进行控制。

四、实验原理1、单片机的基本结构单片机通常由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)、定时器/计数器、中断系统等部分组成。

2、编程语言本次实验采用 C 语言进行编程。

C 语言具有简洁、高效、可移植性强等优点,非常适合单片机的开发。

3、引脚功能单片机的引脚分为电源引脚、时钟引脚、复位引脚、I/O 引脚等。

通过对这些引脚的合理配置和控制,可以实现各种功能。

4、数码管驱动原理数码管分为共阴极和共阳极两种类型。

通过控制数码管的段选和位选信号,可以使数码管显示不同的数字和字符。

5、按键检测原理按键通常采用上拉电阻或下拉电阻的方式连接到单片机的I/O 引脚。

单片机实验报告(相当不错,有具体实验结果分析哦)

单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 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口)。

单片机实验报告范文

单片机实验报告范文

单片机实验报告范文一、实验目的本实验的目的是通过学习单片机的基本原理和使用方法,掌握单片机在各个实际应用中的基本技能。

二、实验器材及原理1.实验器材:STC89C52单片机、电源、晶振、按键、LED灯、蜂鸣器等。

2.实验原理:单片机是一种微处理器,能够完成各种复杂的功能。

通过学习单片机的工作原理和编程方法,可以控制各种外围设备,实现不同的功能。

三、实验内容及步骤1.实验一:点亮LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,点亮LED灯。

2.实验二:按键控制LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将按键和LED灯与单片机相连。

(3)编写程序,实现按下按键控制LED灯亮灭。

3.实验三:数码管显示步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将数码管与单片机相连。

(3)编写程序,将数字输出到数码管上显示。

4.实验四:定时器应用步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,实现定时器功能。

四、实验结果及分析1.实验一:点亮LED灯LED灯成功点亮,证明单片机与外部设备的连接正常。

2.实验二:按键控制LED灯按下按键后,LED灯亮起,松开按键后,LED灯熄灭。

按键控制LED 灯的效果良好,说明单片机的输入输出功能正常。

3.实验三:数码管显示数码管成功显示数字,说明单片机能够实现数字输出功能。

通过程序设计,可以实现数码管显示不同的数字。

4.实验四:定时器应用定时器正常运行,能够实现精确的定时功能。

通过调节定时器的参数,可以实现不同的定时功能。

五、实验总结通过本次实验,我们学习了单片机的基本原理和使用方法。

通过掌握单片机的编程技巧,我们能够实现各种复杂的功能,如控制LED灯、按键控制、数码管显示等。

这些技能对于日常生活和工程设计都具有很大的实用性。

在实验过程中,我们遇到了各种问题,如电路连接错误、程序编写错误等。

单片机实验报告

单片机实验报告

单片机实验报告1. 实验背景单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、内存、计时器、I/O接口等功能的集成电路芯片。

它具有体积小巧、功耗低、性能高等优点,在嵌入式系统中应用广泛。

本实验旨在通过对单片机的实际操作,加深对单片机原理及应用的理解。

2. 实验目的本次实验的主要目的是:- 掌握单片机的基础知识,包括单片机的结构、工作原理等;- 学习单片机的编程方法,初步掌握单片机的编程技巧;- 进行简单的单片机应用实验,提高对实际应用的理解。

3. 实验设备与材料实验所需的设备和材料包括:- 单片机开发板;- 计算机;- 连接线等。

4. 实验过程与结果在本实验中,我们使用XXX型单片机开发板作为实验平台,通过连接计算机进行编程。

具体的实验过程如下:4.1 硬件连接将单片机开发板与计算机通过连接线连接,并确保连接正常。

接下来,将我们设计好的电路按照要求连接到开发板的相应引脚上。

4.2 编程使用XXX软件对单片机进行编程。

根据实验要求,编写相应的程序代码,并将代码下载到单片机开发板中。

验证代码是否编译通过,并将运行结果显示在数码管、液晶显示屏等外设上。

4.3 实验结果实验结果根据不同的实验要求而定,可以是对某个外设的控制、信号的采集、数据的处理等。

在实验过程中需记录实验结果,并进行分析。

5. 实验总结通过本次实验,我对单片机的基本原理及应用有了更深入的了解。

掌握了单片机的硬件连接方法和编程技巧,并成功完成了实验要求。

实验结果表明,单片机在各个领域都有广泛的应用前景,对于嵌入式系统的开发起着重要作用。

当然,本次实验只是单片机应用的初步探索,还有很多更深入的研究和应用值得去探索。

在今后的学习与实践中,我将进一步深化对单片机的理解,并将其灵活应用于各种项目中。

6. 参考文献[参考文献1][参考文献2][参考文献3](文章内容仅供参考,具体实验过程和结果以实际情况为准。

)。

单片机实验报告

单片机实验报告

一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。

2. 掌握单片机最小系统的搭建方法。

3. 学习使用单片机编程软件进行程序编写和调试。

4. 通过实际操作,加深对单片机应用的理解。

二、实验环境1. 实验设备:MCS-51单片机实验板、电源模块、面包板、连接线、LED灯、蜂鸣器、按键等。

2. 软件环境:Keil uVision5、Proteus仿真软件。

三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。

(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。

② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。

2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。

(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。

② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。

3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。

(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。

② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键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口输出高低电平,控制数码管显示数字。

单片机实验4报告

单片机实验4报告

单片机实验4报告一、实验目的本次单片机实验的目的是深入了解和掌握单片机的编程与应用,通过实际操作来提升对单片机工作原理的理解,并能够熟练运用所学知识解决实际问题。

二、实验设备与工具1、单片机开发板2、编程软件(如 Keil)3、下载器4、电脑三、实验内容本次实验主要涉及以下几个方面:1、单片机的端口控制通过编程实现对单片机端口的高低电平输出,控制外接的 LED 灯的亮灭状态。

2、定时器/计数器的应用利用单片机的定时器/计数器功能,实现精确的定时控制,例如控制LED 灯的闪烁频率。

3、中断系统的使用了解单片机的中断机制,通过外部中断来实现特定的功能,如按键触发相应的操作。

四、实验步骤1、端口控制实验首先,在编程软件中创建一个新的工程,并选择对应的单片机型号。

编写端口控制的程序代码,设定某个端口为输出模式,并通过赋值来控制其输出电平。

将编写好的程序编译生成可执行文件。

使用下载器将程序下载到单片机开发板中,观察 LED 灯的亮灭状态是否符合预期。

2、定时器/计数器实验同样在编程软件中创建工程,并配置好相关的定时器/计数器参数。

编写定时器/计数器的初始化代码和中断服务程序,以实现特定的定时功能。

编译、下载程序,观察 LED 灯的闪烁频率是否符合设定的时间间隔。

3、中断系统实验先设置好中断的触发方式和优先级。

编写中断服务程序,当外部中断触发时,执行相应的操作。

编译、下载程序,通过按键触发中断,观察系统的响应是否正确。

五、实验结果与分析1、端口控制实验结果成功实现了通过编程控制单片机端口的输出电平,使 LED 灯按照预期的方式亮灭。

这表明对端口的配置和操作指令理解正确,能够有效地控制端口的输出状态。

2、定时器/计数器实验结果LED 灯的闪烁频率与设定的时间间隔相符,说明定时器/计数器的配置和编程正确,能够准确地实现定时功能。

3、中断系统实验结果按键触发中断后,系统能够迅速响应并执行中断服务程序中的操作,表明中断系统的设置和编程正确,能够及时处理外部中断事件。

单片机实验报告4

单片机实验报告4

单片机实验报告4第一篇:单片机实验报告4单片机实验报告(实验一)一、实验目的: 1.掌握stm8的时钟切换。

2.熟悉汇编语言的指令系统。

3.加深对stm8功能的理解,掌握去其使用方法。

二、实验仪器:stm8s105c6单片机、杜邦线、单片机开发试验仪、三、实验内容:1、步骤:1)2)3)按照正确的方法将单片机与电脑连接。

通过转接板将单片机与单片机试验仪连接,用一根杜邦线将PB0与一个LED连接起来创建工程文件,编写代码,编译运行,如果程序没有错误,就将程序下载到单片机里,观察LED的状态。

2、主程序(要有注释):intel;系统复位后,时钟为内部RC振荡器,16Mhz,8分频,实为2Mhz.;LD1闪烁10次ld a,#10;10次bset PB_DDR,#0 bset PB_CR1,#0 bres PB_CR2,#0 ;初始化PB 口,将其定义为推挽输出next1 bres PB_ODR,#0 call delay bset PB_ODR,#0 call delay dec a jrne next1;修改时钟为外部16Mhz时钟.;LD1闪烁10次mov CLK_ECKR,#01h;允许外部高速振荡器工作 wait_hse_ready ld a,CLK_ECKR and a,#02h jreq wait_hse_ready;等待外部高速振荡器准备好bset CLK_CSSR,#0;CSEEN<-1,时钟安全系统使能mov CLK_SWCR,#02h;SWEN <-1mov CLK_SWR,#0b4h;选择芯片外部的高速振荡器为主时钟wait_clk_switch ld a,CLK_SWCR and a,#08h jreq wait_clk_switch;等待切换成功next2 bres PD_ODR,#0 call delay bset PD_ODR,#0 call delay dec a jrne next2jra $;;定义一个延时函数 delaypush ccldw y,#10 loop1 ldw x,#0ffffh loop decw xjrne loopdecw yjrne loop1pop ccret3、注意事项:1)2)注意线路的连接是否正确。

单片机实习报告3篇

单片机实习报告3篇

单片机实习报告单片机实习报告3篇随着人们自身素质提升,报告有着举足轻重的地位,报告具有成文事后性的特点。

相信很多朋友都对写报告感到非常苦恼吧,下面是小编帮大家整理的单片机实习报告3篇,希望对大家有所帮助。

单片机实习报告篇1一实习目的1. 通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配工艺、规范及注意事项;2. 通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;3. 掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘显示等程序的编制及调试(汇编语言、C语言均可);4. 通过单片机系统的组装,调试以及程序编制、调试及运行,与理论及实验的有机结合和指导教师的补充介绍,使学生掌握控制系统的工作原理、开发方法和操作方法。

5. 培养学生解决实际问题的能力,提高对理论知识的感性认识。

二实习意义通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。

在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。

达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。

三系统基本组成及工作原理1 系统基本组成系统以单片机STC89C52作为控制核心,各部分基本组成框图如图1所示。

流水灯部分由单片机、键盘模块等组成;四位数码显示,编程实现30秒倒计时部分由单片机、键盘模块、液晶显示模块等组成;按键功能部分通过按键控制流水灯部分、四位数码显示部分;电子钟部分由单片机、键盘模块、液晶显示模块等组成;使用功能键实现相应的功能组合部分通过流水灯部分、30秒倒计时部分实现;模数转换部分由单片机、ADC0809转换模块、键盘模块、液晶显示模块等组成。

单片机实训报告结果分析

单片机实训报告结果分析

一、引言单片机作为一种重要的嵌入式系统核心,广泛应用于工业控制、智能家居、通信设备等领域。

为了提高学生的实践能力和工程素养,我们开展了单片机实训课程。

通过本次实训,学生们不仅学习了单片机的基本原理,还掌握了单片机的编程和硬件调试方法。

以下是本次实训的结果分析。

二、实训目的与内容1. 实训目的(1)使学生掌握单片机的基本原理和组成结构。

(2)使学生熟悉单片机的编程方法和调试技巧。

(3)培养学生动手能力和团队协作精神。

(4)提高学生解决实际问题的能力。

2. 实训内容(1)单片机基本原理和组成结构。

(2)单片机的编程语言(如C语言、汇编语言)。

(3)单片机的硬件调试方法。

(4)单片机应用系统的设计与实现。

三、实训过程1. 实训准备(1)教师讲解单片机基本原理、编程方法和调试技巧。

(2)学生预习相关教材和资料。

(3)学生熟悉实验设备和工具。

2. 实训实施(1)学生分组进行实验,每组选择一个实训项目。

(2)学生按照实训指导书的要求,完成实验任务。

(3)教师巡回指导,解答学生提出的问题。

(4)学生进行实验报告的撰写。

四、实训结果分析1. 学生掌握单片机基本原理和组成结构通过实训,学生了解了单片机的起源、发展、分类和应用领域。

同时,学生掌握了单片机的组成结构,如中央处理器(CPU)、存储器、输入/输出接口等。

2. 学生熟悉单片机的编程方法和调试技巧在实训过程中,学生学习了单片机的编程语言(如C语言、汇编语言),掌握了程序设计的基本方法。

此外,学生还学习了单片机的调试技巧,能够熟练使用调试工具进行程序调试。

3. 培养学生的动手能力和团队协作精神在实训过程中,学生需要自己动手搭建电路、编写程序、调试设备,这有助于提高学生的动手能力。

同时,学生在分组进行实验时,需要相互协作、共同解决问题,培养了团队协作精神。

4. 提高学生解决实际问题的能力在实训过程中,学生需要根据项目需求,设计电路、编写程序、调试设备,解决实际问题。

单片机实训教程实验报告

单片机实训教程实验报告

一、实验目的1. 熟悉单片机的基本结构和工作原理。

2. 掌握单片机的编程方法,包括C语言和汇编语言。

3. 学习单片机的接口技术和应用系统设计。

4. 培养动手能力和解决实际问题的能力。

二、实验环境1. 单片机开发系统:STC89C52单片机开发板2. 编译器:Keil uVision3. 调试器:Proteus4. 实验指导书:《单片机实训教程》三、实验内容1. 单片机基本原理实验(1)实验目的:了解单片机的结构、工作原理和引脚功能。

(2)实验步骤:1)搭建实验电路,连接单片机开发板与Proteus仿真软件;2)编写程序,设置单片机的工作模式;3)通过Proteus仿真软件观察单片机的运行状态。

(3)实验结果:通过仿真软件,观察到单片机能够按照程序的要求进行运行,实现了实验目的。

2. 单片机C语言编程实验(1)实验目的:掌握单片机的C语言编程方法。

(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写C语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。

(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。

3. 单片机汇编语言编程实验(1)实验目的:掌握单片机的汇编语言编程方法。

(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写汇编语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。

(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。

4. 单片机接口技术实验(1)实验目的:了解单片机的接口技术,掌握常用接口的编程方法。

(2)实验步骤:1)搭建实验电路,连接单片机开发板与外部设备;2)编写程序,实现单片机与外部设备的通信;3)通过Proteus仿真软件观察通信过程。

(3)实验结果:通过仿真软件,观察到单片机与外部设备能够成功通信,实现了实验目的。

单片机实习报告总结2篇

单片机实习报告总结2篇

单片机实习报告总结 (2)单片机实习报告总结 (2)精选2篇(一)在单片机实习中,我学到了很多关于单片机的基本原理和应用知识。

通过实际的操作和编程,我加深了对单片机程序设计的了解,并且掌握了一些基本的电路操作和信号处理技术。

在实习期间,我们完成了多个实验项目,包括LED灯闪烁、按键输入控制LED灯、数码管显示等。

通过这些实验,我熟悉了单片机的引脚功能和输入输出控制方法,并且学会了使用Keil和Proteus等软件进行程序设计和仿真。

在实验中,我遇到了一些问题,比如程序运行错误、电路连接错误等等。

但通过仔细检查和排查,最终成功解决了这些问题,并且从中得到了很多宝贵的经验和教训。

除了实验项目,我们还参观了一些单片机相关的企业和科研机构,并与一些从事单片机研发工作的专业人士进行了交流。

这让我更加了解了单片机在实际应用中的广泛领域,并且对未来的发展前景有了更清晰的认识。

通过这次实习,我不仅学到了专业知识,还培养了一些重要的职业素养,比如团队合作、问题解决能力、沟通能力等等。

这些都对我未来的工作和学习有着重要的影响。

总而言之,这次单片机实习让我受益匪浅,不仅加深了对单片机的理解和掌握,还提升了我在实践中的能力和素养。

我希望在以后的学习和工作中能够继续巩固和应用这些知识和经验,为实现自己的职业目标做出更大的贡献。

单片机实习报告总结 (2)精选2篇(二)单片机实习报告总结本次单片机实习报告总结了我在实习期间学到的知识和经验,对于该领域的的技术和应用有了更深入的了解。

在实习期间,我参与了各种单片机项目的设计和开发,锻炼了自己的实际应用能力。

首先,通过与老师和同学的交流,在实习期间我学会了如何从零开始设计一个单片机系统。

我学会了如何选择合适的单片机型号,了解了不同型号的性能和特点,以及如何根据项目需求选择合适的外设。

在项目的整个开发过程中,我学会了如何使用开发工具,比如KEIL和Proteus,进行程序的开发和仿真测试。

单片机实验报告(完整版)

单片机实验报告(完整版)

单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作。

二、实验仪器设备1.PC机,1台2.WAVE软件开发系统三、实验内容及步骤:1、将下面的汇编程序输入到W A VE集成开发软件中ORG 0000HSJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08HMOV R1,#70HMOV DPTR,#2000HLOOP:MOVX A,@R1MOVX A,@DPTRINC R1INC ADJNZ R7,LOOPSJMP $END2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。

3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

四、源程序源程序:ORG 0000H ;定义起始地址SJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08H ;给内部RAM的70H单元赋初值MOV R1,#70H ;使R1指向内部70H单元MOV DPTR,#2000H ;定义外部存储器开始单元LOOP:MOVX A,@R1 ;将R1所指向的70H的内容赋给AMOVX @DPTR,A;将A的内容赋给外部存储器单元INC R1 ;内部RAM地址加1INC DPTR ;外部存储器地址加1DJNZ R7,LOOP ;循环,直到RAM中70H~7FH;单元的内容全部相应赋给;外部2000H~2007H单元SJMP $END3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

五、仿真效果图实验二I/O端口操作一、实验目的:1、掌握I/O端口读写等基本汇编指令;2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。

单片机实验总结报告3000字范文

单片机实验总结报告3000字范文

单片机实验总结报告一、实验目的与意义单片机实验是电子、电气、计算机等专业学生必须掌握的基本技能之一。

本实验旨在通过实践操作,使学生掌握单片机的应用,了解单片机的内部结构、工作原理及编程方法,为后续专业课程和实际项目开发奠定基础。

本实验具有重要的实践意义,能够提高学生的动手能力、分析问题和解决问题的能力,培养学生的创新思维和团队协作精神。

二、实验原理单片机是一种集成度高、体积小、价格低、可靠性高的微控制器,广泛应用于工业控制、智能仪表、通信设备等领域。

单片机内部包含中央处理器、存储器、定时器/计数器、串行通信接口等模块,可以通过编程实现各种数字和模拟信号的处理和控制。

本实验采用常见的8051单片机作为实验对象,介绍单片机的最小系统、I/O口操作、中断系统、定时器/计数器、串行通信等基本功能。

通过实验,学生将了解单片机的内部结构和工作原理,掌握单片机的编程方法和常用外设的控制方式。

三、实验步骤与操作方法1、单片机最小系统搭建(1)准备实验器材:8051单片机开发板、杜邦线若干、USB 转串口线等。

(2)按照开发板上的标识,将各个元件焊接或插接到对应的焊盘上。

(3)连接电源,检查开发板上的电源和地线是否连接正确。

(4)通过USB转串口线将PC与开发板连接,确认通信正常。

2、I/O口操作实验(1)编写一个简单的程序,使单片机的P1口输出一个全高电平和一个全低电平,观察LED灯的状态变化。

(2)通过编程控制P1口输出不同的信号,如方波、三角波等。

(3)尝试使用P2口和P3口进行类似的实验操作。

3、中断系统实验(1)编写一个中断服务程序,当按下开发板上的按钮时,触发外部中断0(INT0),使P1口的LED灯闪烁。

(2)了解中断优先级的概念,并尝试改变中断优先级,观察实验结果。

4、定时器/计数器实验(1)编写一个程序,使定时器0在1秒内自动溢出,通过中断服务程序实现LED灯的闪烁。

(2)尝试改变定时器初值,观察LED灯闪烁的频率变化。

单片机实验报告(一)2024

单片机实验报告(一)2024

单片机实验报告(一)引言概述:本文档是关于单片机实验报告的第一部分。

在本实验中,我们使用了单片机进行各种电子电路的设计和实现。

本报告将详细介绍本次实验的目的、实验过程、实验结果以及相关的数据分析和总结。

正文内容:1. 实验目的:- 熟悉单片机的基本原理和操作方法;- 学习如何使用单片机进行数字信号处理;- 掌握通过单片机控制外围设备的方法;- 了解单片机在电子电路设计中的应用;- 培养动手能力和解决问题的能力。

实验过程:- 准备实验所需的器件和材料;- 搭建实验电路并连接单片机;- 编写程序并下载到单片机中;- 运行程序并观察实验现象;- 对实验结果进行测量和记录。

实验结果:- 在本实验中,我们成功完成了以下实验任务:实现一个LED灯的闪烁效果、实现一个温度传感器并显示温度值、通过单片机控制一个小型电机的转动。

- 实验过程中,我们观察到LED灯按照设定的时间间隔闪烁,温度传感器准确地显示了环境温度,并且成功地控制了电机的转动。

- 实验结果与理论预期相符合,证明了单片机在电子电路设计和控制方面的可行性和实用性。

数据分析:- 针对每个实验任务,我们对实验结果进行了数据分析和统计。

- 对LED灯的闪烁效果进行了频率和亮度的分析,验证了程序中设定的时间间隔和LED的亮度参数。

- 对温度传感器进行了精度和灵敏度的测试,发现与其输入温度之间存在一定的误差。

- 对电机控制实验进行了转速和转向的测量,得出了电机在不同控制模式下的转动情况。

总结:通过本次实验,我们熟悉了单片机的基本原理和操作方法,学习了如何使用单片机进行数字信号处理,并且掌握了通过单片机控制外围设备的方法。

本实验验证了单片机在电子电路设计和控制方面的可行性和实用性。

我们通过数据分析,对实验结果进行了详细的解读和讨论,并总结了实验中遇到的问题和经验教训。

在今后的实验中,我们将进一步深入学习和应用单片机技术,不断提高自己的动手能力和解决问题的能力。

单片机课程设计实验报告

单片机课程设计实验报告

单片机课程设计实验报告一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握其内部结构及工作流程。

2. 使学生掌握单片机编程的基本语法和编程技巧,能独立完成简单的程序编写。

3. 帮助学生了解单片机在现实生活中的应用,提高对新技术、新领域的认识。

技能目标:1. 培养学生运用单片机进行实验设计和实践操作的能力。

2. 培养学生分析问题、解决问题的能力,提高创新思维和动手实践能力。

3. 提高学生的团队协作和沟通能力,学会在实验过程中相互交流、共同进步。

情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养主动学习的习惯。

2. 培养学生严谨、细致的实验态度,养成良好的实验操作习惯。

3. 增强学生的自信心和责任感,使他们认识到学习单片机对国家科技发展的意义。

课程性质分析:本课程为单片机课程设计实验,侧重于实践操作和实际应用。

课程要求学生具备一定的电子技术基础和编程能力,通过实验深入了解单片机的工作原理和应用领域。

学生特点分析:本课程面向高年级学生,他们在之前的学习中已掌握了基本的电子技术和编程知识,具备一定的自学能力和动手实践能力。

但学生在单片机应用方面的实践经验不足,需要通过本课程加强实践锻炼。

教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。

2. 注重启发式教学,引导学生主动思考、探索,培养学生的创新精神和实践能力。

3. 关注学生的个体差异,给予个别辅导,确保每位学生都能达到课程目标。

二、教学内容1. 单片机基础知识:- 单片机原理与结构- 单片机内部资源及功能- 单片机编程语言(汇编语言、C语言)2. 单片机编程与实验:- 基本输入输出编程- 定时器、中断编程- 模数转换、串行通信编程3. 单片机应用案例:- 实例分析:温度控制器、智能小车等- 创新设计:学生自主选题,设计单片机应用项目4. 实验操作与调试:- 实验步骤与方法- 常用工具与仪器的使用- 故障分析与调试技巧教学大纲安排:第一周:单片机基础知识学习,包括原理、结构、编程语言等第二周:基本输入输出编程,实验一:LED灯控制第三周:定时器、中断编程,实验二:简易电子时钟第四周:模数转换、串行通信编程,实验三:温度传感器数据采集第五周:单片机应用案例分析,学生自主选题,设计单片机应用项目第六周:实验操作与调试,完成设计项目,撰写实验报告教材章节关联:教学内容与教材《单片机原理与应用》相关章节紧密关联,具体包括:- 第一章:单片机概述- 第二章:单片机的结构与原理- 第三章:单片机编程语言- 第四章:单片机内部资源及应用- 第五章:单片机实验与调试教学内容确保科学性和系统性,以培养学生的实际操作能力为目标,注重理论与实践相结合,提高学生的创新能力和实践技能。

西安电子科技大学单片机报告

西安电子科技大学单片机报告

单片机实验报告班级:学号:姓名:实验一:数码管实验一.实验目的1.了解数码管的显示原理;2.掌握JXARM9-2440 中数码管显示编程方法。

二.实验原理7段LED由7个发光二极管按“日”字形排列,所有发光二极管的阳极连在一起称共阳极接法,阴极连在一起称为共阴极接法。

LED显示器的接口一般有静态显示与动态显示接口两种方式。

本实验中采用的是动态显示接口,其中数码管扫描控制地址为0x20007000,位0-位5每位分别对应一个数码管,将其中某位清0 来选择相应的数码管,地址0x20006000 为数码管的数据寄存器。

数码管采用共阳方式,向该地址写一个数据就可以控制LED 的显示,其原理图如图所示。

三.实验内容及步骤1、六个数码管同时正向显示0-F ,然后反向显示F-0。

1)参照模板工程leddemo(modules\leddemo\leddemo.apj),添加相应的文件,并修改led 的工程设置;2)创建led.c 并加入到工程led 中;3)编写LED 显示函数void led_display(void),正向显示0-F 然后反向显示F-0,并循环执行以上动作,在每次显示之间延时一段时间;4)编译led,成功后,下载并运行,观察结果。

2、在六个数码管上依次显示“HELLO”,可分辨出轮流显示。

步骤同上。

3、在六个数码管上依次显示“HELLO”,分辨不出轮流显示。

步骤同上。

4、在每个数码管上递增显示0-9 。

步骤同上。

四.实验程序1、./*******************************************************************//*文件名称: LEDSEG7.C */ /*实验现象:数码管依次显示出0、1,2、……9、a、b、C、d、E、F */ /*******************************************************************/ #define U8 unsigned charunsigned char seg7table[16] = {/* 0 1 2 3 4 5 6 7*/0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8,/* 8 9 A B C D E F*/0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e, };void Delay(int time);/*******************************************************************/ /* 函数说明: JXARM9-2410 7段构共阳数码管测试 */ /* 功能描述: 依次在7段数码管上显示0123456789ABCDEF */ /* 返回代码: 无 */ /* 参数说明: 无 */ /*******************************************************************/ void Test_Seg7(void){int i;*((U8*)0x20007000)=0x00; /*六个数码管都亮*/for( ; ;){for(i=0;i<0x10;i++) /*数码管从0到F依次显示出来*/{*((U8*)0x20006000)=seg7table[i];Delay(1000);}for(0xf;i>=0x0;i--) /*数码管从F到0依次显示出来*/{*((U8*)0x20006000)=seg7table[i];Delay(1000);}}// TODO}/*****************************************************************/ /* Function name : 循环延时子程序 *//* Description : 循环 'time' 次 */ /* Return type :void */ /* Argument : 循环延时计数器 */ /*****************************************************************/ void Delay(int time){int i;int delayLoopCount=1000;for(;time>0;time--);for(i=0;i<delayLoopCount;i++);}实验结果:6个数码管上一次显示0,1,2…F,然后从F到0循环。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子科技大学学院实验报告实验名称现代电子技术综合实验姓名:学号:评分:教师签字电子科技大学教务处制电子科技大学实验报告学生姓名:学号:指导教师:熊万安实验地点:211大楼308 实验时间:一、实验室名称:单片机技术综合实验室二、实验项目名称:数码管显示A/D转换电压值及秒表三、实验学时:12四、实验目的与任务:1、熟悉系统设计与实现原理2、掌握KEIL C51的基本使用方法3、熟悉实验板的应用4、连接电路,编程调试,实现各部分的功能5、完成系统软件的编写与调试五、实验器材1、PC机一台2、实验板一块六、实验原理、步骤及内容试验要求:①、数码管可在第2位到第4位显示A/D转换的电压值,可调电压,数码管第5位显示“-”号,第6、7位显示2位学号;②、再按按键key1进行切换,此时数码管第6、7位显示从学号到(学号值+5秒)的循环计时秒表,时间间隔为1秒。

按按键key2时,秒表停止计数,再按按键key2时,秒表继续计数。

按按键key1可切换回任务1的显示。

③、当电压值大于2伏时,按按键不起作用。

1、硬件设计2、各部分硬件原理(相关各部分例如:数码管动态扫描原理;TLC549ADC特征及应用等)(1)数码管动态扫描原理多位联体的动态数码管段选信号abcdefg和dp(相当于数据线是公用的,而位选信号com是分开的。

扫描方法并不难,先把第1个数码管的显示数据送到abcdefg和dp,同时选通com1,而其它数码管的com信号禁止;延时一段时间(通常不超过10ms),再把第二个数码管的显示数据送到abcdefg和dp,同时选通com2,而其他数码管的com信号禁止;延时一段时间,再显示下一个。

注意,扫描整个数码管的频率应当保证在50Hz 以上,否则会看到明显的闪烁。

(2)TLC549ADC特征及应用等当/CS变为低电平后,TLC549芯片被选中,同时前次转换结果的最高有效位MSB (A7)自DAT端输出,接着要求自CLK端输入8个外部时钟信号,前7个CLK信号的作用,是配合TLC549 输出前次转换结果的A6-A0 位,并为本次转换做准备:在第4个CLK 信号由高至低的跳变之后,片内采样/保持电路对输入模拟量采样开始,第8个CLK 信号的下降沿使片内采样/保持电路进入保持状态并启动A/D开始转换。

转换时间为36 个系统时钟周期,最大为17us。

直到A/D转换完成前的这段时间内,TLC549 的控制逻辑要求:或者/CS保持高电平,或者CLK 时钟端保持36个系统时钟周期的低电平。

由此可见,在自TLC549的CLK 端输入8个外部时钟信号期间需要完成以下工作:读入前次A/D转换结果;对本次转换的输入模拟信号采样并保持;启动本次A/D转换开始。

(3)共阴极数码管共阴极数码管的一段连在一起接地,所以给一个高电平,相应的段位发光。

(4)按键逻辑按键逻辑是连接在P2.0到P2.7的。

当按键不按下的时候,输入为高电平,当按下按键,P2.x口与地相连,输入为低电平,所以按键是低电平有效。

3、软件设计(说明:我和另一个同学一起做的,所以在程序设计上增加了一个状态)思考题:按键改用外部中断模式,电路如何修改(画示意图)?程序如何修改,写出中断服务程序。

若按键改成外部中断模式,即把按键key2连接在INT0上。

电路示意图为:而中断服务程序为:void T0INTSVC() interrupt 0{ET0=1;EX0=1;EA =1;if(mbiao<2600&&TR0==1)mbiao=mbiao+1;if(mbiao==2600)mbiao=2000;y10=mbiao/1000;y=(mbiao-y10*1000)/100;}七、总结及心得体会通过本实验课程的学习,我初步掌握了KEIL C51的基本使用方法,并能够自主连接电路,编程调试,实现各部分的功能,进而整合自己所学知识进行简单的编程,完成一系列组合实验。

与此同时,我对中断和定时有了较深入的了解,对单片机的认识也有了进一步的提高。

八、对本实验过程及方法、手段的改进建议在本实验的实现过程中有几个问题需要注意:1、数码管是采取的动态扫描,所以位选频率一定要高于50Hz才能使人眼不能看到闪烁。

2、实验软件的环境配置没有针对本地开发板进行默认配置,所以有同学会出现下载到开发板而不能运行,如果有初始配置的话,程序的调试会更加方便。

九、附录1、程序/*利用TLC549 A/D转换器实现电压测量与显示*/#include <reg51.h> //包含8051的SFR寄存器定义头文件#include <absacc.h> //扩展并行接口所需的绝对地址访问库函数#define LED_dig XBYTE[0x9000] //8位数码管显示器的位选输出控制#define LED_seg XBYTE[0x8000] //8位数码管显示器的段码(字形码)输出控制#define KEY_IN XBYTE[0x8000]//定义TLC549操作接口sbit ADC_CS = P1^7;sbit ADC_DA TA = P1^6;sbit ADC_CLK = P1^5;code unsigned char disp_seg[]= //显示段码{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7c,0x39,0x5f,0x79,0x 71,0x40,0x00,0xff};// 0 1 2 3 4 5 6 7 8 9 a b c de f - blank,全亮unsigned char DispBuf[8]; //定义显示缓冲区(由定时中断程序自动扫描)unsigned char key_value; //定义按键int flag; //定义状态标志unsigned char y10,y; //定义秒表的个位,十分位unsigned short mbiao; //定义秒表计数单元void delay(int ms); //延时大约1ms unsigned char ReadAdc(void); //读取A/D转换结果void AdcInit(void); //初始化ADC接口void key_scan(void);void main(){unsigned char i=0;unsigned char volt, x100, x10, x;TMOD &= 0x0f;TMOD |= 0x10;TH1 = 0xFC;TL1 = 0x66;TR1 = 1;ET1 = 1;TMOD &= 0xf0;TMOD |= 0x01;TH0 = 0xdc;TL0 = 0x00;TR0 = 1;ET0 = 1;EA =1;AdcInit();for(i=0; i<8; i++)DispBuf[i] = 17; //全部8位显示灭y10=2;y=0;mbiao=2000;flag=0;while(1){while(flag ==0) //初始状态—学号状态{volt = ReadAdc(); //得到A/D转换结果的数字量(0x00~0xff)volt = volt * 250/256; //转换成电压值,其中Vr=2.5Vx100 = volt/100;x10 = (volt - x100*100)/10;x = (volt - x100*100)%10;DispBuf[7] = 17;DispBuf[6] = x100;DispBuf[5] = x10;DispBuf[4] = x;DispBuf[3] = 16;DispBuf[2] = 0;DispBuf[1] = 8;DispBuf[0] = 17;delay(100);if(key_value == 8&&volt<=200){flag = 3;while(key_value == 8);}}while(flag==1) //计数状态{TR0=1;volt = ReadAdc();volt = volt * 250/256; //转换成电压值,其中Vr=2.5Vx100 = volt/100;x10 = (volt - x100*100)/10;x = (volt - x100*100)%10;DispBuf[0] = 17;DispBuf[1] = y;DispBuf[2] = y10;DispBuf[3] = 16;DispBuf[4] = x;DispBuf[5] = x10;DispBuf[6] = x100;DispBuf[7] = 17;if(key_value == 8&&volt<=200){flag = 0;while(key_value == 8);} else if(key_value == 7&&volt<=200){flag = 2;while(key_value == 7);}}while(flag==2) //计数暂停状态TR0=!TR0;if(key_value == 7){flag = 1;while(key_value == 7);}}while(flag==3) //学号状态{volt = ReadAdc(); //得到A/D转换结果的数字量(0x00~0xff)volt = volt * 250/256; //转换成电压值,其中Vr=2.5Vx100 = volt/100;x10 = (volt - x100*100)/10;x = (volt - x100*100)%10;DispBuf[7] = 17;DispBuf[6] = x100;DispBuf[5] = x10;DispBuf[4] = x;DispBuf[3] = 16;DispBuf[2] = 2;DispBuf[1] = 0;DispBuf[0] = 17;delay(100);if(key_value == 8&&volt<=200){flag = 1;mbiao=2000;while(key_value == 8);}}}}/*函数:T1INTSVC()功能:定时器T1的中断服务函数*/void T1INTSVC() interrupt 3{code unsigned char com[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};static unsigned char n = 0;TH1 = 0xfc;TL1 = 0x66;TR1 = 1;LED_dig = 0xFF; //暂停显示if(flag==0){if(n==6)LED_seg = ~(disp_seg[DispBuf[n]]|0x80);elseLED_seg = ~disp_seg[DispBuf[n]];//更新扫描数据}if(flag==1){ if(n==6)LED_seg = ~(disp_seg[DispBuf[n]]|0x80);elseif(n==4)LED_seg = ~( disp_seg[DispBuf[n]] ); //更新扫描数据,elseLED_seg = ~disp_seg[DispBuf[n]]; //更新扫描数据}if(flag==2){LED_seg = ~disp_seg[DispBuf[n]]; //更新扫描数据}if(flag==3){if(n==6)LED_seg = ~(disp_seg[DispBuf[n]]|0x80);elseLED_seg = ~disp_seg[DispBuf[n]];//更新扫描数据}LED_dig = ~com[n]; //重新显示key_scan();n++;n &= 0x07;}void delay(int ms){unsigned int i,j;for(i=0; i<ms; i++) //延时大约1ms (fosc=11.0592MHz) {for(j=0; j<100; j++);}}/*函数:ReadAdc()功能:读取A/D转换结果返回:8位ADC代码*/unsigned char ReadAdc(void){unsigned char d; //读取得ADC结果unsigned char n; //ADC bit位计数ADC_CS = 0;n = 5;while ( --n != 0 ); //模拟tsu时间n = 8;do{d <<= 1;if ( ADC_DA TA )d = d | 0x01; //或d++;ADC_CLK = 1;ADC_CLK = 0;}while ( --n != 0 );ADC_CS = 1;return d;}/*函数:AdcInit()功能:初始化ADC接口*/void AdcInit(void){ADC_CS = 1;ADC_CLK = 0;ADC_DATA = 1;ReadAdc(); //空读一次,用于启动一次A/D转换过程}void key_scan(void){unsigned char key_in;key_in = KEY_IN;switch(key_in){case 0xff:key_value = 0;break;case ~0x01:key_value = 1;break;case ~0x02:key_value = 2;break;case ~0x04:key_value = 3;break;case ~0x08:key_value = 4;break;case ~0x10:key_value = 5;break;case ~0x20:key_value = 6;break;case ~0x40:key_value = 7;break;case ~0x80:key_value = 8;break;default:break;}}/*函数:T1INTSVC()功能:定时器T0的中断服务函数*/void T0INTSVC() interrupt 1{TR0 = 0;TH0 = 0xdc;TL0 = 0x00;TR0 = 1;if(mbiao<2600&&TR0==1)mbiao=mbiao+1;if(mbiao==2600)mbiao=2000;y10=mbiao/1000;y=(mbiao-y10*1000)/100;}。

相关文档
最新文档