单片机实验报告
第一次实验:编程与环境学习
1) 熟悉µ’nSP? IDE环境及在该环境下用汇编语言或C语言编写应用程序;
2) 熟悉简单的µ’nSP?汇编语言指令。
装有WINDOWS系统和µ’nSP? IDE仿真环境的PC机一台。
[实验内容[
1)用汇编实现1到200中的偶数的累加计算;
2)用汇编语言编写一个排序程序。
.IRAM
Array .DW 5,89,40,12,55,32,18,46,77,21
1)将µ’nSP? IDE打开后,建立一个新工程;
2)在该项目的源文件夹(SOURCE FILES)下建立一个新的汇编语言文件;
3)编写汇编代码;
4)编译程序软件调试观察并跟踪其结果。
[实验准备]
实验中的两个程序:
(1) .RAM
.CODE
.VAR Sum
.PUBLIC _main
_main:
R1=0x0002
R2=0x0000
Loop:
R2+=R1
R1+=2
CMP R1,200
JNA Loop
[Sum]=R2
Loop1: nop
JMP Loop1
.END
(2)
.IRAM
ARRAY: .DW 5,89,40,12,55,32,18,46,77,21
.VAR flag
.CODE
.PUBLIC _main
_main:
BP=array
R1=0x0009
R4=0x0000
[flag]=R4
Loop:R3=[BP]
CMP R3,[BP+1]
JB NEXT
R2=[BP+1]
[BP]=R2
[BP+1]=R3
R3=0x0001
[flag]=R3
NEXT:BP=BP+1
R1-=1
JNZ Loop
R4=[flag]
JNZ _main
Loop1:NOP
JMP Loop1
[实验中遇到的问题与解决措施]
编写程序中出现了一些逻辑错误,错将R1置为0x000A,改正后得到了正确结果。
第二次实验:并行I/O口
实验三:使用汇编语言实现A口的输出实验
实验四:使用C语言实现A口的输出实验
实验五:使用汇编语言实现A口为输入B口为输出实验
实验六:使用C语言实现A口为输入B口为输出实验
[实验目的]
1)通过实验掌握A口、B口作为输入和输出口时的使用方法;
2)使用汇编语言或C语言来实现A口或B口作为输入和输出口的实验。
1)装有WINDOWS系统和µ’nSP? IDE仿真环境的PC机一台;
实验三、四:通过点亮不同发光二极管来显示A口输出的数值不同。
实验五、六:根据按键的不同,A口的数据就不同,则传送到B口的数据就不同,相应的发光二极管被点亮。
该实验中用到实验箱中的逻辑电平指示灯和1*8的键盘。
1)逻辑电平指示灯:具有8 路,阳极接电阻排至V5( Vcc),I/O 端口低电平“点亮”。逻辑电平指示灯电路8 路图见下图:
逻辑电平指示灯电路原理图
2)1*8键盘电路
可分别“H” 或 “L”, 由SW 选择,配合内部的上拉/下拉电阻合理使用。
1*8 键盘电路原理图
[实验硬件连接]
实验内容二:B口输入,A口输出
[实验内容]
1、根据所提供的程序学习实验三、四、五、六。
2、建立一个项目,编写程序,实现:
按键连接B口作为输入,A口为输出连接发光二极管。通过按键控制相应的发光二极管亮或灭。
[实验准备]
(要求写出实验内容2的程序,加入适当的指令说明)
(1) 在试验5,6基础上改编程序实现B口输入A口输出:
Main函数里:
L_User_Init_IO: 改为:L_User_Init_IO:
R1 = 0x0000; R1 = 0x0000;
[P_IOA_Dir] = R1; [P_IOB_Dir] = R1;
[P_IOA_Attrib] = R1; [P_IOB_Attrib] = R1;
[P_IOA_Data] = R1; [P_IOB_Data] = R1
R1 = 0xffff; R1 = 0xffff;
[P_IOB_Dir] = R1; [P_IOA_Dir] = R1;
[P_IOB_Attrib] = R1; [P_IOA_Attrib] = R1;
R1 = 0x0000; R1 = 0x0000;
[P_IOB_Data] = R1; [P_IOA_Data] = R1;
RETF; RETF;
KEY函数里:
(1) F_Key_Scan_ServiceLoop:
r1 = [P_IOA_Data]; //从IOA口获取按键数据
改为: F_Key_Scan_ServiceLoop:
r1 = [P_IOB_Data] ; //从IOB口获取按键数据
(2) F_Key_Scan_ServiceLoop_2:
r1 = [P_IOA_Buffer]; //IOA7位置为0
r1 &= 0xFF7F;
[P_IOA_Buffer] = r1;
r1 = [P_IOA_Data]; //从IOA口获取按键数据
r1 &= 0x000F;
r2 = r1;
r3 = r2 xor 0xffff;
nop;
nop;
r1 = [P_IOA_Buffer]; // IOA7位置为1
r1 |= 0x0080;
[P_IOA_Buffer] = r1;
r1 = [P_IOA_Data];
改为:
r1 = [P_IOA_Buffer]; // IOA7位置为0
r1 &= 0xFF7F;
[P_IOA_Buffer] = r1;
r1 = [P_IOB_Data]; //从IOB口获取按键数据
r1 &= 0x000F;
r2 = r1;
r3 = r2 xor 0xffff;
nop;
nop;
r1 = [P_IOA_Buffer]; // IOA7位置为1
r1 |= 0x0080;
[P_IOA_Buffer] = r1;
r1 = [P_IOB_Data];
[实验中遇到的问题与解决措施]
开始时未改动按键函数,始终无变化,改动后,实验现象和预期的一样。
第三次实验:系统时钟与定时器
参看实验七:定时器Timer A/B实验
实验八:系统时钟实验
1) 通过实验了解定时器Timer A/B的结构及使用方法;掌握预置数单元P_TimerA/B_Data和定时控制单元P_ TimerA/B_Ctrl的设置方法;熟悉定时器Timer A/B的编程方法。
2) 了解SPCE061 PLL 振荡器的功能及其应用;掌握系统时钟单元P_SystemClock的设置方法;熟悉系统时钟和CPU时钟频率的编程方法。
同前。
[实验原理]
实验七:TimerA和TimerB定时器启动后在预置数单元P_TimerA_Data或P_TimerB_Data内置入一个计数初值N后,定时器/计数器会在选择的时钟源频率下开始向计数增加的方向计数,N+1,N+2,……FFFEH,当计数到FFFFH后定时器/计数器溢出。
一方面,产生一个中断请求信号TA_TimeOut_Int或TB_TimeOut_IntCPU,响应后执行相应的中断服务程序,与此同时计数初值N会被自动重新置入定时器/计数器内并重复上述加计数的过程。
另一方面,该溢出信号会作为脉宽调制输出计数器的时钟源输入,使其输出一个具有四位可调的脉宽调制占空比输出信号APWMO或BPWMO,其中IOB8,IOB9分别为APWM,BPWM的输出端。
实验八:在SPCE061A内,P_SystemClock(写)($7013H)单元控制着系统时钟和CPU时钟,通过设置该单元的b5-b7位可以改变系统时钟的频率(Fosc=20/24/32/40/49MHz);将第0-2位置为111可以使CPU时钟停止工作,系统切换至低功耗的备用状态。本实验通过选择不同Fosc信号频率或改变CPUClk频率来观察发光二极管亮灭的快慢。
[实验硬件连接]
实验七:IOB8接一个发光二极管
实验八:
[实验内容]
1)学习实验七、八;
2)建立新的项目,在定时器B下完成下列任务:
⑴当输入时钟分别为CLKA=FOSC/2、CLKA=FOSC/256、CLKA=32768HZ、CLKA=8192HZ、CLKA=4096HZ时观察输出频率;
⑵固定时钟,如CLK为4096HZ,设置不同的计数初值,观察溢出时IOB9输出;
⑶选择同一时钟源,改变占空比,观察灯的闪烁变化。
3)对实验八
1)选择不同FOSC信号频率,观察发光二极管亮灭快慢;
2)改变CPUCLK频率,观察发光二极管亮灭快慢。
[实验准备]
一, 写出实验内容二的程序,并说明如何完成或设置内容二中各个任务,预计实验结果。
在定时器B下工作:
实验七程序更改:第一初始化改变:
.DEFINE P_TimerA_Data 0x700A;改为.DEFINE P_TimerB_Data 0x700C;
.DEFINE P_TimerA_Ctrl 0x700B;改为 .DEFINE P_TimerB_Ctrl 0x700D;
第二IOB8输出改为IOB9 :
_main: 改为: _main:
R1=0x0100; R1=0x0200;
[P_IOA_DIR]=R1; [P_IOA_DIR]=R1;
[P_IOA_DIR]=R1; [P_IOA_DIR]=R1;
第三定时器A改为定时器B:
R1=0xff9f; 改为:R1=0xff9f;
[P_TimerA_Data]=R1; [P_TimerB_Data]=R1;
R1=C_Time_Clk_4096; R1=C_Time_Clk_4096;
[P_TimerA_Ctrl]=R1; [P_TimerB_Ctrl]=R1;
然后在保存运行即可实验现象和原例七timerA的结果类似。
[实验总结]
通过此次实验掌握了设置计数初值,频率和占空比的方法。而且观察到了不同的频率,计数初值,占空比对应的会有不同的实验现象。
第四次实验:定时器中断和时基中断
参看实验九:FIQ中断实验
实验十:IRQ0/IRQ1/IRQ2中断实验
实验十一:IRQ4中断实验
实验十二:IRQ5中断实验
实验十三:IRQ6中断实验
1)了解FIQ的中断向量和中断源; 掌握中断控制单元P_INT_Ctrl、P_INT_Clear的设置方法;熟悉定时器中断的编程方法。
2)了解IRQ0、IRQ1、IRQ2的中断向量和中断源; 掌握中断控制单元P_INT_Ctrl、P_INT_Clear的设置方法; 熟悉定时器中断的编程方法。
3) 了解IRQ4的中断向量和中断源; 掌握中断控制单元P_INT_Ctrl、P_INT_Clear的设置方法; 熟悉时基中断的编程方法
4) 了解IRQ5的中断向量和中断源; 掌握中断控制单元P_INT_Ctrl、P_INT_Clear的设置方法; 熟悉时基中断的编程方法
5) 了解IRQ6的中断向量和中断源; 掌握中断控制单元P_INT_Ctrl、P_INT_Clear的设置方法; 熟悉时基中断的编程方法
同前。
[实验原理]
实验十:IRQ0_PWM、IRQ1_TMA、IRQ2_TMB中断源,通过写P_INT_Ctrl来设置中断允许,IRQ1_TMA和IRQ2_TMB 中断源分别是通过定时器A、定时器B产生的。当计数满溢出时产生中断请求信号TA_TIMEOUT_Int或TB_TIMEOUT_Int,CPU响应后进入对应的中断,并在相应的中断程序里执行控制发光二极管亮灭的程序。
实验十一:IRQ4中断对应 4096Hz、2048Hz、1024Hz中断源,通过写P_INT_Ctrl来设置中断允许CPU响应后进入中断。我们编写一个用中断方式控制发光二极管亮灭程序,中断程序里读取P_INT_Ctrl单元,判断是哪个中断源转到相应中断程序控制对应发光二极管亮或灭,从而了解IRQ4 中断的组成及编程。
实验十二:IRQ5中断对应4Hz、2Hz中断源,通过写P_INT_Ctrl来设置中断允许程序运行后就会产生相应的中断。我们编写一个用中断方式控制发光二极管亮灭程序,中断程序里读取P_INT_Ctrl单元,判断是哪个中断源转到相应中断程序控制对应发光二极管亮或灭,从而了解IRQ5 中断的组成及编程。
实验十三:IRQ6 中断对应TMB1、TMB2中断源,先设置P_TimeBase_Setup通过改变TMB1_clk可以选择时基频率TMB1:8/16/32/64Hz;同样改变tmb2_clk可以选择时基频TMB2: 128/256/5122/1024Hz。写P_INT_Ctrl设置中断允许,CPU响应中断后可以通过读取P_INT_Ctrl 单元,判断是哪个中断源并进入相应的子程序控制发光二极管亮灭。
[实验硬件连接]
实验九、十、十二十三:A口的低四位接LED灯,
B口的低四位接LED灯。
实验十一:A口的低八位接LED灯。
[实验内容]
1学习实验九、十、十一、十二、十三;
2 建立新的项目,选用FIQ方式或IRQ方式实现定时器中断,使A口输出控制的发光二极管以1S的周期闪烁;使B口输出控制的发光二极管以2S的周期闪烁。
3建立新项目,选用IRQ4、IRQ5或IRQ5实现时基中断,使A口输出控制的发光二极管以2S的周期闪烁;使B口输出控制的发光二极管以4S的周期闪烁。
[实验准备]
要求:
1、写出实验内容2的程序,并说明如何完成或设置内容二中各个任务,预计实验结果。
实验程序:
选用FIQ中断方式中的定时器中断源,定时器A或B计满溢出产生中断请求信号。
.INCLUDE hardware.inc;
.DEFINE C_Timea_Clk 0x0005;
.DEFINE C_Timeb_Clk 0x0004;
.CODE
.PUBLIC _main
_main:
INT OFF
R1 = 0xffff //IOA口设为同相高电平输出口;
[P_IOA_ATTRI] = R1
[P_IOA_DIR] = R1
[P_IOA_DATA] = R1
R1 = 0xffff //B口的低8位设置为同相高电平输出 ;
[P_IOB_DIR] = R1
[P_IOB_ATTRI] = R1
[P_IOB_DATA] = R1
R1 = 0xdfff;
[P_TimerA_Data] = R1;
[P_TimerB_Data] = R1;
R1 = C_Timea_Clk;
[P_TimerA_Ctrl] = R1;
R1 = C_Timeb_Clk;
[P_TimerB_Ctrl] = R1;
R1 = 0xa800 //开中断FIQ_PWM、FIQ_TMA、FIQ_TMB
[P_INT_CTRL] = R1
INT FIQ
L_Loop:
NOP
JMP L_Loop
.TEXT
.PUBLIC _FIQ
_FIQ:
PUSH R1,r5 TO [sp] //压栈保护
R1 = 0x0800
test R1,[P_INT_CTRL] //比较是否为FIQ_TMB
JNZ L_FIQ_TMB //是,则转至对应程序段
R1 = 0x2000
TEST R1,[P_INT_CTRL] //否,则比较是否为FIQ_TMA
JNZ L_FIQ_TMA //是,则转至对应程序段
L_FIQ_PWM: //否,则进入FIQ_PWM中断
R1 = 0x8000
[P_INT_CLEAR] = R1
POP R1,r5 FROM [sp]
RETI
L_FIQ_TMA:
R1 = 0xfff0
[P_IOA_DATA] = R1
R5 = 0xffff; //延时
L_Delay1:
R2 -= 1;
JNZ L_Delay1;
R1 = 0xffff; //熄灭LED
[P_IOA_DATA] = R1;
R1 = 0x2000;
[P_INT_CLEAR] = R1;
POP R1,R5 FROM [sp];
RETI;
L_FIQ_TMB:
R1 = 0xfff0;
[P_IOB_DATA] = R1;
R2 = 0xffff; //延时
L_Delay2:
R2 -= 1;
JNZ L_Delay2;
R1 = 0xffff; //熄灭LED
[P_IOB_DATA] = R1;
R1 = 0x0800;
[P_INT_CLEAR] = R1;
POP R2,R5 FROM [sp];
RETI;
实验现象:
运行程序,与A口相连接的发光二极管闪烁两次,此时与B口相连接的发光二极管闪烁一次;A口的灯闪烁较快,B口的灯闪烁较慢,而且可以判断出A口灯的闪烁的周期是1S,B口灯的闪烁周期是2S。
2、写出实验内容3的程序,并说明如何完成或设置内容3中各任务,预计实验结果。
选用IRQ6实现时基中断。
.INCLUDE hardware.inc;
.DEFINE C_Tmb1clk_8Hz 0x0000
.DEFINE C_Tmb1clk_16Hz 0x0001
.DEFINE C_Tmb1clk_32Hz 0x0002
.DEFINE C_Tmb1clk_64Hz 0x0003
.DEFINE C_Tmb2clk_128Hz 0x0000
.DEFINE C_Tmb2clk_256Hz 0x0004
.DEFINE C_Tmb2clk_512Hz 0x0008
.DEFINE C_Tmb2clk_1024Hz 0x000c
.DEFINE C_Tmb1_clk C_Tmb1clk_64Hz
.DEFINE C_Tmb2_clk C_Tmb2clk_128Hz
.RAM
.VAR G_Time1
.VAR G_Time2
.CODE
.PUBLIC _main
_main:
INT OFF
R1 = 0xffff //设置IOA口为同相高电平输出口
[P_IOA_ATTRI] = R1
[P_IOA_DIR] = R1
[P_IOA_DATA] = R1
R1 = 0xffff //设置IOB口为同相高电平输出口
[P_IOB_ATTRI] = R1
[P_IOB_DIR] = R1
[P_IOB_DATA] = R1
R1 = C_Tmb1_clk
R1 |= C_Tmb2_clk
[P_Timebase_setup] = R1
R1 = 0x0003 //开中断IRQ6_C_Tmb1和IRQ6_C_Tmb2
[P_INT_CTRL] = R1
R1 = 0
[G_Time1] = R1
[G_Time2] = R1
INT IRQ;
L_Loop:
NOP
NOP
NOP
NOP
JMP L_Loop
.TEXT
.PUBLIC _IRQ6
_IRQ6:
PUSH R1,R5 TO [sp] //压栈保护
R1 = 0x0001
TEST R1,[P_INT_CTRL] //比较是否为IRQ6_C_Tmb2的中断源
JNZ L_IRQ6_C_Tmb2 //是,则转至对应程序段
L_IRQ6_C_Tmb1: //否,则进入IRQ6_C_Tmb1程序段;
R2 = [G_Time1]
R2 += 0x0001
[G_Time1] = R2
CMP R2,128 //比较是否为2秒;
JBE L_LED1_OFF //小于等于则LED灭;
R1 = 0xfff0 //大于则LED亮;
[P_IOA_DATA] = R1
CMP R2,256 //比较是否为4秒;
JBE L_LED1_RET //小于等于则LED继续亮;
R2 = 0x000 //否则,G_Time1单元清零,返回中断;
[G_Time1] = R2
JMP L_LED1_RET
L_LED1_OFF:
R1 = 0xffff
[P_IOA_DATA] = R1
L_LED1_RET:
R1 = 0x0002
[P_INT_CLEAR] = R1
POP R1,R5 FROM [sp]
RETI
L_IRQ6_C_Tmb2:
R2 = [G_Time2]
R2+ = 0x0001
[G_Time2] = R2
CMP R2,128 //比较是否为1秒;
JBE L_LED2_OFF //小于等于则LED灭;
R1 = 0xfff0 //大于则LED亮;
[P_IOB_DATA] = R1
CMP R2,256 //比较是否为2秒;
JBE L_LED2_RET //小于等于则LED继续亮;
R2 = 0x0000 //否则,G_Time2单元清零,返回中断;
[G_Time2] = R2
JMP L_LED2_RET
L_LED2_OFF:
R1 = 0xffff
[P_IOB_DATA] = R1
L_LED2_RET:
R1 = 0x0001
[P_INT_CLEAR] = R1
POP R1,R5 FROM [sp]
RETI
实验现象:
利用时基中断实现上述功能,现象同上。A口灯的闪烁的周期是2S,B口灯的闪烁周期是4S。
[实验总结]
通过此次实验更加直观的理解了定时器中断和时基中断的内容和区别。
第五次实验:A/D转换,双通道D/A
实验十七:A/D转换
实验十八:双通道D/A
实验十九:一路输入的录音
[实验目的]
1)了解ADC输入接口的结构与转换原理;熟悉模拟量输入口LINE_IN1—LINE_IN7的使用;掌握P_ADC P_ADC_Ctrl单元的设置方法;
2)了解音频输出接口的结构与转换原理;掌握P_DAC2、P_DAC1、P_DAC_Ctrl单元的设置方法;
3)了解ADC输入接口的结构转换原理及实时录音并实时播放的功能;熟悉麦克风输入口MIC_IN的使用;进一步掌握P_ADC、P_ADC_Ctrl、P_DAC1、P_DAC2、P_DAC_Ctrl各单元的设置方法。
[实验设备]
1)装有WINDOWS系统和µ’nSP? IDE仿真环境的PC机一台;
2)µ’nSP?十六位单片机实验箱一个。
[实验硬件连接]
实验十七:
[实验内容]
学习实验十七、十八、十九,观察结果。
[实验准备]
1.在十八实验中是如何实现三角波?
R1=0x0040
LOOP1: LOOP2:
R1+=0x0040 R1-=0x0040
CMP R1,0xff80 CMP R1,0x0040
JB LOOP2 JB LOOP1
[P_DAC1]=R1 [P_DAC1]=R1
[P_IOB_DATA]=R1 [P_IOB_DATA]=R1
JMP LOOP1 JMP LOOP2
实验现象:由于无法用示波器观察到波形,运行程序后,可以听到扬声器发出持续间断的声音。
2.如何实现录音并实时播放?
采用自动方式即定时器A溢出执行ADC转换,通过A/D将MIC_IN输入的语音信号转换为数字信号,再通过D/A 的两个通道AUD1和AUD2播放。
第二部分 语音实验
实验一: SACM-A2000
实验二: SACM-480
实验三 :SACM-240
实验四:SACM_MS01实验
[实验目的]
了解凌阳单片机以SACM_A20##、SACM-480、SACM-240、SACM_MS01等语音格式播放
程序的编写方法。
[实验设备]
1)装有WINDOWS系统和µ’nSP? IDE仿真环境的PC机一台;
2)µ’nSP?十六位单片机实验箱一个。
[实验硬件连接]
实验四:
[实验内容]
1)学习实验一、二、三、四;
2)建新项目,使用A480格式,编写三首曲子的循环播放。
程序如下
main ()
{
while(1)
{for(Speech_1=0;Speech_1<=2;Speech_1++)
{ SACM_S480_Initial(1);
SACM_S480_Play(Speech_1, DAC1+DAC2, Ramp_UpDn_On); //放音
while(SACM_S480_Status()&0x01)
{
SACM_S480_ServiceLoop();
}
}
}
}
实验现象:运行程序后,听到扬声器一次播放三首曲子,并且播放完后自动进入循环继续播放。
[实验总结]
在本次实验中程序运行后遇到无法打开scamv25文件,打开project的下拉菜单setting中的link选项进行修改后,程序顺利运行。
第三部分 综合实验
实验一 :6位7段LED数码管显示实验
实验二 :4*4键盘输入在LED数码管上的显示
[实验目的]
1)熟悉并进一步掌握定时器中断的使用和时基信号的使用;进一步巩固I/O口的使用方法;
2)了解6位7段LED数码管的使用;
3)了解4*4键盘的使用方法。
[实验设备]
1)装有WINDOWS系统和µ’nSP? IDE仿真环境的PC机一台;
2)µ’nSP?十六位单片机实验箱一个。
[实验原理]
实验一:
通过对I/O口的控制,初始化时点亮所有的数码管,即6位LED数码管均显示8,1s后从第一位数码管开始从0显示到9,刷新时间为0.5s,直到最后一个数码管。1s的时间使用定时器A(FIQ),0.5s的时间使用2HZ的时基信号IRQ5 。改a\b\c\d\e\f\g\为七段数位,DD为点或分隔符号,DP为小数点。 电路采用共阴动态连接,阴极公共端com由晶体管推动。
8 段LED 显示数码管电路原理图
实验二:
通过对键盘的操作,在LED数码管上给予显示及相应操作。
4*4 键盘矩阵电路为动态键盘扫描,C1-C4 为列扫描,R1-R4 为行扫描。
[实验硬件连接]
实验一、二:
A0—A6 接 A---G
A8—A13 接 CS1—CS6
B0—B7 接 KEY
[实验内容]
1)学习综合实验一、二;
2)针对实验准备内容完成实验。注意新建项目,或重新复制后修改;
3)改相应程序使实验一中数码管递减显示。
将数码管递减显示时
uchar show_value;改为:char show_value;
for(show_value=0;show_value<Show_Value;show_value++)改为:
for(show_value=9;show_value>=0;show_value--)
若不改为无符形式,则在0>=0循环后会出现0xffff>=0,于是出现乱码形式。
4)键盘原来以 123 显示,改为按 147 来显示。
456 258
789 369
需要改system.asm程序。其中
C_Address: .DW 0x003f,0x0086,0x00db,0x00cf,0x00e6,0x00ed,0x00fc,0x0087,0x00ff,0x00ef;//'0''1''2''3''4''5''6''7''8''9'的代码
将其改为
C_Address: .DW
0x003f,0x0086,0x00e6,0x0087,0x00db,0x00ed,0x00ff0x00cf,0x00fc,0x00ef;//'0''1''4''7''2''5''8''3''6''9'的代码
将代码位置变换即可。
[实验总结]
通过本次实验,充分了解了本实验的程序,学会如何控制数码管的显示。
单片机实验报告学生姓名学号专业指导教师学院信息与电气工程学院20xx年11月单片机实验报告实验一MCS51指令系统实验数据排序1实…
通信与信息工程学院20xx20xx学年第二学期实验报告课程名称单片机原理及应用专业班级学号学生姓名指导教师日期20xx年4月15日…
题目单片机组成原理实验报告学院计算机科学与工程学院专业信息安全姓名学号20xx年12月8日实验一输入输出接口编程一实验目的1掌握K…
51单片机课程设计报告学院:专业班级:姓名:指导教师:设计时间:51单片机课程设计一、设计任务与要求1.任务:制作并调试51单片机…
海南大学届单片机实验报告4份论文题目学生姓名学号所在院系专业班级授课教师完成时间蜂鸣器实验实验目的1熟悉实验板中蜂鸣器工作原理掌握…
题目单片机组成原理实验报告学院计算机科学与工程学院专业信息安全姓名学号20xx年12月8日实验一输入输出接口编程一实验目的1掌握K…
单片机实验报告(二)实验名称:定时器及外部中断南京理工大学紫金学院电光系一、实验目的1、学习定时/计数器的应用;2、学习外部中断技…
实验三外部中断实验报告班级学号姓名教师一实验目的1掌握单片机外部中断的原理及过程2掌握单片机外部中断程序的设计方法3掌握单片机外部…
实验名称中断技术基本时钟和定时功能实验45姓名学号实验班号21机器号一实验目的1了解中断原理包括对中断源中断向量中断类型号中断程序…
51单片机外部中断实验实验报告要求1整理本实验涉及的程序将它们按正确的格式详细书写在实验报告纸上1无中断时发光让发光二极管从左到右…