文档库 最新最全的文档下载
当前位置:文档库 › 哈工大威海 单片机实验报告

哈工大威海 单片机实验报告

单片机实验报告

学号:100250212

姓名:

指导教师:

实验二

一、 实验目的

1 、 进一步了解开发系统的功能和使用;

2 、 了解程序设计与调试的基本过程;

3 、 了解简单程序和分支程序程序的特点和设计。

二、 实验内容

1 、 简单程序的设计、输入、调试和运行;

2 、 分支程序的设计、输入、调试和运行;

三、 实验步骤

1、设计、调试双字节乘法程序,功能为:(R2R3)*(R6R7)→R4R5R6R7 输入设计好的程序检查无误后,汇编。向R2R3和R6R7中输入多组不同的数据,运行

程序,观察R4R5R6R7中的内容,分析运行结果是否正确。

2、求符号函数⎪⎩

⎪⎨⎧<=>=)0()0()0(1-01X X X Y ,设:X →30H ,Y →31H 输入设计好的程序检查无误后,汇编。向30H 中输入多个不同的数据,运行程序,观

察31H 中的内容,分析运行结果是否正确。

3、将ASCII 码转换十六进制数

设ASCII码放在累加器A中,结果放回到A中,如果A中的内容不是十六进制的数的ASCII码,用户标志位F0置1。输入设计好的程序检查无误后,汇编。向A中输入多个不同的数据,运行程序,观察A中的内容,分析运行结果是否正确。

四、实验程序及分析结果

1、双字节乘法运算程序

程序如下:

ORG 0000H

LJMP MAIN

MAIN: MOV A, R3 ;先计算R7乘R3

MOV B, R7

MUL AB ;A中为积的低八位

MOV R1,A ;将低八位存入R1中

MOV R5,B ;将高八位存入R5中

MOV A, R2 ;计算R7乘R2

MOV B, R7

MUL AB

ADD A, R5 ;R5加至A

MOV R5, A ;将结果存入R5

MOV R4, B ;将高位结果存入R4

MOV A, R1

MOV R7, A ;将低八位存入R7中

JNC NEXT1 ;C为零则跳转

MOV A, R4 ;如果C为1则将R4加一

CLR C

ADD A, #01

MOV R4, A

NEXT1: MOV A, R3

MOV B, R6

MUL AB

ADD A, R5

MOV R5, A

MOV R1,B

MOV A, R4

JNC NEXT2

CLR C

ADD A, #1

NEXT2: ADD A, R1

MOV R4, A

MOV A, R2

MOV B, R6

MUL AB

ADD A, R4

MOV R4, A

MOV A, B

JNC NEXT3

CLR C

ADD A, #1

NEXT3: MOV R1, A

MOV A,R5

MOV R6, A

MOV A, R4

MOV R5, A

MOV A, R1

MOV R4, A

HERE: SJMP HERE

END

总体思想为将该16位乘法拆分为四步8位乘法运算在进行带进位的相加程序中每段分别实现一个八位乘法,然后与上次运算结果相加。

实验结果

该程序正确正确的执行出了结果,输入数据后其输出数据均正确。

2、符号函数程序:

ORG 0000H

START: MOV A,30H

CJNE A,#00H,NZ

AJMP LL

NZ: JB ACC.7,MM

MOV A,#01H

AJMP LL

MM: MOV A,#81H

LL: MOV 31H,A

HERE: SJMP HERE

END

总体思想:将30H中的数与0比较,相等则31H输出为0;不相等判断最高位(符号位),符号位为0,说明是整数,输出为01H;符号位为1,说明为负数,输出为81H。

3、码转换程序

ORG 0000H

CLR C

CLR F0

SUBB A,#30H

JC NASC

CJNE A,#0AH,NE1

NOP

NE1: JC ASC

SUBB A,#07H

CJNE A,#0AH,NE2

NE2: JC NASC

CJNE A,#10H,NE3

NE3: JNC ASC

NASC: SETB F0

ASC: NOP

HERE: SJMP HERE

END

总体思想:16进制包括0~9,A~F,0~9的ASC值为30~39,A~F的ASC 值为65~70,依次按程序判断给出的数是否在这两个区间之内,满足条件则输出对应的16进制数,不满足条件则用户标志位F0置1.

实验三

一、实验目的

1 、了解汇编语言程序设计与调试的过程;

2 、掌握循环程序、查表程序和子程序的特点及设计。

二、实验内容

1 、循环程序的设计、输入、调试和运行;

2 、查表程序的设计、输入、调试和运行;

三、实验步骤

1 、排序程序:将N 个数从小到大排列起来。设R0的内容为数

据区的首地址,R7的内容为数据的字节数。

ORG 0000H

LJMP MAIN

MAIN:

SS:MOV A,R7

MOV R2,A

MOV 60H,R0

NN:DEC R2

MOV A,R2

MOV R3,A

MOV R0,60H

L1:MOV A,@R0

INC R0

CLR C

SUBB A,@R0

JC MM

MOV A,@R0

DEC R0

XCH A,@R0

INC R0

MOV @R0,A

SETB F0

MM:DJNZ R3,L1

MOV A,R2

CJNE R2,#01H,RR

SJMP JJ

RR:JB F0,NN

JJ:MOV R0,60H

HERE: SJMP HERE

END

该程序为经典的冒泡排序算法为效率非常高的算法,其大体

思想如下:

1.比较相邻两个数,如果后一个大于前一个,则将两个数交

换,否则不进行任何动作

2.继续比较下一个数

3.如果本趟比较没有进行交换,则排序完毕

2 、查表程序设计一程序,将16进制数转换为对应的ASCII 码。设

16进制数放在R6中,转换结果放在R7中。

ORG 0000H

LJMP MAIN

MAIN: MOV A,R6

ANL A,#0FH

MOV DPTR, #TAB

MOVC A,@A+DPTR

MOV R7, A

MOV R7, A

HERE: SJMP HERE

ORG 0030H

TAB :DB ‘012345678’

DB ‘9ABCDEF’

END

程序基本思想:将R6输入的数作为地址偏移量,进行查表寻址,采用DPTR指针寻址,基址为表格起始地址

四、实验结果

将数存入相应的内存单元,运行程序,排序结果正确

程序二中装换结果正确。

实验四单片机中断实验

一、实验目的

1 、了解单片机的中断过程。

2 、了解单片机中断的触发方式。

3 、了解单片机中断的程序设计。

4 、学习中断服务程序的调试方法。

二、实验内容

1 、单片机外部中断的低电平触发方式

如图 3.4.1,按住开关K,在INT0 端产生一个低电平信号,触发外部中断,将事先送入

寄存器R1中的值由LED 即发光二极管电路显示出来。

2 、单片机外部中断的下降沿触发方式

如图 3.4.1,按一下开关K,在INT0 端产生一个下降沿信号,触发

外部中断,将事先送

入寄存器R1中的值由LED 即发光二极管电路显示出来。

注意:开关Kx可用查询式键盘中的任意一键代替。

三、实验步骤

1 、外部中断的低电平触发方式

(i )按图4-3 给出的原理图连好电路,其中Kx 可为‘开关量输入如模块’中的任意一个开关,用双头线与INT0 引脚(位于单片机扩展资源区(D1区))连接。

参考程序如下:

ORG 0000H

AJMP MAIN

ORG 0003H

AJMP ITAP

ORG 0030H

MAIN:MOV TCON ,#00H

SETB EX0

SETB EA

HERE:AJMP HERE

ORG 0040H

ITAP :MOV A,R1

MOV P1, A

RETI

END

2 、外部中断的下降沿触发方式

参考程序如下:

ORG 0000H

AJMP MAIN

ORG 0003H

AJMP ITAP

ORG 0030H

MAIN: MOV TCON , #01H

MOV IE , #81H

MOV R1, #21H

HERE: AJMP HERE

ORG 0100H

ITAP : MOV A, P1

SWAP A

MOV P1, A

RETI

END

程序一设为低电平触发方式,只要外部存在低电平,则执行中断服务程序,程序二为下降沿触发模式。

四、实验结果

程序一在低电平持续期间,不停执行中断服务程序,程序二只在下降沿是执终端服务程序。

实验五单片机定时/计数器实验

一、实验目的

1 、了解单片机定时/ 计数器原理、工作方式选择;

2 、了解单片机定时与计数器的工作过程;

3 、了解单片机定时/ 计数器的程序设计方法。

二、实验内容

1 、用定时、计数器控制图4-4 中的发光二极管,使其亮两秒,灭两秒,周而复始,设计该

程序。

三、实验步骤

1 、设T0定时间隔为50ms(方式),当定时时间到后,将P1.7 的输

出加到T1端作计数脉冲,需要定时两次才构成一个完整的计数脉冲,因此T1需计数20 次,才能完成2 秒的定时,

2 、计算定时/ 计数器的初值T0为定时方式,

设其初值为4C00H

T1为计数方式初值为256-10=246=ECH

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP T0_INT

ORG 0100H

MAIN: MOV TMOD, #61H

MOV TL1, #0ECH

MOV TH1, #0ECH

MOV TH0, #4CH

MOV TL0, #00H

MOV IE, #82H

SETB TR0

SETB TR1

LOOP1: JBC TF1, LOOP2

SJMP LOOP1

LOOP2: CPL P1.0

SJMP LOOP1

T0_INT: MOV TH0, #4CH

MOV TL0, #00H

CPL P1.7

RETI

END

每次经过50ms定时器一产生一个中断,将p1.7的电平翻转,产生100ms的脉冲,将其作为T1的计数输入端,则可产生一个周期两秒的脉冲

四、实验结果

P1.7的小灯按100ms的周期闪烁,P1.0的小灯按2s的周期闪烁。

哈工大威海 单片机实验报告

单片机实验报告 学号:100250212 姓名: 指导教师:

实验二 一、 实验目的 1 、 进一步了解开发系统的功能和使用; 2 、 了解程序设计与调试的基本过程; 3 、 了解简单程序和分支程序程序的特点和设计。 二、 实验内容 1 、 简单程序的设计、输入、调试和运行; 2 、 分支程序的设计、输入、调试和运行; 三、 实验步骤 1、设计、调试双字节乘法程序,功能为:(R2R3)*(R6R7)→R4R5R6R7 输入设计好的程序检查无误后,汇编。向R2R3和R6R7中输入多组不同的数据,运行 程序,观察R4R5R6R7中的内容,分析运行结果是否正确。 2、求符号函数⎪⎩ ⎪⎨⎧<=>=)0()0()0(1-01X X X Y ,设:X →30H ,Y →31H 输入设计好的程序检查无误后,汇编。向30H 中输入多个不同的数据,运行程序,观 察31H 中的内容,分析运行结果是否正确。 3、将ASCII 码转换十六进制数

设ASCII码放在累加器A中,结果放回到A中,如果A中的内容不是十六进制的数的ASCII码,用户标志位F0置1。输入设计好的程序检查无误后,汇编。向A中输入多个不同的数据,运行程序,观察A中的内容,分析运行结果是否正确。 四、实验程序及分析结果 1、双字节乘法运算程序 程序如下: ORG 0000H LJMP MAIN MAIN: MOV A, R3 ;先计算R7乘R3 MOV B, R7 MUL AB ;A中为积的低八位 MOV R1,A ;将低八位存入R1中 MOV R5,B ;将高八位存入R5中 MOV A, R2 ;计算R7乘R2 MOV B, R7 MUL AB ADD A, R5 ;R5加至A MOV R5, A ;将结果存入R5 MOV R4, B ;将高位结果存入R4 MOV A, R1 MOV R7, A ;将低八位存入R7中 JNC NEXT1 ;C为零则跳转 MOV A, R4 ;如果C为1则将R4加一 CLR C ADD A, #01 MOV R4, A NEXT1: MOV A, R3 MOV B, R6 MUL AB ADD A, R5

哈工大电子信息工程学院单片机软件实验报告2016_张迎新版

2.累加器A、堆栈指针SP的初始状态是什么? 累加器A的初始状态是00H; 堆栈指针SP的初始状态是07H ➢实验程序: ================================================ $NOMOD51 $INCLUDE (80C52.MCU) ;=============================================== ; DEFINITIONS ;=============================================== ;=============================================== ; VARIABLES ;=============================================== ;=============================================== ; RESET and INTERRUPT VECTORS ;=============================================== ; Reset Vector org 0000h jmp Start ;=============================================== Loop: jmp Loop ;=============================================== END

** 单个实验报告容限制在两页之,采用双面打印,所有报告统一装订;表头容需要手工签写。

================================================ $NOMOD51 $INCLUDE (80C52.MCU) ;=============================================== ; DEFINITIONS ;=============================================== ;=============================================== ; VARIABLES ;=============================================== ;=============================================== ; RESET and INTERRUPT VECTORS ;=============================================== ; Reset Vector org 0000h jmp Start ;=============================================== ; CODE SEGMENT ;=============================================== org 0100h ;=============================================== END

银行排队叫号系统设计实验报告(范本模板)

2011年至2012年第一学期《银行排队叫号系统设计》课程设计 班级1006402 指导教师涂立、李旎 学生人数 3 设计份数 1 2011年12月23日

银行排队叫号系统设计报告 一.设计时间 2011年12月 19日——---12月23日 二.设计地点 湖南城市学院实验楼计算机机房 三.设计目的 1.进一步熟悉和掌握单片机的结构及工作原理。 2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。 3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,详细使用Protel软件绘制原理图的过程. 4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。四.实验成员及分工 五。指导老师 涂立副教授、李旎讲师. 六.设计课题 设计一个银行排队叫号系统。 理由: 1、系统原理容易理解,更贴近我们的生活。 2、怎个系统简洁明了,适于初学者。 3、能提高我们的综合应用能力。 七.基本思路及关键问题的解决方法 用八个二极管表示客户取号的号码和营业员准备给那位客户办理业务的号码,用二进制表示,亮的二极管表示0,灭的二极管表示为1 。开关KEY为客户取号码是所用,KEY闭合时八个二极管的亮灭顺序就是客户的号码。开关KEY1,KEY2,KEY3,KEY4是分别在四个营业窗口,其中任意一个按下,八个二极管的亮灭会显示一个号码,此号码对应要办理业务客户的号码,与此同时蜂鸣器也会提醒客户。 八.算法及流程图 算法:程序利用循环结构检测整个系统中的客户端和叫号端是否有按键被按下,如果检测到有按下的信号,首先判断按下按键的端口的类型,然后相应的计数变量加一,并把计数变量的信息以二进制的形式传送到相应的端口;如果没检测到按下信号,程序则跳入下一个循环继续检测按键信息。 表1 元件清单

单片机原理与应用实验报告——温度测量显示及设定

《单片机原理与应用》课程实验报告 院系: 班级: 学生: 学号: 指导教师: 设计时间: 哈尔滨工业大学

1 实验的目的、内容和设备 1.1 实验的目的 单片机综合实验的目的是训练单片机应用系统的编程及调试能力,通过对一个单片机应用系统进行系统的编程和调试,掌握单片机应用系统开发环境和仿真调试工具及仪器仪表的实用,掌握单片机应用程序代码的编写和编译,掌握利用单片机硬件仿真调试工具进行单片机程序的跟踪调试和排错方法,掌握示波器和万用表等杆塔工具在单片机系统调试中应用。 1.2 实验内容 实验的内容是利用APP001开发板实现一个温度测量显示和控制的单片机应用系统,利用APP001开发板上的温度传感器测量温度,通过键盘输入一个稳定设定值,当测量温度高于设定温度时发出声音报警,开启散热风扇开关,并在LCD上显示实时温度值,设定温度值和散热风扇的开关状态,其中日期和时间利用单片机的定时器来产生,并能通过键盘来设定。通过该实验学习和掌握以下的内容: 1)MPLAB开发环境的使用,程序编写和排错及软件仿真 2)利用MPLAB和ICD2对程序进行在线仿真和调试 3)使用万用表和示波器等仪器对硬件系统进行测量和调试 4)PIC18F452单片机的I/O和PWM驱动及编程方法 5)PIC18F452单片机LCD和键盘接口及编程方法 6)PIC18F452单片机的USART编程及与PC机的通讯方法 7)利用Timer1外接32.768kHz的晶振产生RTC 1.3 实验设备 1)运行MPLAB的PC机 2)示波器、万用表

