单片机实验报告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
mov 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 next2
jra $;;定义一个延时函数 delay
push cc
ldw y,#10 loop1 ldw x,#0ffffh loop decw x
jrne loop
decw y
jrne loop1
pop cc
ret
3、注意事项:
1)2)注意线路的连接是否正确。
编写代码是要认真仔细,减少错误。
四、实验总结(结果):
LED闪烁10次,熄灭的时间较长。然后再闪烁10,熄灭的时间较短。
单片机实验报告(实验二)
五、实验目的:
1)熟悉汇编语言,能用汇编语言编写单片机程序。2)对stm8的功能有进一步的了解。
3)学会用循环左移或右移,延时函数来控制8个LED,做出流水灯的效果。
六、实验仪器:
stm8s105c6单片机、单片机开发试验仪、杜邦线
七、实验内容:
4、步骤: 1)接线。将单片机与电脑连接起来,将转接板借入单片机试验仪,用杜邦线将PB口与LED的接线口连接起来。2)编写程序。在电脑上运行ST Visual Develop 软件,建立工程文件。然后编写代码,编译,检查是否有错误与警告,如果有,则对程序进行修改。
3)下载程序。如果没有,就进行程序调试,把程序下载到stm8单片机里面。4)结果分析。观擦8个LED的状态。
5、主程序(要有注释):
intel mov PB_DDR,#0ffh
;PB口输出 mov PB_CR1,#0ffh
;推挽
mov PB_CR2,#00h
rcf
ld a,#0ffh next
rlc a
;让a循环左移
ld PB_ODR,a
;把PB口定义为高电平输出
call delay
;调用延时函数
jra next
;8个LED一次点亮后,进入下一次循环
interrupt NonHandledInterrupt NonHandledInterrupt.l iret delay
;定义一个延时函数
push cc
ldw y,#5 loop1 ldw x,#0ffffh loop decw x
jrne loop
decw y
jrne loop1
pop cc
ret
6、注意事项:
1)线路是否连接正确。
2)编程时要注意选择相符的CPU型号
八、实验总结(结果):
一开始,8个LED全部熄灭,然后最右边的那个被点亮,其他为熄灭,接着右边倒数第二个被点亮,其他为熄灭。按照此规律,8个LED从右往左依次被点亮
单片机实验报告(实验三)
九、实验目的:
2)熟悉汇编语言,能用汇编语言编写单片机程序。
2)对stm8的功能有进一步的了解,掌握定时器的使用。3)完成一个 10S 计时器的设计,数码显示 1~10。
十、实验仪器:
stm8s105c6单片机、单片机开发试验仪、杜邦线
十一、实验内容:
7、步骤: 1)接线。将单片机与电脑连接起来,将转接板借入单片机试验仪,用杜邦线将PB口与数码管的接线口连接起来,J21(1-2脚短接),选用LED1,LED2两位数码管 PE6(pin12)->J16.1 PE7(pin11)->J16.2。
2)编写程序。在电脑上运行ST Visual Develop 软件,建立工程文件;选CPU型号。然后编写代码,编译,检查是否有错误与警告,如果有,则对程序进行修改。3)下载程序。如果没有,就进行程序调试,把程序下载到stm8单片机里面。4)结果分析。观擦两个个数码管的状态。
8、主程序(要有注释):
intel;初始化PB,PE口,输出,推挽;
mov PB_DDR,#0ffh mov PB_CR1,#0ffh mov PB_CR2,#0
mov PE_DDR,#0ffh mov PE_CR1,#0ffh mov PE_CR2,#0 mov PE_ODR,#0 next
clrw x loop2
ld a,(LED_TAB,x);变址寻址
ld PB_ODR,a
call delay
;调用延时函数
incw x
;x自增1
cpw x,#10
;将x与10进行比较
jreq next
;测试位非0,则跳到next
jp loop2
delay
;定义一个10秒延时函数
push cc
mov temp,#10 loop1 ldw y,#0ffffh loop decw y
jrne loop
dec temp
jrne loop1
pop cc
ret
LED_TAB:;八段共阴数码管字模
;
0 dc.b
3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
9、注意事项:
3)线路是否连接正确。
4)编程时要注意选择相符的CPU型号
5)如果数字显示不正常,检查PB口与数码管连接的对应位是否对齐。
十二、实验总结(结果):
两数码管,从数字“0”开始显示,数字“0”保持1秒钟,再切换到“1”,保持1秒后,切换到“2”„„以此类推,一直到“9”。然后返回到“0”,继续同
单片机实验报告(实验四)
十三、实验目的:
3)熟悉汇编语言,能用汇编语言编写单片机程序。
2)对stm8的功能有进一步的了解,掌握串行通信技术。3)通过串口助手发送一个字符,STM8接收到后,将接收到的字符发送给串口助手,并显示出来。发送、接收采用
查询的方法;波特率为9600 4)通过串口助手发送一个字符,STM8接收到后,将接收到的字符发送给串口助手,并显示出来。接收采用中断,发送采用查询的方法;波特率为9600
十四、实验仪器:
stm8s105c6单片机、单片机开发试验仪、杜邦线
十五、实验内容:
10、步骤: 1)接线。将单片机与电脑连接起来,将转接板借入单片机试验仪,用电脑的串口通信的线与单片机实验仪连接起来。
3)编写程序。在电脑上运行ST Visual Develop 软件,建立工程文件;选CPU型号。然后编写代码,编译,检查是否有错误与警告,如果有,则对程序进行修改。3)下载程序。如果没有,就进行程序调试,把程序下载到stm8单片机里面。4)运行程序,打开串口调试助手,查看发送与接收的状态。
11、主程序(要有注释): 程序1:
发送和接受采用查询方式
intel;初始化PB,推挽输出,用于数码管段驱动; mov UART2_CR1,#0 mov UART2_CR2,#0 mov UART2_CR3,#0 mov UART2_BRR2,#0 mov UART2_BRR1,#0dh ;设置波特率为9600 mov UART2_CR2,#0ch
loop: call receive_char ;调用接受函数 call send_char ;调用发送函数
jra loop
;发送函数 send_char: here btjf UART2_SR,#7,here ld UART2_DR,a ret
:接收函数 receive_char: here1 btjf UART2_SR,#5,here1 ld a,UART2_DR ret 程序二:
接收采用中断,发送采用查询
intel;初始化PB,推挽输出,用于数码管段驱动;
mov UART2_CR1,#0 mov UART2_CR2,#0 mov UART2_CR3,#0 mov UART2_BRR2,#0 mov UART2_BRR1,#0dh ;设置波特率为9600
mov UART2_CR2,#2ch rim
loop: jra loop
send_char: here btjf UART2_SR,#7,here ld UART2_DR,a ret
UART2_Recv_ISR.l ld a,UART2_DR call send_char iret
interrupt NonHandledInterrupt NonHandledInterrupt.l iret motorola segment 'vectit' dc.l {$82000000+main}
dc.l {$82000000+NonHandledInterrupt};trap dc.l {$82000000+NonHandledInterrupt};irq0 dc.l {$82000000+NonHandledInterrupt};irq1 dc.l {$82000000+NonHandledInterrupt};irq2 dc.l {$82000000+NonHandledInterrupt};irq3 dc.l {$82000000+NonHandledInterrupt};irq4 dc.l {$82000000+NonHandledInterrupt};irq5 dc.l {$82000000+NonHandledInterrupt};irq6 dc.l {$82000000+NonHandledInterrupt};irq7 dc.l {$82000000+NonHandledInterrupt};irq8 dc.l {$82000000+NonHandledInterrupt};irq9 dc.l {$82000000+NonHandledInterrupt};irq10 dc.l {$82000000+NonHandledInterrupt};irq11 dc.l {$82000000+NonHandledInterrupt};irq12 dc.l {$82000000+NonHandledInterrupt};irq13 dc.l {$82000000+NonHandledInterrupt};irq14 dc.l {$82000000+NonHandledInterrupt};irq15 dc.l {$82000000+NonHandledInterrupt};irq16 dc.l {$82000000+NonHandledInterrupt};irq17 dc.l {$82000000+NonHandledInterrupt};irq18 dc.l {$82000000+NonHandledInterrupt};irq19 dc.l {$82000000+NonHandledInterrupt};irq20 dc.l {$82000000+UART2_Recv_ISR};irq21 dc.l {$82000000+NonHandledInterrupt};irq22 dc.l {$82000000+NonHandledInterrupt};irq23 dc.l {$82000000+NonHandledInterrupt};irq24 dc.l {$82000000+NonHandledInterrupt};irq25 dc.l {$82000000+NonHandledInterrupt};irq26 dc.l {$82000000+NonHandledInterrupt};irq27 dc.l {$82000000+NonHandledInterrupt};irq28 dc.l {$82000000+NonHandledInterrupt};irq29
end
;reset
:中断入口
12、注意事项:
6)线路是否连接正确。
7)编程时要注意选择相符的CPU型号
十六、实验总结(结果):
在串口调试助手里,在发送区写入要发送的信息,比如“gdut”,选择手动发送,按下发送键,在接收区可以看到“gdut”
单片机实验报告(实验五)
十七、实验目的:
4)熟悉汇编语言,能用汇编语言编写单片机程序。2)对stm8的功能有进一步的了解,掌握AD转换。
3)利用ADC,将电压采集后,用LED数码管显示电压,显示格式为X.XX 没有滤波
十八、实验仪器:
stm8s105c6单片机、单片机开发试验仪、杜邦线
十九、实验内容:
13、步骤: 1)接线。将单片机与电脑连接起来,将转接板借入单片机试验仪,用杜邦线件PB口与数码管连接起来,PE6(JP8_P1.5)->J4.1(数字“0”脚)电位器。J15.1连j16.1,j15.2连j16.2,j15.3连j16.3。
4)编写程序。在电脑上运行ST Visual Develop 软件,建立工程文件;选CPU型号。然后编写代码,编译,检查是否有错误与警告,如果有,则对程序进行修改。3)下载程序。如果没有,就进行程序调试,把程序下载到stm8单片机里面。4)运行程序,观察数管的显示。
14、主程序(要有注释):
intel call init_led;初始化IO,驱动数码管
call init_adc;初始化adc.main_loop:;主循环
call adc_convert;开启AD转换
call data_proceing;将采集到的电压值进行处理
call data_to_display;将电压值,送到显示区
call display;显示
jp main_loop;重复
init_led:
;初始化PB,推挽输出,用于数码管段驱动; mov PB_DDR,#0ffh mov PB_CR1,#0ffh mov PB_CR2,#0;初始化PA,推挽输出,用于数码管位驱动; mov PA_DDR,#0ffh mov PA_CR1,#0ffh mov PA_CR2,#0 mov PA_ODR,#0bfh;PA6为0,即3-8译码C为0
;初始化PE,推挽输出,用于数码管位驱动;;3-8译码器
mov PE_DDR,#0ffh mov PE_CR1,#0ffh mov PE_CR2,#0 mov PE_ODR,#0ffh ret
init_adc: mov ADC_CR2,#0;A/D结果数据左对齐,主读高8位.mov ADC_CR1,0;ADC时钟=主时钟/2=1MHZ, ADC转换模式=单次,禁止ADC转换 mov ADC_CSR,#9;选择通道9 mov ADC_TDRH,#1;禁止施密特触发器
bset ADC_CR1,#0 ld a,#100 WAIT_ADC_ON dec a jrne WAIT_ADC_ON;延时一段时间,至少7uS,保证ADC模块的上电完成 ret
adc_convert: bset ADC_CR1,#0 WAIT_ADC_EOC ld a,ADC_CSR and a,#80h jreq WAIT_ADC_EOC;等待ADC结束 ld a,ADC_DRH;读出ADC结果的高8位
ret
data_proceing:;处理数据,电压值a*500/256,约简后:a*125/64 clrw x mov r01 ,#00h;16位乘数高位
mov r02 ,#7dh;16位乘数低位
ld r00,a;采样后电压值
ld a,r02;取被乘数低8位
ld xl,a ld a,r00;取8位乘数
mul x,a ldw r04 ,x;16位乘积送R04,R05
ld a,r01;取被乘数高8位
ld xl,a ld a,r00;取8位乘数
mul x,a
addw x,r03;求和 ldw r03,x ldw x,r04;保存结果.完成a*125运算
mov couter,#6;用移位,完成除法运算,/64 adc_div: srlw x
dec couter jrne adc_div ret;x=a*125/64
data_to_display:;将电压值数据,分别存到个位,十位,千位,显示格式为X.XX ld a,#10 div x,a ld vol1,a ld a,#10 div x,a ld vol2,a ld a,#10 div x,a ld vol3,a ret
display:;动态扫描,显示格式为X.XX
clrw x ld a,vol1;显示第一位
ld xl,a ld a,(LED_TAB,x)mov PE_ODR,#11110110b;3-8译码CBA为000,LED1亮 ld PB_ODR,a call delay
ld a,vol2;显示第二位
ld xl,a ld a,(LED_TAB,x)mov PE_ODR,#11110111b;;3-8译码CBA为001,LED2亮
ld PB_ODR,a call delay
ld a,vol3;显示第三位
ld xl,a ld a,(LED_TAB,x)ld temp,a bres temp,#7;显示小数点
ld a,temp mov PE_ODR,#11111110b;3-8译码CBA为010,LED3亮
ld PB_ODR,a call delay ret
LED_TAB:;八段共阴数码管字模
;0 1 2 3 4 5 6 7 8 9 dc.b 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
15、注意事项:
8)线路是否连接正确。
9)编程时要注意选择相符的CPU型号
二十、实验总结(结果):
数码管可以显示滑动变阻器两端的电压,调节滑动变阻器,数码管上的数值会改变。
《单片机原理及应用》实 验 报 告2017—2018学年第一学期班级: 152 专业: 电子科学与技术 姓名: 子路 学号: 教师:实验一:Keil C51 一、实验目的1、熟悉Keil C51单片机应用开发系......
实验一一、实验题目:试编写一段程序,其功能为将21H单元的内容8位分别依次存放到从22H开始的8单元中。二、keil代码:org 0000h jmp start org 0100h start: mov 21h,#8; mov A......
51单片机控制流水灯目录 (1)51精简开发板简介 (2)实验目的 (3)实验内容 (4)元件 (5)原理图 (6)实验步骤(7)主要功能介绍(8)实验错误及分析 (9)调试及程序 (10)系统测试 (11)实验心得一、51精简开发......
实验四、中断交通灯实验林立强1000850116一、实验目的1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。2、掌握中断响应及处理的编程方法。二、实验......
单片机实验报告一、实验目的1.熟练使用Keil、Protues两款软件 2.通过上机操作,增强个人动手实践能力 3.加深对理论知识的理解4.培养运用汇编语言进行初步编写程序的能力二、......