单片机原理及应用(C51版)

实验目的及要求:

1.掌握串口通信工作原理及程序开发方法,熟悉ARES软件PCB设计过程;

2.按照P241图A.72绘制电路原理图1,将第6章实例2中2#机的查询法收发程序改为中断法(1#机发送过程不变)并实现原有功能;

3.采用ARES软件完成电路原理图2的PCB设计,形成光绘(Gerber)输出文件,其中BCD数码管需按照图A.74所示尺寸进行PCB自定义封装。

步骤:

1.根据实验要求绘制电路图。

绘制时(1)选择并摆放电路元件

(2)摆放电源正负极

(3)连接各元件

绘制完成后电路图如下:左为发送机,右为接收机

2.在Keil中编写并编译C51程序6A和6B。

(1)编写并编译程序,将以.c为后缀的程序文件添加到Source Group里(忽略每行注释后的内容,在Keil里注释的中文都没有显示)

实验六A的C51源程序:

//1#机程序
#include<reg51.h>
#define uchar unsigned char
char code map[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//'0'~'9'void delay(unsigned int time){ unsigned int j = 0;for(;time>0;time--)for(j=0;j<125;j++);
}
void main(void){uchar counter=0;       //定义计数器TMOD=0x20;              //T1定时方式2TH1 = TL1 = 0xf4;        //2400b/sPCON=0;                   //波特率不加倍SCON = 0x50;           //串口方式1,TI和RI清零,允许接收;TR1=1;                    //启动T1   while(1){      SBUF = counter;        //发送联络信号while(TI==0);     //等待发送完成TI = 0;                //清TI标志位while(RI==0);     //等待乙机回答RI = 0;if(SBUF ==counter){  //若返回值与发送值相同,组织新数据P2 = map[counter];        //显示已发送值if(++counter>9) counter=0;//修正计数器值delay(500);
}}}

实验六B的C51源程序:

