单片机实验报告含仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
unsigned char i;
SP=0x60;
SCON=0X50;
TMOD=0x20;
TL1=0xe6;
TH1=0xe6;
TR1=1;
EA=1;
ES=1;
while(1)
{
P1=0XFF;
i=P1;
SBUF=i;
while(TI==0);
TI=0;
}
}
void funins(void) interrupt 4
一、实验目的:
1、熟悉keil仿真软件、proteus的使用和C51定时程序的编写;
2、了解51单片机中定时、源自文库数的概念,熟悉51单片机内部定时/计数器的结构与工作原理;
3、掌握查询方式处理定时/计数的工作过程,
4、掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。
二、实验原理:
通常 利 用 定 时 / 计 数 器 来 产 生 周 期 性 的 波 形 。 利 用 定 时 / 计 数 器 产 生 周 期 性 波 形 的 基 本思想 是 : 利 用 定 时 / 计 数 器 产 生 周 期 性 的 定 时 , 定 时 时 间 到 则 对 输 出 端 进 行 相 应 的 处 理 。例如 产 生 周 期 性 的 方 波 只 需 定 时 时 间 到 对 输 出 端 取 反 一 次 即 可 。 不 同 的 方 式 定 时 的 最 大 值不 同 , 如 定 时 的 时 间 很 短 , 则 选 择 方 式 2 。 方 式 2 形 成 周 期 性 的 定 时 不 需 重 置 初 值; 如 定时 比 较 长 , 则 选 择 方 式 0 或 方 式 1 ; 如 时 间 很 长 , 则 一 个 定 时 / 计 数 器 不 够 用 , 这 时 可 用 两个定 时 / 计 数 器 或 一 个 定 时 / 计 数 器 加 软 件 计 数 的 方 法 。
3、掌握串口工作方式1的工作特点。
二、实验原理:
甲 、 乙 两 机 处 理 过 程 一 样 , 程 序 相 同 。 方 式 选 择 方 式1: 即8位 异 步 通 信 方 式 , 波 特 率 为1200bps, 既 要 发 送 , 也 要 接 收 , 所 以 串 口 控 制 字 为50H。 由 于 选 择 的 是 方 式 1,波 特 率 由 定 时/计 数 器TI的 溢 出 率 和 电 源 控 制 寄 存 器PCON中 的SMOD位 决 定 , 则 需 对 定 时/计 数 器Tl初 始 化 。 设 振 荡 频 率 为12MHz, 取SMOD=0, 波 特 率 为1200bps, 定 时/计 数 器T1选 择 为 方 式2, 则 初 值 如 下 初 值= 256一foscx2SMOD/ (12 ×波 特 率× 32)= E6H根 据 要 求 , 定 时/计 数 器T1的 方 式 控 制 字 为20H。
三、程序:
#include <>
void delay500ms(unsigned char k);
void main(void)
{
SP=0x60;
TMOD=0x01;
IE=0x85;
TCON=0x05;
while(1)
{
P1=0x21;
delay500ms(40);
P1=0x41;
delay500ms(6);
实验四、定时器/计数器实验(2)—中断方式产生500us的方波
一、实验目的:
1、熟悉keil仿真软件、proteus的使用和C51定时程序的编写;
2、进一步熟悉51单片机内部定时/计数器的结构与工作原理;
3、掌握中断方式处理定时/计数的工作过程。
二、实验原理
从P 输 出 周 期 为 500 us 的 方 波 , 只 需 P 每 250 us 取 反 后一次 即 可 。当系统时钟为 12MHz 时 , 定 时 / 计 数 器 TO 工 作 于 方 式 2 时 , 最 大 的 定 时 时间 为 256 us , 满 足 250us 的 定 时 要 求 , 方 式 控 制 字 应 没 定 为 000000 1 0B ( 02H ) 。 系 统 时钟 为12Mhz , 定 时 250us, 计 数 值N 为 250 , 初 值 X = 256 -250 =6 , 则 THO = TLO =06 H 。
i=i*2;
if(i==0x00) i=0x01;
}
}
四、实验结果分析:
五、总结:进一步熟悉了keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机I/O口和LED灯的电路结构,学会了构建简单的流水灯电路。掌握了C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
实验三、定时器/计数器实验(1)—查询方式产生500us的方波
东 西 通 行 , 南 北 禁 止 , 东 西 方 向 绿 灯 闪 , 南 北 方 向 红 灯 闪60秒 ; 南 北 发 生 异 常 时 , 南 北 通 行 , 东 西 禁 止 , 南 北 方 向 绿 灯 闪 , 东 西 方 向 红 灯 闪60秒 。 主 程 序 中 实 现 交 通 灯 正 常 运 行 过 程 , 两 种 异 常 用 外 中 断0和 外 中 断1管 理 , 外 接 开 关 模 拟 异 常 发 生 , 在 中 断 服 务 程 序 中 实 现 异 常 处 理 , 在 主 程 序 中 开 放 外 中 断0和 外 中 断1, 设 置 为 边 沿 触 发 方 式 。 时 间 单 位 采 用500ms信 号 , 由 定 时 计 数 器0定 时50ms, 循 环10次 产 生 , 定 时 计 数 器0采 用 查 询 方 式 , 主 程 序 中 设 定 定 时 计 数 器0的 工 作 方 式 : 方 式1。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验原理:
交 通 灯 正 常 运 行 时 , 可 分 为4个 状 态 : 状 态1, 东 西 方 向 绿 灯 , 南 北 方 向 红 灯20秒 , 状 态 编 码“ 00100001 ”; 状 态2, 东 西 方 向 黄 灯 , 南 北 方 向 红 灯3秒 , 状 态 编 码“ 01000001 ”; 状 态3, 南 北 方 向 绿 灯 , 东 西 方 向 红 灯20秒 , 状 态 编 码“ 00010010 ”状 态4, 南 北 方 向 黄 灯 , 东 西 方 向 红 灯3秒 , 状 态 编 码“ 0001m00 ”。 东 西 发 生 异 常 时 ,
发 送 过 程 采 用 查 询 方 式 , 在 主 程 序 中 读 取PI口 的 开 关 状 态 , 通 过 串 口 发 送 ; 接 收 过 程 采 用 中 断 方 式 , 接 收 的 内 容 送P2口 , 通 过P2口 的 发 光 二 极 管 显 示 。
三、程序:
#include <>
void main()
三、程序:
#include<>
sbit P1_0=P1^0;
void main()
{
unsigned char i;
unsigned int j;
SCON=0x00;
i=0x01;
for(;;)
{
P1_0=0;
SBUF=I;
while(!TI) {i}
P1_0=1;TI=0;
for(j=0;j<=254;j++){;}
P1=0x12;
delay500ms(40);
P1=0x14;
delay500ms(6);
}
}
void int_0(void) interrupt 0
{
unsigned char i1,i2;
i1=P1;
for(i2=0;i2<60;i2++)
三、程序:
#include<>
sbit P1_0=P1^0;
void main()
{
unsigned char i;
unsigned int j;
SCON=0x00;
i=0x01;
for(;;)
{
P1_0=0;
SBUF=I;
while(!TI) {i}
P1_0=1;TI=0;
for(j=0;j<=254;j++){;}
3、掌握串口工作方式0的工作特点。
二、实验原理:
MCS51单 片 机 的 串 行 口 在 实 际 使 用 中 通 常 用 于 三 种 情 况 : 利 用 方 式0扩 展 并 行 i/0接 口 : 利 用 方 式1实 现 点 对 点 的 双 机 通 信 ; 利 用 方 式2或 方 式3实 现 多 机 通 信 。 利 用 方 式0扩 展 并 行 i/0接 口MCS51单 片 机 的 串 行 口 在 方 式0时 , 若 外 接 一 个 串 入 并 出 的 移 位 寄 存 器 , 就 可 以 扩 展 并 行 输 出 口 ; 若 外 接 一 个 并 入 串 出 的 移 位 寄 存 器 , 就 可 以 扩 展 并 行 输 入 口 。
实验二、并行输入/输出接口实验
一、实验目的:
1、进一步熟悉keil仿真软件、proteus仿真软件的使用。
2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
3、掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
二、实验原理:
MCS51单 片 机 的 串 行 口 在 实 际 使 用 中 通 常 用 于 三 种 情 况 : 利 用 方 式0扩 展 并 行 i/0接 口 : 利 用 方 式1实 现 点 对 点 的 双 机 通 信 ; 利 用 方 式2或 方 式3实 现 多 机 通 信 。 利 用 方 式0扩 展 并 行 i/0接 口MCS51单 片 机 的 串 行 口 在 方 式0时 , 若 外 接 一 个 串 入 并 出 的 移 位 寄 存 器 , 就 可 以 扩 展 并 行 输 出 口 ; 若 外 接 一 个 并 入 串 出 的 移 位 寄 存 器 , 就 可 以 扩 展 并 行 输 入 口 。
五、总结:熟悉了keil仿真软件、proteus的使用和C51定时程序的编写;进一步熟悉了51单片机内部定时/计数器的结构与工作原理;掌握了中断方式处理定时/计数的工作过程。
实验五:串行接口实验(1)—工作方式0扩展并行IO口
一、实验目的:
1,掌握串行口工作方式0的程序设计;
2、熟悉51单片机串口的结构和工作原理
单片机原理及应用课程
实验报告
专业:
班级:
姓名:
学号:
实验一、keilC51及proteus软件的使用
一、实验目的:
1、掌握keil和proteus软件的基本操作
2、通过具体实例掌握keil和proteus软件的使用。
二、实验原理:keil使用步骤,proteus使用步骤
三、程序:
四、实验结果分析:
五、总结:学会了使用keil和proteus软件,掌握了利用keil和proteus软件进行仿真的步骤。
:
三、程序:
#include <>
sbit P1_0=P1^0;
void main()
{
TMOD=0x02;
TH0=0x06;TL0=0x06;
EA=1;ET0=1;
TR0=1;
while(1);
}
void time0_int(void) interrupt 1
{
P1_0=!P1_0;
}
四、实验结果分析:
三、程序:
#include <>
sbit P1_0=P1^0;
void main()
{
TMOD=0x02;
TH0=0x06;TL0=0x06;
TR0=1;
for(;;)
{
if(TF0){TF0=0;P1_0=!P1_0;}
}
}
四、实验结果分析:
五、总结:熟悉了keil仿真软件、proteus的使用和C51定时程序的编写;了解51单片机中定时、计数的概念,熟悉了51单片机内部定时/计数器的结构与工作原理;掌握了查询方式处理定时/计数的工作过程,掌握了定时/计数器在C51中的设置与程序的书写格式以及使用方法。
i=i*2;
if(i==0x00) i=0x01;
}
}
四、实验结果分析:
五、总结:掌握了串行口工作方式0的程序设计;熟悉了51单片机串口的结构和工作原理。掌握了串口工作方式0的工作特点。
实验六:串行接口实验(2)—双机通信
一、实验目的:
1、掌握串行口工作方式1的程序设计;
2、进一步掌握51单片机串口的结构和工作原理
{
EA=0;
RI=0;
P2=SBUF;
EA=1;
}
四、实验结果分析:
五、总结:掌握了串行口工作方式1的程序设计;进一步掌握了51单片机串口的结构和工作原理,掌握了串口工作方式1的工作特点。
实验七:中断系统实验(1)—交通灯模拟控制
一、实验目的
1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。
unsigned char i;
SP=0x60;
SCON=0X50;
TMOD=0x20;
TL1=0xe6;
TH1=0xe6;
TR1=1;
EA=1;
ES=1;
while(1)
{
P1=0XFF;
i=P1;
SBUF=i;
while(TI==0);
TI=0;
}
}
void funins(void) interrupt 4
一、实验目的:
1、熟悉keil仿真软件、proteus的使用和C51定时程序的编写;
2、了解51单片机中定时、源自文库数的概念,熟悉51单片机内部定时/计数器的结构与工作原理;
3、掌握查询方式处理定时/计数的工作过程,
4、掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。
二、实验原理:
通常 利 用 定 时 / 计 数 器 来 产 生 周 期 性 的 波 形 。 利 用 定 时 / 计 数 器 产 生 周 期 性 波 形 的 基 本思想 是 : 利 用 定 时 / 计 数 器 产 生 周 期 性 的 定 时 , 定 时 时 间 到 则 对 输 出 端 进 行 相 应 的 处 理 。例如 产 生 周 期 性 的 方 波 只 需 定 时 时 间 到 对 输 出 端 取 反 一 次 即 可 。 不 同 的 方 式 定 时 的 最 大 值不 同 , 如 定 时 的 时 间 很 短 , 则 选 择 方 式 2 。 方 式 2 形 成 周 期 性 的 定 时 不 需 重 置 初 值; 如 定时 比 较 长 , 则 选 择 方 式 0 或 方 式 1 ; 如 时 间 很 长 , 则 一 个 定 时 / 计 数 器 不 够 用 , 这 时 可 用 两个定 时 / 计 数 器 或 一 个 定 时 / 计 数 器 加 软 件 计 数 的 方 法 。
3、掌握串口工作方式1的工作特点。
二、实验原理:
甲 、 乙 两 机 处 理 过 程 一 样 , 程 序 相 同 。 方 式 选 择 方 式1: 即8位 异 步 通 信 方 式 , 波 特 率 为1200bps, 既 要 发 送 , 也 要 接 收 , 所 以 串 口 控 制 字 为50H。 由 于 选 择 的 是 方 式 1,波 特 率 由 定 时/计 数 器TI的 溢 出 率 和 电 源 控 制 寄 存 器PCON中 的SMOD位 决 定 , 则 需 对 定 时/计 数 器Tl初 始 化 。 设 振 荡 频 率 为12MHz, 取SMOD=0, 波 特 率 为1200bps, 定 时/计 数 器T1选 择 为 方 式2, 则 初 值 如 下 初 值= 256一foscx2SMOD/ (12 ×波 特 率× 32)= E6H根 据 要 求 , 定 时/计 数 器T1的 方 式 控 制 字 为20H。
三、程序:
#include <>
void delay500ms(unsigned char k);
void main(void)
{
SP=0x60;
TMOD=0x01;
IE=0x85;
TCON=0x05;
while(1)
{
P1=0x21;
delay500ms(40);
P1=0x41;
delay500ms(6);
实验四、定时器/计数器实验(2)—中断方式产生500us的方波
一、实验目的:
1、熟悉keil仿真软件、proteus的使用和C51定时程序的编写;
2、进一步熟悉51单片机内部定时/计数器的结构与工作原理;
3、掌握中断方式处理定时/计数的工作过程。
二、实验原理
从P 输 出 周 期 为 500 us 的 方 波 , 只 需 P 每 250 us 取 反 后一次 即 可 。当系统时钟为 12MHz 时 , 定 时 / 计 数 器 TO 工 作 于 方 式 2 时 , 最 大 的 定 时 时间 为 256 us , 满 足 250us 的 定 时 要 求 , 方 式 控 制 字 应 没 定 为 000000 1 0B ( 02H ) 。 系 统 时钟 为12Mhz , 定 时 250us, 计 数 值N 为 250 , 初 值 X = 256 -250 =6 , 则 THO = TLO =06 H 。
i=i*2;
if(i==0x00) i=0x01;
}
}
四、实验结果分析:
五、总结:进一步熟悉了keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机I/O口和LED灯的电路结构,学会了构建简单的流水灯电路。掌握了C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
实验三、定时器/计数器实验(1)—查询方式产生500us的方波
东 西 通 行 , 南 北 禁 止 , 东 西 方 向 绿 灯 闪 , 南 北 方 向 红 灯 闪60秒 ; 南 北 发 生 异 常 时 , 南 北 通 行 , 东 西 禁 止 , 南 北 方 向 绿 灯 闪 , 东 西 方 向 红 灯 闪60秒 。 主 程 序 中 实 现 交 通 灯 正 常 运 行 过 程 , 两 种 异 常 用 外 中 断0和 外 中 断1管 理 , 外 接 开 关 模 拟 异 常 发 生 , 在 中 断 服 务 程 序 中 实 现 异 常 处 理 , 在 主 程 序 中 开 放 外 中 断0和 外 中 断1, 设 置 为 边 沿 触 发 方 式 。 时 间 单 位 采 用500ms信 号 , 由 定 时 计 数 器0定 时50ms, 循 环10次 产 生 , 定 时 计 数 器0采 用 查 询 方 式 , 主 程 序 中 设 定 定 时 计 数 器0的 工 作 方 式 : 方 式1。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验原理:
交 通 灯 正 常 运 行 时 , 可 分 为4个 状 态 : 状 态1, 东 西 方 向 绿 灯 , 南 北 方 向 红 灯20秒 , 状 态 编 码“ 00100001 ”; 状 态2, 东 西 方 向 黄 灯 , 南 北 方 向 红 灯3秒 , 状 态 编 码“ 01000001 ”; 状 态3, 南 北 方 向 绿 灯 , 东 西 方 向 红 灯20秒 , 状 态 编 码“ 00010010 ”状 态4, 南 北 方 向 黄 灯 , 东 西 方 向 红 灯3秒 , 状 态 编 码“ 0001m00 ”。 东 西 发 生 异 常 时 ,
发 送 过 程 采 用 查 询 方 式 , 在 主 程 序 中 读 取PI口 的 开 关 状 态 , 通 过 串 口 发 送 ; 接 收 过 程 采 用 中 断 方 式 , 接 收 的 内 容 送P2口 , 通 过P2口 的 发 光 二 极 管 显 示 。
三、程序:
#include <>
void main()
三、程序:
#include<>
sbit P1_0=P1^0;
void main()
{
unsigned char i;
unsigned int j;
SCON=0x00;
i=0x01;
for(;;)
{
P1_0=0;
SBUF=I;
while(!TI) {i}
P1_0=1;TI=0;
for(j=0;j<=254;j++){;}
P1=0x12;
delay500ms(40);
P1=0x14;
delay500ms(6);
}
}
void int_0(void) interrupt 0
{
unsigned char i1,i2;
i1=P1;
for(i2=0;i2<60;i2++)
三、程序:
#include<>
sbit P1_0=P1^0;
void main()
{
unsigned char i;
unsigned int j;
SCON=0x00;
i=0x01;
for(;;)
{
P1_0=0;
SBUF=I;
while(!TI) {i}
P1_0=1;TI=0;
for(j=0;j<=254;j++){;}
3、掌握串口工作方式0的工作特点。
二、实验原理:
MCS51单 片 机 的 串 行 口 在 实 际 使 用 中 通 常 用 于 三 种 情 况 : 利 用 方 式0扩 展 并 行 i/0接 口 : 利 用 方 式1实 现 点 对 点 的 双 机 通 信 ; 利 用 方 式2或 方 式3实 现 多 机 通 信 。 利 用 方 式0扩 展 并 行 i/0接 口MCS51单 片 机 的 串 行 口 在 方 式0时 , 若 外 接 一 个 串 入 并 出 的 移 位 寄 存 器 , 就 可 以 扩 展 并 行 输 出 口 ; 若 外 接 一 个 并 入 串 出 的 移 位 寄 存 器 , 就 可 以 扩 展 并 行 输 入 口 。
实验二、并行输入/输出接口实验
一、实验目的:
1、进一步熟悉keil仿真软件、proteus仿真软件的使用。
2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
3、掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
二、实验原理:
MCS51单 片 机 的 串 行 口 在 实 际 使 用 中 通 常 用 于 三 种 情 况 : 利 用 方 式0扩 展 并 行 i/0接 口 : 利 用 方 式1实 现 点 对 点 的 双 机 通 信 ; 利 用 方 式2或 方 式3实 现 多 机 通 信 。 利 用 方 式0扩 展 并 行 i/0接 口MCS51单 片 机 的 串 行 口 在 方 式0时 , 若 外 接 一 个 串 入 并 出 的 移 位 寄 存 器 , 就 可 以 扩 展 并 行 输 出 口 ; 若 外 接 一 个 并 入 串 出 的 移 位 寄 存 器 , 就 可 以 扩 展 并 行 输 入 口 。
五、总结:熟悉了keil仿真软件、proteus的使用和C51定时程序的编写;进一步熟悉了51单片机内部定时/计数器的结构与工作原理;掌握了中断方式处理定时/计数的工作过程。
实验五:串行接口实验(1)—工作方式0扩展并行IO口
一、实验目的:
1,掌握串行口工作方式0的程序设计;
2、熟悉51单片机串口的结构和工作原理
单片机原理及应用课程
实验报告
专业:
班级:
姓名:
学号:
实验一、keilC51及proteus软件的使用
一、实验目的:
1、掌握keil和proteus软件的基本操作
2、通过具体实例掌握keil和proteus软件的使用。
二、实验原理:keil使用步骤,proteus使用步骤
三、程序:
四、实验结果分析:
五、总结:学会了使用keil和proteus软件,掌握了利用keil和proteus软件进行仿真的步骤。
:
三、程序:
#include <>
sbit P1_0=P1^0;
void main()
{
TMOD=0x02;
TH0=0x06;TL0=0x06;
EA=1;ET0=1;
TR0=1;
while(1);
}
void time0_int(void) interrupt 1
{
P1_0=!P1_0;
}
四、实验结果分析:
三、程序:
#include <>
sbit P1_0=P1^0;
void main()
{
TMOD=0x02;
TH0=0x06;TL0=0x06;
TR0=1;
for(;;)
{
if(TF0){TF0=0;P1_0=!P1_0;}
}
}
四、实验结果分析:
五、总结:熟悉了keil仿真软件、proteus的使用和C51定时程序的编写;了解51单片机中定时、计数的概念,熟悉了51单片机内部定时/计数器的结构与工作原理;掌握了查询方式处理定时/计数的工作过程,掌握了定时/计数器在C51中的设置与程序的书写格式以及使用方法。
i=i*2;
if(i==0x00) i=0x01;
}
}
四、实验结果分析:
五、总结:掌握了串行口工作方式0的程序设计;熟悉了51单片机串口的结构和工作原理。掌握了串口工作方式0的工作特点。
实验六:串行接口实验(2)—双机通信
一、实验目的:
1、掌握串行口工作方式1的程序设计;
2、进一步掌握51单片机串口的结构和工作原理
{
EA=0;
RI=0;
P2=SBUF;
EA=1;
}
四、实验结果分析:
五、总结:掌握了串行口工作方式1的程序设计;进一步掌握了51单片机串口的结构和工作原理,掌握了串口工作方式1的工作特点。
实验七:中断系统实验(1)—交通灯模拟控制
一、实验目的
1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。