3)直流电源 4)ICD2仿真器 5)APP001多功能实验板 2 总体设计 2.1 硬件总体设计 系统组成方案 图1系统框图

单片机第二次实验报告

上海电力学院MCS-51单片机实验报告 题目:步进电机控制实验 院系:电气工程学院 专业年级: 学生姓名:

步进电机控制实验 一、实验目的 1、了解步进电机控制的基本原理。 2、掌握步进电机转动的编程方法。 二、实验内容 通过程序改变正、反转命令,转速参数和转动步数,并在显示器上显示,转动步数减为零时停止转动。 三、实验预备知识 步进电机驱动原理是切换每相线圈中的电流和顺序,来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。单片机控制步进电机最适合。 四、实验接线图 显示部分参考键盘显示控制器8279应用实验 五、实验程序框图 六、

七、实验步骤 1、将P1.0~P1.3分别接到BA~BD插孔。 2、用8芯排线将8279区(a-h)连接到数码管显示区的CODE(A-H),JB53(BIT0-BIT7)连接到数码管显示区的BIT1-BIT8。 3、用4芯排线将8279区的JB52(H1-H7)连到键盘区的KH(H1-H4)上,JB54(L4-L1)连到键盘区的KL(L4-L1)上。 4、8279区8279CS2连到系统译码的Y6上,8279CLK连接到固定脉冲的1MHz。 5、调试、运行程序test8中BJDJ.ASM。 6、在显示器上显示的数字第:第一位为“0”表示正转,为“1”表示反转,第二位“0~F”为转速等级,第三位到第六位设定步数,到0步进电机停止旋转。 七、实验小结 本次实验的内容是步进电机的控制,通过程序改变正、反转命令,转速参数和转动步数等。虽然实验的时候曾遇到过一些问题,最终还是较好的达到了实验目的,观察到了现象,并对程序有了一定程度的理解。

