单片机实验报告(3)
单片机实验报告
单片机实验报告实验一:存储器块清零或赋值一、实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。
2 熟悉循环结构程序的编写。
3 熟悉编程环境和程序的调试。
二、实验内容指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。
例如将4000H开始的10个字节内容清零或全部赋值为33H。
注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。
2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。
5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。
三、实验仪器微机、VW,WA VE6000编程环境软件,(单片机实验箱)Lab6000/Lab6000通用微控制器MCS51实验四、实验步骤1、新建工程文件。
(注意:文件不要用中文名称保存时不要用中文路径)2、编写程序。
3、运行和调试过程。
外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH):单步执行程序,观察SFR中外部地址指针的变化;全速执行程序,可以看到外部数据存储器已赋值33H:五、实验结果可以看到外部数据存储器已赋值33H:六、问题讨论本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。
同时,学习掌握汇编程序的编写和调试过程。
实验二:存储块移动一、实验目的1 熟悉51汇编语言程序结构。
2 熟悉循环结构程序的编写,进一步熟悉指令系统。
3 熟悉编程环境和程序的调试。
二、实验内容将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。
单片机外部中断实验报告
单片机外部中断实验报告实验三外部中断实验报告班级:学号:姓名:教师:一、实验LI的1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管DPD8O每当发生外部中断时,发光二极管以向下流水灯的方式点亮。
分别选择边沿触发外部中断放是和电平触发外部中断方式两种。
三、编程提示1、P3 口是8位准双向口,具有双重功能:第一功能和P1 口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3. 0RXD串行输入口P3. 1TXD串行输出口P3. 2INTO外部中断0请求输入线P3. 3INT1外部中断1请求输入线P3.4TO定时器/计数器TO外部计数器脉冲输入线P3. 5T1定时器/计数器T1外部计数器脉冲输入线P3. 6WR外部数据存贮器写脉冲输出线P3. 7RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断003H定时器/计数器T1溢出中断OBH外部中断113H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EAESET1EX1ET0EX0(1)外部中断源允许中断(中断0: EX0=l;中断1: EXl=l)o(2)CPU 开中断(EA二1)。
(3)外部中断方式CPU发出中断申请。
4、外部中断方式的选择控制TCOX:TF1TR1TF0TR0IE1IT1IE0IT0IT0是选择文字则外部中断0请求(INTO)边沿触发方式或电平触发方式的控制位。
前一方式IT0二1,后一方式IT0二0。
IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。
前一方式IT1=1,后一方式ITl=0o当8031复位后,TCON被清0。
5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。
单片机实验3 数码管控制实验-动态显示
;实验名称:数码管动态显示
;功能:4位数码管循环显示“0123”“4567”“89AB”“CDEF”,间隔0.5S。
;编写人:陈建泽
;编写时间:2010年11月2日
/**********************程序代码************************/
D1MS: MOV R2,#250 ;250*(1+1+2)=1000us=1ms
L1:NOP
NOP
DJNZ R2,L1
RET
/*****************中断服务子程序*****************/
T0_INT:MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
MOV A,R4
CJNE A,#16,L3
AJMP MAIN
L3:MOV R5,A
AJMP L1
DIS:MOV P2,R6;用A作为中间寄存器,因后面要循环显示
MOV A,R5
ACALL SQR ;查表
MOV P0,A
ACALL D1MS ;1ms
INC R5
MOV A,R6
RL A;指向下一位
MOV R6,A
RET;子程序返回
TAB: DB 0C0H,0F9H,0A4H,0B0H ;共阳极字型码表0、1、2、3
DB 99H, 92H, 82H, 0F8H;共阳极字型码表4、5、6、7
DB 80H, 90H, 88H, 83H;共阳极字型码表8、9、A、B
DB 0C6H,0A1H,86H, 8EH;共阳极字型码表C、D、E、F
单片机实验报告范文
单片机实验报告范文一、实验目的本实验的目的是通过学习单片机的基本原理和使用方法,掌握单片机在各个实际应用中的基本技能。
二、实验器材及原理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灯、按键控制、数码管显示等。
这些技能对于日常生活和工程设计都具有很大的实用性。
在实验过程中,我们遇到了各种问题,如电路连接错误、程序编写错误等。
单片机实验报告
七、实验程序
ORG 0000H
AJMP START
ORG 0040H ;?
START: MOV A,#00H
MOV DPTR,#8000H
MOVX @DPTR,A
LCALL DY1
MOVX A,@DPTR
mov p1,a
; LCALL CONVER
;LCALL DISP8279
LCALL DELAY
7、在上位机上运行串口发送软件DVSIO,在窗口中参数设置选择 BP1200(通信波特率),设置连接的串口号(就是刚才得用户通信线接 入的串口)COM1或COM2,再打开串口,如图9-2所示。
图9-2 13、从上面软件窗口里的键盘上点击“0—F”数字按钮,相应的数字 会显示在实验系统的数码管上。 14、也可以通过串口调试助手进行操作。
MOV A,#10000100B LCALL WRCMD MOV A,78H LCALL WRDATE MOV A,79H LCALL WRDATE
MOV A,7AH LCALL WRDATE
MOV A,7BH LCALL WRDATE MOV A,7CH LCALL WRDATE MOV A,7DH LCALL WRDATE MOV A,7EH LCALL WRDATE MOV A,7FH LCALL WRDATE RET
四、 实验原理图和接线图 1、A/D转换原理图见附件
五、实验程序框图 如图5-1所示
六、实验步骤 1、1号模块上0809的0通道IN0用插针线接至主板模拟电压产生 Vout插孔(0~5V)。 2、1号模块上0809的CLK插孔与固定脉冲输出端500KHz(T3)相 连。 3、1号模块上0809的片选CS_0809连接至系统板译码输出Y0。 4、1号模块上/RD、/WR连到系统板的/RD、/WR。 5、1号板上的JD连到系统板的JD1-JD2任一插座上。 6、1号板J0连到底板电源J1-J3任一插座上,J00接底板电源J4。 7、系统板J0连到底板电源J1-J2任一插座上。 8、底板数码管显示JX连到系统板P1的任一插座,COM1和COM2接 +5V。
单片机综合实验报告
摘要单片机应用技术课程为一门理论与实践相结合的课程,本课程安排的实验旨在培养学生软硬件开发能力,用编程语言及硬件设备实现串、并行通讯、计数/定时、A/D、D/A等硬件接口的功能,进一步加深对常用硬件芯片的了解和应用,以及学习用单片机解决实际问题。
实验要求学生利用编程语言及硬件设备实现单片机的方案设计、程序编写、硬件连接、调试,从中体会具体硬件接口的应用技巧,进一步理解硬件接口芯片,逐步掌握单片机系统的开发和应用方法。
此次试验设计主要以STC89C52RC单片机为核心,由系统开发板、74LS138译码器、8253计数器等元件构成跑马灯以及方波的相关试验。
基于题目基本要求,首先我熟悉单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的使用方法。
然后根据系统要求设计电路图,编写汇编语句,购买试验器件,焊接试验电路。
最后进行试验调试。
通过自己不懈的努力,最终完成了试验。
目录实验一构建单片机最小系统和实验环境熟悉 (2)第一部分:实验要求 (2)一、预习要求 (2)二、实验目的 (2)三、实验内容 (2)3.1单片机最小系统实验 (2)第二部分:实验过程 (2)一、单片机最小系统实验 (2)二、实验总结 (4)通过这次实验让我们对单片机最小系统有了一个清晰的认识,为下面的试验打好了基础。
实实验二跑马灯实验及74HC138译码器 (4)第一部分:实验要求 (5)一、预习要求 (5)二、实验目的 (5)三、实验内容 (5)3.1跑马灯实验: (5)3.2 74HC138译码器实验: (5)第二部分:实验过程 (5)一、通过74HC138译码器实现跑马灯 (5)1.1 74HC138译码器介绍 (5)1.1.1 74HC138译码器引脚图 (6)1.1.2 74HC138译码器真值表 (6)1.2 74ls138跑马灯原理图 (7)1.3程序流程图 (7)1.4实验程序代码 (8)三、调试结论 (9)实验三8253方波实验 (10)第一部分:实验要求 (10)一、预习要求 (10)二、实验目的 (10)三、实验内容 (10)第二部分:实验过程 (10)一、8253芯片介绍 (10)1.1 8253引脚图 (10)1.2 8253工作方式 (11)二、使用8253产生方波 (12)2.1实验原理图 (13)2.2程序流程图 (13)2.3实验程序代码 (14)三、调试结论 (15)实验课程总结 (16)参考文献 (16)实验一构建单片机最小系统和实验环境熟悉第一部分:实验要求一、预习要求1.构建单片机最小系统,熟悉51单片机的结构及编程方法。
单片机实验报告
单片机原理与应用实验报告学校:合肥工业大学班级:计算机科学与技术学号:姓名:第一章MC51 单片机原理及应用软件实验实验1:系统认识实验1.实验目的(1)了解ZY15MCU12BC2单片机实验开发装置的接线与安排。
掌握实验箱内拨位开关KF,KC的使用方法。
(2)通过实例程序的编辑、编译、链接及调试,熟悉Keil C51软件的使用方法和基本操作。
(3)教育学生爱抚实验装置,养成良好的实验习惯。
2.试验设备(1)ZY15MCU12BC2单片机实验开发装置一台。
(2)PC系列微机及相关软件。
3.试验内容(1)使用串行通讯电缆将实验开发装置与PC机相连。
(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。
(3)确认拨位开关KF的开关为A端,确认89C51处于仿真状态。
(4)在uVision2开发平台上建立并编辑示例程序:计算N个数求和程序。
其中N个数分别放在片内RAM区50H到55H单元中,N=6,求和的结果放在片内RAM区03H(高位)和04H(低位)单元中。
题目:1)32H+41H+01H+56H+11H+03H=?2)895H+02H+02H+44H+48H+12H=?(5)编译连接源程序。
(6)在Keil uVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H(高位)、04H(低位)单元中的数据是否正确。
(7)实验结束,撤出接线,将一切整理复原。
4.实验源程序ORG 0000HLJMP MAINORG 1000HMAIN: MOV R2,#06HMOV R3,#03HMOV R4,#04HMOV R0,#50HL1: MOV A,R4ADD A,@R0MOV R4,AINC R0CLR AADDC A,R3MOV R3,ADJNZ R2,L1END5. 实验结果截图6. 实验总结这次试验,熟悉了单片机开发的基本流程,对于实验的两道题目1)32H+41H+01H+56H+11H+03H=?2)895H+02H+02H+44H+48H+12H=?实验结果如上图所示50H~54H存放数据,第一道题计算出来是0x00DEH,第二道题目计算出来是0x0137H,实验结果和预期相符,成功的完成了实验。
单片机实验报告3
实验报告二、实验地点:图书馆816-2三、实验目的:了解MCS-51单片机定时器的结构及使用方法。
四、实验内容1.内容及要求:(1)用定时器1的方式1定时,P1.0接发光二极管,使发光二极管每秒钟闪烁1次。
程序如下:ORG 0000HLJMP STARTORG 001BHLJMP TIME1ORG 0100HSTART:MOV TMOD,#10HMOV TH1,#3CHMOV TL1,#0B0HSETB TR1SETB ET1SETB EAMOV P1,#00HMOV R2,#0AHSJMP $TIME1:MOV TH1,#3CHMOV TL1,#0B0HDJNZ R2,LOOPCPL P1.0MOV R2,#0AHLOOP:RETIEND(2)用定时器1的方式2计数,T1引脚接单脉冲,用P1口接二极管显示计数。
程序如下:ORG 0000HLJMP STARTORG 001BHLJMP TIME1ORG 0100HSTART:MOV TMOD,#60HMOV P1,#00HMOV TR1,#00HMOV TL1,#00HSETB EASETB ET1SETB TR1LOOP:MOV P1,TL1LJMP LOOPTIME1:RETIEND2.流程图:(1)图1 实验(1)流程图(2)图2 实验(2)流程图3.实验步骤(1)连接P1.0和与之对应的发光二极管。
(2)编写定时器计时的程序,打开实验箱,进行编译。
运行程序并观测实验箱。
若实验箱中发光二极管随着程序的运算每一秒闪烁一次,则实验成功。
(3)按照P1.0至P1.7连对应的八个发光二极管,P3.5接单脉冲。
(4)若实验箱上的发光二极管,随着按下单脉冲的次数,进行累加,则表示实验成功。
五、实验中遇到的问题及解决方法问题:进行定时实验时,老师要求将一秒闪烁五次改为一秒闪烁一次。
解决:利用公式(2^16-X)*2*10^(-6)=0.1,重新计算数值,每间隔100ms中断一次,计数初值算得15536,之后进入中断,重新装载初值,做11次中断之后对输出信号进行翻转就能得到一秒闪烁一次的结果。
单片机实验报告
单片机与嵌入式系统实验报告一、软件模拟调试实验:本部分实验内容主要为指令系统和汇编语言程序设计。
采用软件模拟调试的方法,目的在于通过这些实验使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。
实验一数据传送实验实验目的1、熟悉软件模拟调试环境。
2、掌握汇编语言程序设计的方法,加深对指令的理解。
3、学会软件模拟调试和察看、验证结果方法。
4、印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。
实验步骤1、进入调试软件环境,输入源程序;2、汇编源程序;3、用单步方式运行程序;4、检查并记录各寄存器和存储单元内容的变化。
实验内容:将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:ORG 0000HRESET:AJMP MAINORG 003FHMAIN:MOV R0,#40HMOV R2,#10HMOV A,#0A0HA1:MOV @R0,AINC R0INC ADJNZ R2, A1MOV R1,#10HMOV R0, #50HMOV R2, #10HA3: MOV A, @R1MOV @R0, AINC R1INC R2DJNZ R2, A3SJMP $END实验结果与分析:1、按照实验内容补全程序。
2、对源程序进行编译并查看相应程序存储器的内容,将源程序对应的机器码记录入下表,掌握ORG伪指令及汇编的过程。
ORG的作用及相关注意事项:ORG表示之后的语句从哪里开始,有的单片机里面的固定区域是用来做堆栈或者是子程序跳转地址的入口。
PC表示:下一条要执行的指令PSW表示:程序状态字,其各位的含义为:cy进位标志位AC辅助进位标志位Ov溢出标志位p校验位SP表示:堆栈指针R0~R7的物理位置:0000H-0007H3、运行机器码,查看片内数据区、CPU内寄存器的变化情况,按要求将结果记录入下表。
单片机课程设计实验报告
单片机课程设计实验报告单片机课程设计实验报告引言单片机是嵌入式系统中常见的一种计算机芯片,具有体积小、功耗低、成本低等优势。
本次实验旨在通过单片机的应用设计,加深对单片机原理和应用的理解,并提升解决问题的能力。
实验目的本次实验的目的是设计一个简单的温度监测系统,通过单片机采集温度传感器的数据,并将数据显示在液晶显示屏上。
通过这个实验,我们可以掌握单片机的基本编程和电路连接方法,同时加深对温度传感器的原理和应用的理解。
实验原理1. 单片机基本原理单片机是一种集成电路,内部包含了CPU、内存、输入输出端口等功能模块。
通过编程,可以控制这些功能模块的工作,实现各种应用。
2. 温度传感器原理温度传感器是一种能够感知环境温度变化的器件,常见的有热敏电阻、热电偶等。
本次实验使用的是热敏电阻,其电阻值随温度的变化而变化。
实验材料1. 单片机开发板2. 温度传感器3. 液晶显示屏4. 连接线等实验步骤1. 连接电路将单片机开发板与温度传感器、液晶显示屏连接起来,确保电路连接正确无误。
2. 编写程序使用C语言编写单片机的程序,实现温度传感器数据的采集和液晶显示屏的显示。
程序的基本思路是通过单片机的模拟输入端口读取温度传感器的电阻值,然后将电阻值转换为温度值,并将温度值显示在液晶显示屏上。
3. 烧录程序将编写好的程序烧录到单片机开发板上,确保程序能够正常运行。
4. 实验测试将温度传感器放置在不同的环境中,观察液晶显示屏上的温度数值是否能够准确显示,并记录实验结果。
实验结果与分析经过实验测试,我们发现温度传感器能够准确地采集环境温度,并将温度数值显示在液晶显示屏上。
通过对比实际温度和显示温度的差异,我们可以评估温度传感器的准确性和精度。
实验总结通过本次实验,我们深入了解了单片机的基本原理和应用,掌握了单片机的编程方法和电路连接方法。
同时,我们也加深了对温度传感器的原理和应用的理解。
这些知识和技能对于今后的学习和工作都具有重要意义。
单片机实验报告范文
单片机实验报告范文单片机(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、掌握单片机系统定时器断的原理及使用方法。
二、实验原理 (一)、单片机定时器/计数器的结构 1.定时器/计数器组成框图8051单片机内部有两个16位的可编程定时器/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其作为定时器用或作为计数器用。
此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。
_____INT1(P3.3)_____INT0(P3.2)T1(P3.5)T0(P3.4)图 8051定时器/计数器逻辑结构图由图可知,8051定时器/计数器由定时器 T0、定时器T1、定时器方式寄存器TMOD 和定时器控制寄存器TCON 组成。
2.定时/计数器的方式寄存器和控制寄存器定时/计数器的初始化通过定时/计数器的方式寄存器TMOD 和控制寄存器TCON 完成。
1)定时/计数器方式寄存器TMODTMOD 为T1、T2的工作方式寄存器,其格式如下:TMOD D7 D6 D5 D4 D3 D2 D1 D0(89H) TMOD 的低 (1(2)T /C :功能选择位。
0/C =时,设置为定时器工作方式;1/C =时,设置为计数器工作方式。
(3)GATE :门控位。
当GA TE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须0INT (P3.2)或1INT (P3.3)为高电平方可启动定时器,即允许外中断0INT 、1INT 启动定时器。
TMOD 不能位寻址,只能用字节指令设置定时器工作方式,高4位定义T1,低4位定义T0。
复位时,TMOD 所有位均置0。
2)定时器/计数器控制寄存器TCONTCON 的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。
定时器控制字TCON 的格式如下:TCON (88H ) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H(1) TCON.7 TF1:定时器1溢出标志位。
《单片机原理及应用》实验报告
《单片机原理及应用》实验报告一、实验目的本次实验旨在深入理解单片机的工作原理,掌握其基本的编程和应用方法,通过实际操作提高我们对单片机系统的设计和调试能力。
二、实验设备1、计算机一台2、单片机开发板一套3、下载线一根4、相关软件,如 Keil C51 等三、实验原理单片机是一种集成在一个芯片上的微型计算机,它包含了中央处理器(CPU)、存储器(ROM、RAM)、输入输出接口(I/O 口)等基本组件。
通过编写程序,可以控制单片机的各个引脚输出高低电平,实现对外部设备的控制和数据采集。
单片机的工作原理是基于时钟信号,按照程序指令的顺序依次执行操作。
程序通常使用 C 语言或汇编语言编写,经过编译后下载到单片机的存储器中,由单片机的 CPU 读取并执行。
四、实验内容1、点亮单个 LED 灯首先,我们将单片机的一个 I/O 口与一个 LED 灯相连。
通过编写程序,设置该 I/O 口输出高电平,使 LED 灯点亮;输出低电平,使 LED 灯熄灭。
程序代码如下:```cinclude <reg51h> //包含 51 单片机的头文件void main(){P1_0 = 1; //设置 P10 口为高电平,点亮 LED 灯while(1);//无限循环,保持 LED 灯常亮}```2、流水灯实验在这个实验中,我们使用多个 LED 灯,通过依次控制每个 LED 灯的点亮和熄灭,实现流水灯的效果。
程序代码如下:```cinclude <reg51h>void delay(unsigned int i) //延时函数{unsigned int j, k;for (j = 0; j < i; j++)for (k = 0; k < 125; k++);}void main(){unsigned char led ={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};//定义 LED 灯的控制码unsigned char i;while (1){for (i = 0; i < 8; i++){P1 = ledi; //依次输出控制码,点亮相应的 LED 灯delay(500);//延时一段时间}}}```3、按键控制 LED 灯我们将一个按键连接到单片机的一个I/O 口,通过检测按键的状态,控制 LED 灯的亮灭。
单片机实验报告
MOV TL1,#0F4H
MOV TH1,#0F4H
SETB TR1
DLAL:MOV SBUF,#99H
CHECK_99:JBC TI,WAIT_RSPS
JMP CHECK_99
WAIT_RSPS:JBC RI,CHECK_01
JMP WAIT_RSPS
CHECK_01:MOV A,SBUF
二.实验目的
(1)掌握中断系统的工作原理
(2)掌握中断向量的概念。
(3)学习外部中断的基本使用方法。
(4)学习外部中断的基本使用方法。
(5)学习中断处理程序的处理方法。
(6)掌握规范的程序设计方法。
三.实验元件
(1)AT89C51,LED-RED,RED-GREEN,BUTTON,RES
(2)AT89C51,LED-RED,BUTTON1,BUTTON2,RES
MOV TL0,#9CH
MOV TCON,#50H
MOV IE,#9AH
AJMP $
PINT0:MOV TL0,#9CH
CPL P1.0
RETI
PINT1:MOV TH0,#38H
CPL P1.1
RETI
END
(4)T0方式3 定时300us 输出占空比1/3矩形波查询方式
ORG 0000H
LJMP MAIN
D1:MOV R4,#255
D2:MOV R5,#255
D3:DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
SETB P0.1
RETI
END
(2)INT0、INT1中断控制LED
ORG 0000H
LJMP MAIN
单片机实验报告
单片机实验报告《单片机系统实验》实验报告院系:学号:姓名:2017年12月一、实验目的1.了解32位单片机(STM32系列)原理及其应用,熟悉单片机的资源,掌握单片机的最小系统设计及扩展技术,掌握单片机的编程语言。
2.通过本实验了解LCD液晶工作原理,能通过编程操作液晶的显示。
二、实验设备STM32实验系统一套,PC机一台。
三、实验原理(1)I/O口及定时器实验:STM32的GPIO口控制4个发光二极管,了解其硬件连接方式,学会使用STM32的一个定时器,掌握对定时器计时方式的编程。
编写程序循环点亮4个发光二极管,控制点亮时间为1秒钟闪烁。
(2)外部中断实验:掌握STM32单片机外部中断的用法,学会设置中断优先级,在实验(1)的基础上完成,如果有外部中断发生改变发光二极管的发光规律。
(如,仅其中2个灯亮,再次触发外部中断后,发光二极管重新变成4个灯循环点亮。
)(3)串行口通信实验:掌握STM32单片机与计算机之间的硬件连接方式,了解二者之间的传输协议,进行数据传输。
(4)LCD实验:掌握STM32单片机与液晶之间的硬件连接方式,单片机如何驱动液晶进行显示。
四、内容与步骤1.学会使用IAR或KEIL的编译链接调试环境,熟悉有关STM32使用到的库,并能顺利建立包含各种库文件的工程。
(2学时)2.I/O口实验:在建立工程的基础上能点亮发光二极管。
(2学时)3.定时器实验:循环定时(用定时器做)点亮4个灯,即每1秒闪烁点亮一个灯,循环往复(或叫跑马灯实验)。
(2学时)4.外部中断实验:按键作为触发外部中断的条件,中断发生时,改变发光二极管的点亮规律。
(2学时)5.串行口通信实验:编写串行口通信实验程序,能在计算机与STM32系统间进行ASCII码的传输。
(2学时)6.LCD实验:通过自行编写库文件和了解液晶显示字库,能在液晶上显示“北京航空航天大学机械工程及自动化学院”字样。
(6学时)五、关键代码1.I/O口及定时器实验/*通过定时器3中断函数实现跑马灯,现象为每个LED灯依次点亮1秒后熄灭*/void TIM3_IRQHandler(void){extern uint8_t LED_Status[5];if(TIM3->SR&0X0001)//溢出中断{if(LED_Status[1]==0){LED1_ON;LED2_OFF;LED3_OFF;LED4_OFF;LED_Status[1]=1;}else if(LED_Status[1]==1){LED1_OFF;LED2_ON;LED3_OFF;LED4_OFF;LED_Status[1]=2;}else if(LED_Status[1]==2){LED1_OFF;LED2_OFF;LED3_ON;LED4_OFF;LED_Status[1]=3;}else if(LED_Status[1]==3){LED1_OFF;LED2_OFF;LED3_OFF;LED4_ON;LED_Status[1]=0;}}TIM3->SR&=~(1<<0);//清除中断标志位}2.外部中断实验/*LED灯的发光规律有两种:一种是每个LED灯依次点亮1秒后熄灭,另一种是每次2个LED灯同时点亮,持续1秒后向前移动1个LED灯的位置。
单片机实验报告(学期全部实验)
单片机程序设计实验报告姓名:学号:专业班级:第二节课:实验一: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次后全部的灯亮,最后定义整个循环。
单片机 实验三中断及定时器实验
实验三:中断及定时器实验一、实验目的:1、弄清中断的概念、基本原理,掌握中断技术的应用2、了解中断初始化的方法,中断向量安装和中断服务子程序的设计方法。
3、了解定时/计数器的工作原理及MCS51单片机的定时器内部结构4、掌握时间常数计算方法5、掌握定时器初始化方法和定时中断程序设计方法二、实验内容:定时器实验1、这个是一个电子钟走时程序,利用定时器T0产生50ms中断,中断计数器中断20次为1秒,利用秒信号进行电子钟计时。
先读懂下面程序段,然后编辑、编译程序,并在伟福仿真器上模拟调试该程序。
程序清单如下:COUNT EQU 7FHCOUNT1 EQU 7EHS_MEM EQU 73HM_MEM EQU 72HH_MEM EQU 71HORG 0000HLJMP MAINORG 000BHLJMP INT_T0 ;“*1”MAIN: MOV SP,#2FHMOV TMOD,#BMOV TH0,#03CH ;50毫秒中断时间常数MOV TL0,#0BHMOV IE,#B ;开放T0MOV IP,#0MOV S_MEM,#0MOV M_MEM,#0MOV H_MEM,#0MOV COUNT,#20SETB TR0;______________________________________________________ W AIT:NOPSJMP W AITINT_T0: MOV TL0,#0BHMOV TH0,#3CHDJNZ COUNT,EXT_T0MOV COUNT,#20 ;恢复中断计数器INC S_MEM ;“*2”MOV A,S_MEMCJNE A,60,EXT_T0MOV S_MEM,#0INC M_MEMMOV A,M_MEMCJNE A,#60,EXT_T0MOV M_MEM,#0INC H_MEMMOV A,H_MEMCJNE A,#13,EXT_T0MOV H_MEM,#0EXT_T0: RETI2、按下列要求修改程序或回答问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及接口技术学院:光电信息科学与技术学院班级:一一实验报告册083-1实验一系统认识实验1.1 实验目的1. 学习keil C51 集成开发环境的操作。
2.熟悉td-51系统板的结构和使用。
1.2实验仪器pc 机一台,td-nmc+教学实验系统。
1.3实验内容1. 编写实验程序,将00h —0fh共16个数写入单片机内部ram 的30h —3fh空间。
2. 编写实验程序,将00h到0fh共16个数写入单片机外部ram的1000h到100fh空间。
1.4 源程序 0000hmov r1,#30h mov r2, #10h mov a, #00h mov @r1, a inc r1 inc a djnz r2,loop sjmp $ end2. org 0000hmov dptr, #1000h mov r2, #10h mov a, #00h movx @dptr, a inc dptr inc a djnzr2,loop sjmp $ endloop:loop:1.5 实验步骤1. 创建keil c51 应用程序(1)运行keil c51 软件,进入keil c51 集成开发环境。
-3 - ( 2)选择工具栏的project 选项,弹出下拉菜单,选择n ewproject 命令,建立一个新的卩visi on2 工程。
选择工程目录并输入文件名asm1后,单击保存。
(3)工程建立完毕后,弹出器件选择窗口,选择sst 公司的sst89e554rc 。
(4)为工程添加程序文件。
选择工具栏的file 选项,在弹出的下拉菜单中选择new目录。
(5)输入程序,将text1 保存成asm1.asm。
(6)将asm1.asm源程序添加到asm1.uv2工程中,构成一个完整的工程项目。
2.编译、链接程序文件(1 )设置编译、链接环境(2)点击编译、链接程序命令,此时会在output win dow 信息输出窗口输出相关信息。
3. 调试仿真程序(1)将光标移到sjmp $语句行,在此行设置断点。
(2)运行实验程序,当程序遇到断点后,停止运行,观察存储器中的内容,验证程序功能。
1.6实验结果.2.4实验二查表程序设计实验2.1 实验目的学习查表程序的设计方法,熟悉51的指令系统。
2.2实验设备pc 机一台,td-nmc+教学实验系统2.3实验内容1. 通过查表的方法将16进制数转换为ascii 码;2. 通过查表的方法实现y= x2,其中x为0—9的十进制数,以bcd码表示,结果仍以bcd码形式输出。
52.4实验步骤1. 采用查表的方法将16进制数转换为ascii 码。
(1)编写实验程序,编译、链接无误后联机调试;(2)将待转换的数存放在r7中,如令r7中的值为0x86 ;( 3 )在语句行sjmp main 设置断点,运行程序;(4)程序停止后查看寄存器r6、r5中的值,r6中为高4位转换结果0x38 , r5中为低4位转换结果0x36 ;(5)反复修改r7的值,运行程序,验证程序功能。
2. 通过查表实现y = x2,x为0 —9的十进制数,存放与r7中,以bed码的形式保存,结果y以bed码的形式存放于寄存器r6中。
(1)编写实验程序,经编译、链接无误后,进入调试状态;(2)改变r7的值,如0x07 ;(3)在语句行sjmp main处设置断点,运行程序;(4)程序停止后,查看寄存器r6中的值,应为0x49 ;(5)反复修改r7中的值,运行程序,验证程序功能。
2.5源程序及实验结果1. org 0000hljmp main org 0100hmai n: mov dptr, #asetabmov a, r7 anl a, #0fh move a, @a+dptr mov r5, a mov a, r7 anl a, #0f0h move a, @a+dptr mov r6, a sjmp mai n6asetab: db 30h, 31h, 32h, 33h, 34h,5h, 36h, 37h, 38h, 39hdb 41h, 42h, 43h, 44h, 45h, 46hend当令(r7)=86h时,高四位转换结果(⑹=38h,低四位转换结果(r5)=36h,当令(r7)=37h时,结果如下图:当令(r7)=09h时,高四位转换结果(⑹=30h,低四位转换结果(r5)=39h,结果如下图:2. org 0000hljmp mai nmain: org 0100h mov dptr, #sqrmov a, r7move a, @a+dptrmov r6, asjmp main sqr: db 00h, 01h, 04h, 09h, 16hdb 25h, 36h, 49h, 64h, 81hend当令(r7)=07h 时,(r6)=49h 。
结果如下图:实验三数据排序实验3.1 实验目的熟悉51的指令系统,掌握数据排序程序的设计方法。
3.2 实验设备pc机一台,td-nmc+教学实验系统3.3 实验内容在单片机片内ram的30h —39h写入10个数,编写实验程序,将这10个数按照由小到大的顺序排列,仍写入ram的30h —39h单元中。
3.4 实验步骤(1)编写实验程序,编译、链接无误后联机调试;(2 )为30h—39h 赋初值,如:在命令行中键入 e char d:30h = 9,11h,5,31h , 20h, 16h,1,1ah,3fh,8 后回车,可将这10个数写入30h—39h中;(3)将光标移到语句行sjmp $处,点击命令,将程序运行到该行;(4)查看存储器窗口中30h —39h中的内容,验证程序功能;(5)重新为30h —39h单兀赋值,反复运行实验程序,验证程序的正确性3.5 源程序org OOOOhljmp mai norg 0100hmain: mov r0, #30hmov r7, #0ahlp1: mov a, r7mov r6, amov a, r0mov r1, ainc r1Ip2: mov a, @r0clr csubb a, @r1jc Ip3mov a, @r03.6 实验结果实验四数字量输入输出实验4.1 实验目的了解p1 口作为输入输出方式使用时,cpu对p1 口的操作方式。
4.2 实验设备pc机一台,td-nmc+教学实验系统。
4.3 实验内容编写实验程序,将p1 口的低4位定义为输出,高4位定义为输入,数字量从p1 口的高4位输入,从p1 口的低4位输出控制发光二极管的亮灭。
4.4 实验步骤1. 按图3-1-1所示,连接实验电路图,图中“圆圈”表示需要通过排线连接;2. 编写实验程序,编译链接无误后进入调试状态;3. 运行实验程序,观察实验现象,验证程序正确性;4. 按复位按键,结束程序运行,退出调试状态;5. 自行设计实验,验证单片机其它io 口的使用。
4.5 源程序汇编:org OOOOhIjmp start org 0100h start: orl pl, #OfOh mov a,p1 swap amov pl, a sjmp start endc 程序:#in clude sst89x5x4.h void main( void) {}un sig ned char data i; while(1) { }p1 = p1 | OxfO; i = p1;p1 = (i& gt; >4)&0x0f;实验五中断系统实验5.1 实验目的了解mcs-51单片机的中断原理,掌握中断程序的设计方法。
5.2实验设备pc机一台,td-nmc+教学实验系统。
5.3实验内容1. 单片机集成的定时器可以产生定时中断,利用定时器0和定时器1,编写实验程序在p1.0及p1.1引脚上输出方波信号。
122. 手动扩展外部中断int0、int1 ,当int0产生中断时,使led 8亮8灭闪烁4次;当int1产生中断时,使led由右向左流水显示,一次亮两个,循环4次。
5.4 实验步骤1.定时器中断实验(1)编写实验程序,经编译、链接无误后,启动调试功能;(2)运行实验程序,使用示波器观察p1.0及p1.1引脚上的波形;(3)使用示波器测量波形周期,改变计数值,重新运行程序,反复验证程序功能;(4)按复位键退出调试状态。
2.外部中断实验(1)按下图连接实验电路;(2)编写实验程序,编译、链接无误后启动调试;(3)运行实验程序,先按kk1 ―,观察实验现象,然后按kk2 ―,观察实验现象;(4)验证程序功能,实验结束按复位按键退出调试。
外中断实验接线图5.5 源程序1.定时器中断实验汇编:org 0000hljmp start org 000bh ljmp timer0 org 001bh ljmp timer1 org 0100hmov tmod, #11h mov tcon, #50h mov ie, #8ah sjmp $timer0:cpl p1.0mov th0, #0f8h mov tl0, #00h retistart: mov p1, #0ffhmov th0, #0f8h mov tl0, #00h mov th1, #0f8h mov tl1, #00htimer1:cpl p1.1mov th1, #0f8h mov tl1, #00h reti endc 程序:#i nclude sst89x5x4.h sbit wave1 = p1A0; sbit wave2 = p1A1;void in t_timer0() in terrupt 1 { wave1 = ~wave1; }void in t_timer1() in terrupt 3 {}th1 = 0xf8; tl1 = 0x00;void mai n() {th0 = 0xf8; tl0 = 0x00; th1 = 0xf8; tl1 = 0x00; tmod = 0x11; tcon = 0x50; th0 = 0xf8; tl0 = 0x00;wave2 = ~wave2;14ie = 0x8a; while(1);}2. 外中断实验汇编:org 0000hIjmp start org 0003h Ijmp ein t0 org 0013h Ijmp eint1acall delay djnz r7, elp0 retiei nt1: mov a, #03hilp1:mov r7, #10h mov p1, a rl a rl a acall delay djnz r7, ilpl retistart: mov p1, #00hsetb it0 setb ex0 setb it1 setb ex1 setb ea sjmp $delay: mov r6, #0ffh dlpl: dlp2:mov r5, #0ffh djnz r5, dlp2 djnz r6, dlpl ret endein t0: mov r7, #04h elp0:mov p1, #0ffh acall delay mov p1, #00hc 程序#i nclude sst89x5x4.h #i nclude intrin s.h void delay(void)15{ }un sig ned int x;for(x=0; x<0xffff; x++);void int0_isr() interrupt 0 { }void in t2_isr() in terrupt 2 {unsigned char i=0x03, j; for(j=0; j<16; j++) {p1 = i;un sig ned char j; for(j=0; j<4; j++) { }p1 = 0xff; delay(); p1 = 0x00; delay();}}p1 = 0x00;void main () {p1 = 0x00;it0 = 1; ex0 = 1; it1 = 1; ex1 = 1; ea = 1; while(1);}i = _crol_(i, 2); delay();5.6 思考题设定int1为中断高优先级,在程序初始化中加一句:setb px1,则当按kk1-时,即int0产生中断时,led灯亮灭闪烁,在期间即使按动kk2_时,led就会由右向左流水显示,一次亮两个,循环4次,结束后会按照按动kk2-之前没有完成的次数继续直到4次。