//2#机程序
#include<reg51.h>
#define uchar unsigned charuchar receiv;
char code map[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//'0'~'9'zenmexie0() interrupt 4{RI = 0;          //?RI???receiv = SBUF; //?????SBUF = receiv;  //??????while(TI==0); //??????TI = 0;            //?TI???P2 = map[receiv];//?????}
void main(void){TMOD=0x20;             //T1????2TH1=TL1=0xf4;            //2400b/sPCON=0;                   //??????SCON=0x50;             //????1,TI?RI??,????;EA=ES=1;TR1=1;while(1);
}

(2)导出.omf和.hex为后缀的工程文件

3.回到Proteus7中,为单片机添加工程文件并仿真。

分别给左、右两个单片机添加A、B工程文件:

仿真:两个LED完成通信,同时显示0~9之间的数字:

单片机原理及应用 实验六 双机通信与PCB设计相关推荐

  1. 在学习c51单片机实验七(双机通信及pcb设计)操作Keil uVision4和protus的时候遇到的两个坑

    第一个问题,这个问题用keil编程经常遇到 特别是懒的时候,对于新手,每次用一个工程文件,因为创建不熟练,就容易出现这个问题 Build target 'Target 1' linking... ** ...

  2. 山东大学单片机原理与应用实验 3.4 矩阵键盘扫描实验

    目录 一.实验题目 二.实验要求 三.实验过程及结果记录 1. 在Proteus 环境下建立图1所示原理图,并将其保存为keyscan_self.DSN 文件. 2. 编写控制源程序,将其保存为key ...

  3. 山东大学单片机原理与应用实验 C语言程序实验

    一.实验题目 C语言程序实验 二.试验要求 片内RAM30H开始的32个单元中分布着随机的有符号8位二进制数,按从小到大的顺序进行排序,排序后的数据仍然保存到30H开始的32个单元中(低地址存放小数据 ...

  4. 山东大学单片机原理与应用实验 汇编程序实验2

    一.实验题目 汇编程序实验2 二.实验要求 片内RAM30H开始的32个单元中分布着随机的有符号8位二进制数,按从小到大的顺序进行排序,排序后的数据仍然保存到30H开始的32个单元中(低地址存放小数据 ...

  5. 山东大学单片机原理与应用实验 3.2 拓展并行I/O口实验

    目录 一.实验题目 二.实验要求 三.实验过程及结果记录 1. 在Proteus环境下建立原理图,如图1所示,并保存为expandIO.DSN文件. 2. 将实验代码写入文本文档,并保存为expand ...

  6. 山东大学单片机原理与应用实验 3.7LCD 1602显示实验

    目录 一.实验题目 二.实验要求 三.实验过程及结果分析 四.实验流程图 五.实验源代码 一.实验题目 3.7 LCD 1602显示实验 二.实验要求 1.画出实验的流程图 2.编写源程序并进行注释 ...

  7. 【数据库 Microsoft SQL Server】实验六 物业收费管理系统数据库设计与实施综合实验

    实验六 物业收费管理系统数据库设计与实施综合实验 一.实验目的 1.掌握数据库概念模型和逻辑模型设计,学会使用数据库规范化理论规范关系模式. 2.熟练掌握和使用SQL语言定义数据库.表.索引和视图等对 ...

  8. 实验六 基本模型机的设计与实现

    实验六 基本模型机的设计与实现 一.目的任务 完成基本模型机的数据测试,验证并记录运行结果,分析程序的运行过程及各主要功能部件功能. 二.设计内容 1.基本模型机设计与实现 指令系统至少要包括六条不同 ...

  9. MSP430单片机原理及应用 实验

    单片机原理及应用 课程实验(二) 实验项目:MSP430简单程序设计 实验目的:学会用C语言进行简单程序设计 实验要求:掌握编写排序程序 实验内容: (1)设计一个对8个数据(0-255,任意设置)的 ...

最新文章

  1. 周报速递丨小红书提出 IDEA 方法论;金融业七大数字化趋势
  2. java 调整数组顺序使奇数位于偶数前面
  3. C语言程序设计答案黄保和编,C语言程序设计答案(黄保和编)第5章.pdf
  4. oraoledb.oracle 12c,关于OraOLEDB.Oracle找不到驱动问题的一种可能解决方案
  5. 游戏服务器mysql封装_游戏服务端之C++封装Mysql
  6. Android Notification中PendingIntent.Flag的应用
  7. 【人工智能】归结演绎推理
  8. Arcpy处理月NDVI,最大合成法合成年NDVI
  9. 汇正财经骗局?科创50大涨
  10. 超参数的选择与交叉验证
  11. 一把 LOL 案例,学会模板设计模式!
  12. 项目管理的3个关键动作:启动、推进、复盘
  13. [转]基于WorldWind平台的建筑信息模型在GIS中的应用
  14. java中static什么意思_java中static什么意思
  15. 安装win7-专业版虚拟机
  16. 优麒麟 19.04 即将发布,华为、阿里云、重大、360四大境像站鼎力支持!
  17. 安装Docker、Harbor、Jenkins、Gitlab
  18. 如何修改win10系统的字体
  19. 易语言多线程大漠多线程进程线程多线程
  20. [二分+DFS]南蛮图腾

热门文章

  1. ZXR10 1809 路由器 1800开启WEB配置界面调试方法
  2. 用C语言实现的简单Web服务器(Linux)
  3. 【注意力模型】Harmonious Attention Network for Person Re-Identification
  4. 在nvidia的JETSON XACIER NX上面跑通yolov3
  5. 服务器时间 验证码不显示,时间不同步导致网页验证码不能正常显示解决方法...
  6. 【python 爬虫】百度手机助手爬虫
  7. 辅导作业很“崩溃”?猿辅导教你三招告别怒吼式教育
  8. 2021年汽车激光雷达行业研究报告
  9. 小而美的城市,比鸭脖更诱人
  10. 开发的页面卡顿、慢?一文教你如何进行页面性能优化