单片机课程实验报告

《单片机原理及应用》课程设计报告课题:单片机多功能系统设计 班级电子1071班 学号 1071205236 学生姓名张亮亮 专业电子信息工程 系别电子与电气工程学院 指导教师朱霞,付丽辉 淮阴工学院 电子信息工程系 20010年9月

目录 一. 设计目的及意义。。。。。。。。。。。。。。。。。。。。。。。。。。。(2) 二.设计过程。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(2) 三.硬件电路总体设计。。。。。。。。。。。。。。。。。。。。。。。。。。(3) 3.1 系统硬件总框图。。。。。。。。。。。。。。。。。。。。(3) 3.2 系统设计原理 3、2、1 系统处理器。。。。。。。。。。。。。。。。。。(3) 3、2、2 LED流水灯。。。。。。。。。。。。。。。。(4) 3、2、3 扬声器模块。。。。。。。。。。。。。。。。。。(5) 3、2、4数码管。。。。。。。。。。。。。。。。。。。。。。(6) 四.硬件Proteus仿真图。。。。。。。。。。。。。。。。。。。。。。。。(7) 五.软件流程框图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(8) 六.程序清单及注释。。。。。。。。。。。。。。。。。。。。。。。。。。。(9) 七.软件调试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(13) 八.心得体会。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(14) 九.参考文献。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(15)

