单片机实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答:程序如下:
xdata unsigned char Buffer[256] _at_ 0x4000;
void main()
{
unsigned int index;
unsigned char xdata * ptr;
ptr = &Buffer; //起始地址
for (index = 0; index <= 255; index++) {
三、实验原理
1、实验电路
2、实验框图
主程序框图 外部中断子程序框图
四、实验结果与分析
实验程序如下
#include <reg51.h>
sbit LED = P1^0;
bit LEDBuf;
void ExtInt0() interrupt 0
{
LEDBuf = !LEDBuf;
LED = LEDBuf;
TH0 = T100us;
TL0 = T100us;
IE = 0x82; // EA=1, IT0 = 1
LEDBuf = 0;
LED = 0;
C100us = Tick;
TR0 = 1; // 开始定时
while (1) {
LED = LEDBuf;
}
}
实验模拟
五、实验问题及心得
思考题
若定时时间为500us,计数器初始值是多少?
*ptr++ = 0xff; //清0,地址加一
}
}
心得体会:
只有事先把程序的各部分作用弄清楚,再在原程序上修改,才能达到预计的效果。
实验项目名称:实验2 内存块移动实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.05.04实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
实验项目名称:实验7 A/D转换实验实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
1、掌握A/D转换与单片机的接口方法。
2、了解A/D芯片ADC0809转换性能及编程。
3、通过实验了解单片机如何进行数据采集。
二、实验仪器和设备
(1)掌握存储器读写方法
(2)了解存储器的块操作方法
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
三、实验原理
四、实验结果与分析
实验程序如下:
xdata unsigned char Buffer1[256] _at_ 0x3000;
xdata unsigned char Buffer2[256] _at_ 0x4000;
#include <reg51.h>
#define Tick 10000 // 10000 x 100us = 1s
#define T100us (256-6) // 100us时间常数(6M)
unsigned int C100us; // 100us记数单元
bit LEDBuf;
sbit LED = P1^0;
void main()
{
unsigned int index;
unsigned char xdata * ptr1;
unsigned char xdata * ptr2;
ptr1 = &Buffer1;
ptr2 = &Buffer2;
for (index=0; index <= 255; index++) {
实验项目名称:实验4 计数器实验实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
学习8051内部定时/计数器使用方法
8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来
*ptr2++ = *ptr1++;
}
}
实验结果:
运行结果如下图所示:
(原图上 修改后的图下)
五、实验问题及心得
本程序是给出起始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。另外,若源块地址和目标块地址有重叠,该如何避免?
修改后结果如下图所示:
心得体会:汇编语言也有它的独到之处需要不断尝试。
答:连线P3.2换成P3.3
#include <reg51.h>
sbit LED = P1^0;
bit LEDBuf;
void ExtInt0() interrupt 2
{
LEDBuf = !LEDBuf;
LED = LEDBuf;
}
void main()
{
LEDBuf = 1;
LED = 1;
TCON = 0x04; //外部中断0下降沿触发
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
mov TH0, #0
mov TL0, #0
setb TR0 ;开始记数
Loop:
mov P1, TL0 ;将记数结果送P1口
ljmpLoop
end
心得体会:
了解了如何设置定时器计数器方式控制字的使用,以及定时计数程序的使用。
实验项目名称:实验5 外部中断实验实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
3.用单次脉冲申请中断,在中断处理程序中对输出信号进行反转
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
void T0Int() interrupt 1
{
C100us--;
if (C100us == 0) {
C100us = Tick; // 100us记数器为0,重置记数器
LEDBuf = !LEDBuf; //取反LED
}
}
void main()
{
TMOD = 0x02; //方式2,定时器
TH0 = T100us;
TL0 = T100us;
IE = 0x82; // EA=1, IT0 = 1
LEDBuf = 0;
LED = 0;
C100us = Tick;
TR0 = 1; //开始定时
while (1) {
LED = LEDBuf;
}
}
心得体会:
通过本次实验我们学习了8051内部计数器的使用和编程方法,进一步掌握中断处理程序的编程方法
批改教师:徐 志 国批改时间:
一、实验目的和要求
1、学习8051内部计数器的使用和编程方法。
2、进一步掌握中断处理程序的编程方法。
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
三、实验原理
1、实验电路
Y
主程序框图 定时中断子程序框图
2、实验框图
四、实验结果与分析
ptr = &Buffer; //起始地址
for (index = 0; index <= 255; index++) {
*ptr++ = 0; //清0,地址加一
}
}
2、实验结果
程序未运行前状态
程序运行后结果如下图所示;
程序运行结果如下图所示:
五、实验问题及心得
思考题
如何将存储器块的内容置成某固定值(例全填充为0FFH)?请学生修改程序,完成此操作
MOV r5, #5
mov r6, #5
Baidu NhomakorabeaMOV r7, #5
DelayLoop:
djnz r5,DelayLoop
djnz r6, DelayLoop
djnz r7, DelayLoop
ret
end
心得:
通过本次实验让我深刻认识到延时在单片机程序中的重要作用,以及延时的使用方法。掌握了延时的使用方法。
}
void main()
{
LEDBuf = 0;
LED = 0;
TCON = 0x01; // 外部中断0下降沿触发
IE = 0x81; // 打开外部中断允许位(EX0)及总中断允许位(EA)
while (1) ;
}
实验结果:
模拟仿真
五、实验问题及心得
思考题
若采用INT1中断源,电路如何连接,程序如何修改?
实验项目名称:1存储器块清零实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
(1)掌握存储器读写方法
(2)了解存储器的块操作方法
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
三、实验原理
指定存储器中某块的起始地址和长度,要求能将其内容清零。
四、实验结果与分析
1、程序如下
//软件实验一存储器块清零
xdata unsigned char Buffer[256] _at_ 0x4000;
void main()
{
unsigned int index;
unsigned char xdata * ptr;
void T0Int() interrupt 1
{
C100us--;
if (C100us == 0) {
C100us = Tick; // 100us 记数器为0, 重置记数器
LEDBuf = !LEDBuf; // 取反LED
}
}
void main()
{
TMOD = 0x02; // 方式2, 定时器
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
IE = 0x84; //打开外部中断允许位(EX0)及总中断允许位(EA)
while (1) ;
}
心得体会:
通过本次实验我们学习了外部中断技术的基本使用方法。学习中断处理程序的编程方法。
实验项目名称:实验6定时器记数实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验程序:
#include <reg51.h>
#define Tick 10000 // 10000 x 100us = 1s
#define T100us (256-50) // 100us时间常数(6M)
unsigned int C100us; // 100us记数单元
bit LEDBuf;
sbit LED = P1^0;
三、实验原理
1、实验电路及连线
实验1:P1口循环点灯 实验2:P1口输入输出
2、实验程序
8051延时子程序的延时计算问题,对于程序
查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为:
(256×255+2)×2×12÷6≈261ms
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
三、实验原理
1、实验电路
2、实验框图
四、实验结果与分析
1、程序如下
实验结果
五、实验问题及心得
思考题
若定时计数器T0,按计数器模式和方式0工作,程序如何修改?
答:修改后的程序如下所示:
mov TMOD, #00000100b ;方式1,记数器
3、实验框图
四、实验结果与分析
1.实验程序:
实验结果如下:
五、实验问题及心得
若是12MHZ的晶振,延时程序如何修改?
答:修改程序如下
Loop:
mov a, #01h
mov r2, #8
Output:
mov P1, a
rl a
call Delay
djnz r2, Output
ljmpLoop
Delay:
学 生 实 验 报 告
(理工类)
课程名称:单片机原理及应用专业班级:14电子信息工程(1)班
学生学号:1415101005学生姓名:丁剑
所属院部:电子信息工程学院指导教师:徐 志 国
2016——2017学年 第1学期
金陵科技学院教务处制
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。
实验项目名称:3.P1口输入输出实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.05.04实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
(1)掌握存储器读写方法
(2)了解存储器的块操作方法
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
xdata unsigned char Buffer[256] _at_ 0x4000;
void main()
{
unsigned int index;
unsigned char xdata * ptr;
ptr = &Buffer; //起始地址
for (index = 0; index <= 255; index++) {
三、实验原理
1、实验电路
2、实验框图
主程序框图 外部中断子程序框图
四、实验结果与分析
实验程序如下
#include <reg51.h>
sbit LED = P1^0;
bit LEDBuf;
void ExtInt0() interrupt 0
{
LEDBuf = !LEDBuf;
LED = LEDBuf;
TH0 = T100us;
TL0 = T100us;
IE = 0x82; // EA=1, IT0 = 1
LEDBuf = 0;
LED = 0;
C100us = Tick;
TR0 = 1; // 开始定时
while (1) {
LED = LEDBuf;
}
}
实验模拟
五、实验问题及心得
思考题
若定时时间为500us,计数器初始值是多少?
*ptr++ = 0xff; //清0,地址加一
}
}
心得体会:
只有事先把程序的各部分作用弄清楚,再在原程序上修改,才能达到预计的效果。
实验项目名称:实验2 内存块移动实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.05.04实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
实验项目名称:实验7 A/D转换实验实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
1、掌握A/D转换与单片机的接口方法。
2、了解A/D芯片ADC0809转换性能及编程。
3、通过实验了解单片机如何进行数据采集。
二、实验仪器和设备
(1)掌握存储器读写方法
(2)了解存储器的块操作方法
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
三、实验原理
四、实验结果与分析
实验程序如下:
xdata unsigned char Buffer1[256] _at_ 0x3000;
xdata unsigned char Buffer2[256] _at_ 0x4000;
#include <reg51.h>
#define Tick 10000 // 10000 x 100us = 1s
#define T100us (256-6) // 100us时间常数(6M)
unsigned int C100us; // 100us记数单元
bit LEDBuf;
sbit LED = P1^0;
void main()
{
unsigned int index;
unsigned char xdata * ptr1;
unsigned char xdata * ptr2;
ptr1 = &Buffer1;
ptr2 = &Buffer2;
for (index=0; index <= 255; index++) {
实验项目名称:实验4 计数器实验实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
学习8051内部定时/计数器使用方法
8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来
*ptr2++ = *ptr1++;
}
}
实验结果:
运行结果如下图所示:
(原图上 修改后的图下)
五、实验问题及心得
本程序是给出起始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。另外,若源块地址和目标块地址有重叠,该如何避免?
修改后结果如下图所示:
心得体会:汇编语言也有它的独到之处需要不断尝试。
答:连线P3.2换成P3.3
#include <reg51.h>
sbit LED = P1^0;
bit LEDBuf;
void ExtInt0() interrupt 2
{
LEDBuf = !LEDBuf;
LED = LEDBuf;
}
void main()
{
LEDBuf = 1;
LED = 1;
TCON = 0x04; //外部中断0下降沿触发
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
mov TH0, #0
mov TL0, #0
setb TR0 ;开始记数
Loop:
mov P1, TL0 ;将记数结果送P1口
ljmpLoop
end
心得体会:
了解了如何设置定时器计数器方式控制字的使用,以及定时计数程序的使用。
实验项目名称:实验5 外部中断实验实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
3.用单次脉冲申请中断,在中断处理程序中对输出信号进行反转
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
void T0Int() interrupt 1
{
C100us--;
if (C100us == 0) {
C100us = Tick; // 100us记数器为0,重置记数器
LEDBuf = !LEDBuf; //取反LED
}
}
void main()
{
TMOD = 0x02; //方式2,定时器
TH0 = T100us;
TL0 = T100us;
IE = 0x82; // EA=1, IT0 = 1
LEDBuf = 0;
LED = 0;
C100us = Tick;
TR0 = 1; //开始定时
while (1) {
LED = LEDBuf;
}
}
心得体会:
通过本次实验我们学习了8051内部计数器的使用和编程方法,进一步掌握中断处理程序的编程方法
批改教师:徐 志 国批改时间:
一、实验目的和要求
1、学习8051内部计数器的使用和编程方法。
2、进一步掌握中断处理程序的编程方法。
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
三、实验原理
1、实验电路
Y
主程序框图 定时中断子程序框图
2、实验框图
四、实验结果与分析
ptr = &Buffer; //起始地址
for (index = 0; index <= 255; index++) {
*ptr++ = 0; //清0,地址加一
}
}
2、实验结果
程序未运行前状态
程序运行后结果如下图所示;
程序运行结果如下图所示:
五、实验问题及心得
思考题
如何将存储器块的内容置成某固定值(例全填充为0FFH)?请学生修改程序,完成此操作
MOV r5, #5
mov r6, #5
Baidu NhomakorabeaMOV r7, #5
DelayLoop:
djnz r5,DelayLoop
djnz r6, DelayLoop
djnz r7, DelayLoop
ret
end
心得:
通过本次实验让我深刻认识到延时在单片机程序中的重要作用,以及延时的使用方法。掌握了延时的使用方法。
}
void main()
{
LEDBuf = 0;
LED = 0;
TCON = 0x01; // 外部中断0下降沿触发
IE = 0x81; // 打开外部中断允许位(EX0)及总中断允许位(EA)
while (1) ;
}
实验结果:
模拟仿真
五、实验问题及心得
思考题
若采用INT1中断源,电路如何连接,程序如何修改?
实验项目名称:1存储器块清零实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
(1)掌握存储器读写方法
(2)了解存储器的块操作方法
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
三、实验原理
指定存储器中某块的起始地址和长度,要求能将其内容清零。
四、实验结果与分析
1、程序如下
//软件实验一存储器块清零
xdata unsigned char Buffer[256] _at_ 0x4000;
void main()
{
unsigned int index;
unsigned char xdata * ptr;
void T0Int() interrupt 1
{
C100us--;
if (C100us == 0) {
C100us = Tick; // 100us 记数器为0, 重置记数器
LEDBuf = !LEDBuf; // 取反LED
}
}
void main()
{
TMOD = 0x02; // 方式2, 定时器
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
IE = 0x84; //打开外部中断允许位(EX0)及总中断允许位(EA)
while (1) ;
}
心得体会:
通过本次实验我们学习了外部中断技术的基本使用方法。学习中断处理程序的编程方法。
实验项目名称:实验6定时器记数实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.11.09实验成绩:
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验程序:
#include <reg51.h>
#define Tick 10000 // 10000 x 100us = 1s
#define T100us (256-50) // 100us时间常数(6M)
unsigned int C100us; // 100us记数单元
bit LEDBuf;
sbit LED = P1^0;
三、实验原理
1、实验电路及连线
实验1:P1口循环点灯 实验2:P1口输入输出
2、实验程序
8051延时子程序的延时计算问题,对于程序
查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为:
(256×255+2)×2×12÷6≈261ms
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件
三、实验原理
1、实验电路
2、实验框图
四、实验结果与分析
1、程序如下
实验结果
五、实验问题及心得
思考题
若定时计数器T0,按计数器模式和方式0工作,程序如何修改?
答:修改后的程序如下所示:
mov TMOD, #00000100b ;方式1,记数器
3、实验框图
四、实验结果与分析
1.实验程序:
实验结果如下:
五、实验问题及心得
若是12MHZ的晶振,延时程序如何修改?
答:修改程序如下
Loop:
mov a, #01h
mov r2, #8
Output:
mov P1, a
rl a
call Delay
djnz r2, Output
ljmpLoop
Delay:
学 生 实 验 报 告
(理工类)
课程名称:单片机原理及应用专业班级:14电子信息工程(1)班
学生学号:1415101005学生姓名:丁剑
所属院部:电子信息工程学院指导教师:徐 志 国
2016——2017学年 第1学期
金陵科技学院教务处制
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。
实验项目名称:3.P1口输入输出实验学时:2
同组学生姓名:陈超逸实验地点:B403
实验日期:16.05.04实验成绩:
批改教师:徐 志 国批改时间:
一、实验目的和要求
(1)掌握存储器读写方法
(2)了解存储器的块操作方法
二、实验仪器和设备
伟福LAB6000仿真实验系统,奔腾以上计算机,装有WAVE集成调试软件