一、设计目的及的意义 《单片机原理及应用》课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。在课程设计过程中,在教师指导和同学帮助下,应用工程的方法,通过一个简单课题的设计练习,可使学生初步体验单片机应用系统的设计过程、设计要求、完成的工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。 通过课程设计,能加强我们多项能力的培养: (1)独立工作能力和创造力; (2)综合运用专业及基础知识,解决实际工程技术问题的能力; (3)查阅图书资料、产品手册和各种工具书的能力; (4)工程绘图的能力; (5)编写技术报告和编写技术资料的能力。 二、设计过程 (1)认真研究设计任务书,明确设计要求、条件、内容和步骤;复习课程有关内容,熟悉有关单元电路的设计方法和步骤;搜集、分析、消化相关资料、软件等;掌握微型计算机应用系统软件设计方法;准备好设计需要的图书、资料和工具;拟定设计计划等; (2)系统总体及功能设计,制定总体方案及元器件的选择; (3)硬件设计,完成硬件结构图设计、系统电路图设计和绘制及电路模块的连接;

哈工大单片机实验报告

Harbin Institute of Technology 单片机原理与应用 实验报告 学生姓名: 学号: 班级: 专业: 任课教师: 所在单位: 软件实验

在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2000~20FFh的内容清零。 三、程序框图 四、实验过程 实验中利用MOVX语句,将外部存储器指定内容清零。利用数据指针DPTR完成数据传送工作。程序采用用循环结构完成,R0移动单元的个数,可用CJNE比较语句判断循环是否结束。 五、实验结果及分析 【问题回答】清零前2000H~20FFH中为内存里的随机数,清零后全变为0。

六、实验源程序 ;清零程序 ORG 0640H MOV DPTR,#2000H ;(2000H)送DPTR MOV R0,#00H HERE: MOVX @DPTR,A ;0送(DPTR) INC DPTR ;DPTR+1 INC R0 CJNE R0,#0FFH,HERE SJMP $ END 实验二拆字程序 一、实验目的 掌握汇编语言设计和调试方法。 二、实验内容 把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。 三、程序框图 四、实验过程 将寄存器中内容送入2000H,分别将高低四位移到低位,将高四位置零然后移入2001H 和2002H中。利用MOVX指令、DPTR指针可实现数据的传送,利用高低四位交换指令SWAP和与指令ANL可进行对高低位的清零。 五、实验结果及分析

2020年哈工大单片机实验报告

哈工大单片机实验报告 Harbin Institute of Technology 单片机原理与应用 实验报告 学生姓名学班专 号级业 任课教师所在单位 软件实验 -1- 在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2~2FFh的内容清零。 三、程序框图 四、实验过程 实验中利用MOVX语句,将外部存储器指定内容清零。利用数据指针DPTR完成数据传送工作。程序采用用循环结构完成,R移动单元的个数,可用CJNE比较语句判断循环是否结束。 五、实验结果及分析 【问题回答】清零前2H~2FFH中为内存里的随机数,清零后全变为。

-2- 六、实验源程序 ;清零程序 ORG 64H MOV DPTR,#2H ;(2H)送DPTR MOV R,#H HERE: MOVX @DPTR,A ;送(DPTR) INC DPTR ;DPTR+1 INC R CJNE R,#FFH,HERE SJMP $ END 实验二拆字程序 一、实验目的 掌握汇编语言设计和调试方法。 二、实验内容 把2H的内容拆开,高位送21H低位,低位送22H低位,21H、22H高位清零,一般本程 序用于把数据送显示缓冲区时用。 三、程序框图 四、实验过程 将寄存器中内容送入2H,分别将高低四位移到低位,将高四位置零然后移入21H和22H 中。利用MOVX指令、DPTR指针可实现数据的传送,利用高低四位交换指令SWAP和与指令ANL 可进行对高低位的清零。 五、实验结果及分析 -3- 【问题回答】将ANL A,#FH改为ORL A,#FH可以实现将高位置为1。 六、实验源程序 ; 拆字程序 START:MOV DPTR,#2H MOVX A,@DPTR MOV R,A SWAP A

LED流水灯设计-单片机控制

《微机应用系统设计与综合实验(实践)》 课程设计实验报告 实验课题LED霓虹灯设计 姓名 学号 班级 指导老师 目录 第一章设计概述 (3) 1.1 设计任务 (3) 1.2 设备器材 (3)

第二章硬件设计方案 (3) 2.1 设计思想 (3) 2.2 硬件选择 (4) 2.3 AT89C52单片机介绍 (4) 2.4 硬件逻辑图 (7) 2.5 设计连线 (8) 2.6 仿真电路图 (8) 第三章软件设计方案 (8) 3.1 软件设计思想 (8) 3.2 程序流程图 (9) 第四章调试及运行结果 (10) 第五章设计心得与体会 (10) 参考资料 (11) 源程序清单 (11) 第一章设计概述 1.1 设计任务 设计内容:利用汇编语言(或C语言),实现8个单色LED灯的左、右循环显示,并实现循环的速度可调。 选用芯片: 8255 等 注:由于实验室的没有提供8255芯片,所以改用单片机完成此实验,并且添加了调节灯明暗的功能,以实现明暗可调。

1.2 设备器材 在本设计中,所用到的设备器材如下所示: (1)计算机一台; (2)唐都仪器实验箱一台; (3) AT89C52单片机一片; (4)导线若干。 第二章硬件设计方案 2.1 设计思路 本课题需要用按钮开关实现流水灯的左右循环显示、调速、控制亮度的功能。可以选用五个开关来实现这些操作。单片机正在软件运行下通过不断扫描开关状态,来将相关操作对应量送入单片机的输入端口,然后判断属于哪一类操作。五个开关分别为K1,K2,K3,K4,K5,分别控制流水灯的调向、加速、减速、变亮、变暗。 在设计过程中,接开关的端口要全部保持高电平,当按下一个开关时,输入一个低电平,即为状态改变信号。不能同时有两个端口同为高电平。 在设计中我主要负责了用云脉冲宽度调制(PWM)波控制LED灯的亮度环节,开始对PWM并不是很了解,通过请教同学和查阅相关资料,渐渐明白了其中的原理。在主程序运行时通过中断方式调整其输出电压的占空比,从而改变灯泡的亮度。原理是这样的,主程序的始终频率和中断的始终频率并不相同,大约是中断的一千倍,LED灯在移动时如果响应了中断,则在执行中断程序时,LED 灯近似看做没有移动,此时在中断程序中设计一个初值和一个上限,当计数到初值时置灯泡灭掉,在计数到上限之前小灯泡都是熄灭的,到达上限后回0,并置灯泡为亮,继续计数,在到设定的初值时置小灯泡为灭掉。这样在主程序的一个周期内,中断程序将小灯泡置明置暗了近一千次,通过改变设定的初值可以改变小灯泡的亮度。 2.2 硬件选择

AD转换实验报告

8292924809 基于单片机的AD转换电路 专业: 班级: 学号: 组员: 指导老师: 年月日

目录 键入章标题(第 1 级) (1) 键入章标题(第2 级) (2) 键入章标题(第3 级) (3) 键入章标题(第 1 级) (4) 键入章标题(第2 级) (5) 键入章标题(第3 级) (6)

引言 A/D转换是指将模拟信号转换为数字信号,这在信号处理、信号传输等领域具有重要的意义。常用的A/D转换电路有专用A/D集成电路、单片机ADC模块,前者精度高、电路复杂,后者成本低、设计简单。基于单片机的A/D转换电路在实际电路中获得了广泛的应用。 一般的A/D转换过程是通过采样、保持、量化和编码4个步骤完成的,这些步骤往往是合并进行的.当A/D转换结束时,ADC输出一个转换结束信号数据。CPU可由多种方法读取转换结果:a查询方式;b中断方式;c DMA方式。 通道8为A/D转换器,ADC0809是带有8为A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成.多路开关可选通8个模拟通道,允许8路模拟量分时输出,共用A/D转换器进行转换。三台输出锁存器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据. 一个实际系统中需用传感器把各种物理参数测量出来,并转换为电信号,在经过A/D转换器,传送给计算机;微型计算机加工后,通过D/A转换器去控制各种参数量。

相关文档
相关文档 最新文档