单片机接口技术与实验附原理图及源程序

单片机接口技术与实验附原理图及源程序
单片机接口技术与实验附原理图及源程序

《单片机接口技术与实验》

姓名:

学号:

年级:

专业:电子信息科学与技术

实验二并行口输入输出实验一一循环彩灯控制

一、实验功能

(1). P1 口接8个开关,P0 口接8个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。开关断开时,灯灭。

二、实验原理图

实验二1

注意:因为P0 口作为输出口时必须接上拉电阻,为简化起见,此处接到P2 口上三、实验程序

org OOOOh

1jmp main

org OlOOh

main:

mov pl,#Offh

mov p2, pl ajmp main end

(2)

一、实验功能

用5个开关K0~K4,控制P0 口所接8个灯的循环,各开关的功能要求如下:

(D K「K2分别选择灯的四种闪动方式;

(2) K3用于控制灯的循环方式(顺时针或逆时针);

(3) K4用于选择灯的两种循环速度

(4) K0用于引发外部中断,在外部中断子程序中,读取通过K1-K4所设定的循环

彩灯的工作方式,并按所设定的工作方式控制彩灯运行。

二、实验原理图

二、实验流程图

实验二2

MCV A 卄QCU\.cnv A ^nrnu 训CV A ++A A AU uc\\r A +fnr?nu

四、实验程丿宇

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP INTOPRO

ORG 01OOH MAIN: MOV Pl, #OFFH

MOV SP,#60H

SETB EXO

SETB ITO

SETB EA

MOV C,

MOV 50H, C

MOV C,

MOV 51H, C

JB ,NEXT1

JNB , NEXT2 NEXT1: JB ,CIRCLE1

JNB , CIRCLE2 NEXT2: JB , CIRCLE3

JNB , CIRCLE4 CIRCLE1: MOV A, #80H

LJMP STEPO CIRCLE2: MOV A, ttOCOH

LJMP STEPO CIRCLE3: MOV A, ttOAAH

LJMP STEPO CIRCLE4: MOV A, ttOEOH

LJMP STEPO

STEPO: MOV P2, A

单片机实验

实验一P1口亮灯实验 实验目的 ⑴学习P1口的使用方法; ⑵学习延时子程序的编写。 实验预备知识 ⑴P1口对准双向口,每一位都可独立地定义为输出线或输入线。 ⑵本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。 实验内容 P1作为输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 程序流程 实验电路 实验步骤 P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。 思考 改变延时常数,使发光二极管闪亮时间改变。 修改程序,使发光二极管闪亮移位方向改变。

实验二 P3.3口输入,P1口输出 实验目的 掌握P3口P1口简单使用。 实验内容 P3.3口输入一脉冲,P1口按位加一方式点亮发光二极管。程序流程 实验电路

实验步骤 ⑴P3.3用插针连至K1,P1.0~P1.7用插针连至L1~L8。 ⑵编译、装载、连续运行。 ⑶开关K1每拨动一次,L1~L8发光二极管按位加一点亮。 思考 修改程序,使发光二极管左移方式点亮。

实验三工业顺序控制(中断控制) 实验目的 掌握工业顺序控制程序的简单编程:中断的使用。 实验预备知识 在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制,倒注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。 实验内容 MCS-51的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,高电平启动。P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。 程序流程

中山大学左明老师单片机实验七共20页

实验七 D/A与A/D转换 一、实验目的 1、学习D/A转换的基本原理和D/A转换芯片DAC0832的性能及篇程方法 2、了解单片机系统中扩展D/A转换芯片的基本方法 3、学习A/D芯片ADC0809的转换性能及编程方法 4、了解A/D芯片与写单片机的接口方法 5、通过实验掌握单片机进行数据采集的方法 二、实验说明 1、D/A转换是把数字量转换成模拟量的变换。从D/A输出的是模拟信号。实验程序一是通过在D/A的输入端送入有一定规律的数字量,在输出端产生锯齿波、三角波、正弦波的波形,通过示波器观察来直观地了解D/A的转换功能。 要把一个数据通过0832输出,要经过两次锁存。典型的程序如下: MOV DPTR,#PORT MOV A,#DATA MOVX @DPTR,A INC DPTR MOVX @DPTR,A 2、A/D转换是把模拟量转换成数字量的变换。启动A/D采样转换只需要两条指令: MOV DPTR,#PORT MOVX @DPTR,A

三、实验内容 内容一:利用DAC0832编程产生锯齿波、三角波、正弦波。三种波形轮流显示 一、连线方法:0832的CS0832接CS0。输出DAOUT接示波器探头,示波器探头地线接实验板地线 二、代码 ;D61.ASM ORG 4000H LJMP MAIN ORG 401BH LJMP DELAY PORT EQU 0CFA0H ORG 4100H MAIN: MOV TMOD,#10H SETB EA SETB ET1 MOV TL1,#0AFH MOV TH1,#3CH SETB TR1 DISP: MOV R1,#50H

单片机实验7学习资料

单片机实验7

实验七直流数字电压表设计 姓名:田坤学号:200912512 专业:电子信息科学与技术 1.实验目的: 掌握LED动态显示和A/D 转换接口设计方法。 2.实验原理: 实验电路原理图如图A..94所示。图中显示器采用4位共阴极数码管,并按动态显示方式接线。A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5kHz。电位器的输出电压送到A/D转换器中转换,转换结果以十进制形式显示在数码管上。调节电位器可使数码管的显示值发生相应变化。 图A.94 实验7的电路原理图 3.实验内容: (1)、学习使用Proteus软件,掌握原理图绘图方法; (2)、学习使用Keil C软件,掌握C51程序编写与调试方法;(3)、理解动态显示与A/D转换工作原理,完成单片机电压采集与显示程序的编写与调试。 4.实验步骤: (1)、在Proteus中绘制电路原理图,按照表A.9将元件添加到编辑环境中; (2)、在Keil中编写C51程序,并使之编译通过;

(3)、在Proteus中加载程序,观察仿真结果。 5.实验要求: 提交的实验报告中应包括电路原理图、含注释内容的源程序及实验结果分析。 表A.9 实验7的元器件清单 1)源程序如下: #include // 头文件 #include unsigned int tmp; //定义一个整形中间变量 sbit START=P2^5; //定义ADC0808启动位 sbit ad_busy=P2^6; //定义ADC0808转换结束标志位 sbit OE=P2^7; //定义ADC0808输出使能标志位 sbit P2_0=P2^0; //定义四个数码管 sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; char led_mod[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //LED字模

单片机实验指导书

实验一KEIL 51软件实验 实验目的: 1、掌握KEIL集成开发环境的使用 2、掌握算术运算程序 实验设备:计算机、KEIL51软件 实验内容: 编程实现把片人RAM30H单元和40H单元两个16字节数相加,结果放于30H单元开始的位置处。在KEIL51编译、连接、仿真调试。 实验步骤: 一、运行KEIL51软件,出现图1所示KEIL 51主界面。 图1 KEIL 51主界面 首先用Project菜单下的New Project命令建立项目文件,过程如下。 (1) 选择Project菜单下的New Project命令,弹出如图2所示的Create new Project对话框。 图2 Create New Project对话框 (2) 在Create New Project对话框中选择新建项目文件的位置(最好一个项目建立一个文件夹如E:\project), 输入新建项目文件的名称,例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select Device for Target ‘Target 1’对话框,用户可以根据使用情况选择单片机型号。Keil uVision2 IDE几乎支持

所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。 图3 Select Device for Target ‘Target 1’对话框 (3) 这里选择atmel公司的A T89c51。单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。 单击后,项目文件就创建好了。项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。 这时只有一个框架,紧接着需向项目文件中添加程序文件内容。 图4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框 二、给项目添加程序文件 当项目文件建立好后,就可以给项目文件加入程序文件了,Keil uVision2支持C语言程序,也支持汇编语言程序。这些程序文件可以是已经建立好了的程序文件,也可以是新建的程序文件,这里我们新建的汇编程序文件后再添加。 (1) 选择文件菜单上的new命令,出现新建文本窗口,如图5所示。

单片机实验模版

单片机实验模版 本科实验报告 课程名称:单片机综合设计学院(系): 专业:电子 班级: 学号: 学生姓名: 2018 年月日

实验项目列表 注意:独立完成预习报告和实验操作。 专业:班级:学号: 学生签字: 联系:

《单片机原理及应用实验》报告填写要求依照《大连理工大学本科实验报告规范(试行)》提出的各项要求,现规定《单片机原理及应用实验》报告填写要求如下: 一、每次实验前必须完成预习报告。注意:预习报告中的回答问题必须手写,且由 学生本人签名。第一次实验时,课前将预习报告与《实验项目列表》一同交给 实验老师。每次实验时,课前提交预习报告,没有完成预习报告者不得进行实 验。 二、每一个实验项目均须撰写一份实验报告,最后按顺序装订、上交。 三、实验报告内容: 1、实验目的和要求:写明实验的目的和任务要求; 2、实验原理和内容:与实验内容相关的算法描述、程序的结构类型,与实验相关的 接口模块功能描述。 3、算法流程:使用流程图对算法进行描述。流程图应当逻辑正确、简单清晰。流程 图能够采纳打印或手工绘制。 4、使用protel等工具绘制实验系统电路图(也可手工绘制)。系统电路图应正确、 工整。系统电路中应包含单片机以及单片机工作时所必需的外围相关器件(晶 体、上电复位电路等); 5、程序清单:程序清单一律采纳打印的方式,源程序文件的格式要整齐、规范(语 句的标号、指令及注释应在不同列中)。在程序的关键语句上加注释。相关子程 序要在凝视中进行功能说明; 6、实验结果与分析:明确地写出最后结果(是否实现设计要求等),对实验中所遇 到的问题以及解决的方法加以描述; 7、实验体会、建议:通过实验所体会的收成。针对实验内容、教学方法、考核方法 等提出需要解决的问题,提出改进建议; 8、全部文字叙述内容要求简明扼要,思路清晰、用词规范; 9、要紧仪器设备:记录要紧仪器的名称、型号(包括实验运行软件名称)等 10、实验时刻:报告中应标明实验的日期(年、月、日;星期;组号)。 四、要求实验报告字迹工整,文字简练,数据齐全,图表规范,运算正确,分析充分、具体、定量。

单片机及通信接口设计课程设计报告

单片机及通信接口设 计课程设计报告 题目:基于STC89S52单片机开发板的功能设计与应用 撰写日期:2011年11月 一、设计要求 二、设计电路及功能说明 三、编程思路及框架 四、调试结果及分析(1、这里写出题目实现结果;2、调试中出现的问题及解决的方

法;3、老师的提问及解决的方法)五、总结(心得体会)

目录 目录 第一章课程设计要求及功能说明 (1) 1.1课程设计要求 (1) 1.2课程设计电路及功能说明 (1) 第二章程序设计及结果分析 (2) 2.1程序设计思想 (1) 2.2调试结果分析及问题解答 (1) 单片机及通信接口设计课程设计总结 (4)

第一章课程设计要求及功能说明 1.1 课程设计要求 跑马灯。设计要求:“123456”6个数字由右边进入1602 液晶显示器模块,再由左边走出LCD模块,连续不断。 1.2课程设计电路及功能说明 1.2.1设计电路 1602 液晶显示器电路 LCD1602 引脚排列

LCD1602 属于字符型显示器件,可显示2 行16 个字符,字符显示尺寸为5×7 个像素点。在显示模块的ROM 中存放ASCII 码字符字模等,输出时只需提供字符编码和显示位置即可。LCD1602 引脚排列如上图所示。其中,D0-D7 为数据口,E 为使能信号,RW 为读写信号,RS 为寄存器选择信号,VL 为亮度调节引脚,VCC、VCC1、GND 和GND1 均为电源引脚。 LCD1602 的工作流程图 1.2.2功能说明 “123456”6个数字由右边进入1602 液晶显示器模块,再由左边走出LCD模块,连续不断。单片机的P3.4脚接E执行使能控制,读操作时,高 电平有效;写操作时,下降沿有效。P3.5脚接rs进行寄存器选择,当 rs=1时,指向数据寄存器;当rs=0时,若执行写操作,则指向指令寄存器,若执行读操作,则指向地址计数器。 1

单片机实验七-外部中断

实验七外部中断 1:在P1.0上产生周期为10ms的方波,设晶振频率12MHz.(要求分别以查询方式和中断方式设计程序) 查询: ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H SETB TR1 WAIT:JBC TF1,NX SJMP WAIT NX:CPL P1.0 MOV TH1,#0CEH MOV TL1,#78H SJMP WAIT END 中断: ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H MOV IE, #88H SETB TR1 WAIT: SJMP WAIT ORG 001BH CPL P1.0

MOV TH1,#0CEH MOV TL1,#78H RETI END 例2按照按键次序,先后依次点亮8盏灯中的一盏,要求采用中断方式编程。 案例一: ORG 0000H LJMP MAIN ORG 0013H ; 中断矢量 LJMP INT ORG 040H MAIN:SETB EX1 ; 开外部中断允许 CLR PX1 ; 外部中断低优先级 SETB IT1; 边沿触发 SETB EA; 开中断总允许 MOV A,#01H; 给A寄存器赋初值 HERE:SJMP HERE; 原地等待中断申请 INT: MOV P1,A ; 输出到P1口显示 RL A ; 左环移一次,准备下次显示的数据 RETI ; 中断返回 END 案例二: ORG 0000H LJMP MAIN ORG 0013H ; 外部中断1矢量 LJMP INT ORG 030H MAIN: MOV R0,#09

《单片机系统设计技术》实验指导

《单片机系统设计技术》 实验指导书 适用专业: 电气、自动化、信息等 编写单位: 电气信息学院 编写人: 曹 林 审核人: 审批人: 批准时间:年月日

目 录 实验1 IO控制LED流水灯实验 (3) 实验2 IO控制数码管动态扫描实验 (5) 实验3 外部中断实验 (8) 实验4 定时器应用控制实验 (10) 实验5 UART实验 (12) 实验6 键盘扫描输入编程 (14) 实验7 UART与PC对话实验 (17) 实验8 ADC数据采集实验 (19)

实验1 IO控制LED流水灯实验 1.实验目的 1)、熟悉KEIL编程环境和调试环境。 2)、掌握单片机汇编语言和指令的用法。 3)、理解简单的IO控制程序,延迟子程序,并对其修改,使其功能改变。 2.实验设备 硬件: PC 机,单片机教学实验开发平台; 软件: KEIL集成开发环境、STC ISP程序下载软件。 3.实验内容 使用P0口控制8个LED 进行流水灯显示。 4.实验预习要求和实验准备要求 预习教科书关于单片机硬件架构内容、IO口的内容,特殊寄存器内容。 预习汇编程序编写、MCS-51指令表。 带上教科书、U盘、具备二进制和十六进制转换的科学计算器。 5.实验原理和步骤 1)实验原理 (1)实验原理图 图1 P0口连接的8盏LED灯 从图1中可以看出:如果需要把LED点亮有两个条件,其一是需要用短接帽把J1的2脚和3脚短接,在PCB上就是将电路板左上角LED和VCC短接起来;其二是P0.X口给出低电平,让电流从VCC开始流经限流电阻、LED后进入单片机的P0.X口,最后到单片机内部的地线上。因此,简单地说就是在短接帽接好的前提下,向P0.X口写0则LED将点亮,写1则LED将熄灭。图中网络标识PORT0_0、PORT0_1……PORT0_7和单片机P0.0、P0.1……P0.7连接,可观察原理图上单片机P0口的网络标识也是PORT0_0、 PORT0_1……PORT0_7。

实验七 单片机串口通信

实验七串口通信实验 【实验目的】 1、理解单片机串行口的工作原理; 2、学习使用单片机的TXD、RXD口; 3、学习PC机的串口通讯原理。 【实验内容】 任务: 1.单片机与电脑串口通讯,将单片机与电脑相连,借助串口调试助手,单片机发送“Everything is possible ^_^”。 2.串口调试助手中输入“turnonled1”、“turnonled2”、“turnonled3”中一个,相应的led点亮,单片机再发送“Turn on LED1 has been executed!”消息提示输入下一个需要点亮的灯。通讯波特率:9600bps,信息格式:无校验位+8个数据位+1个停止位,传送方式,单片机采用中断方式接收信息。 原理: SM0、SM1:由软件置位或清零,用于选择串行口四种工作方式。 SM2:多机通信控制位。在方式2和方式3中,如SM2=1,则接收到的第9位数据(RB8)为0时不启动接收中断标志RI(即RI=0),并且将接收到的前8位数据丢弃;RB8为1时,才将接收到的前8位数据送入SBUF,并置位RI,产生中断请求。当SM2=0时,则不论第9位数据为0或1,都将前8位数据装入SBUF 中,并产生中断请求。在方式0时,SM2必须为0。 REN:允许串行接收控制位。若REN=0,则禁止接收;REN=1,则允许接收,该位由软件置位或复位。 TB8:发送数据D8位。在方式2和方式3时,TB8为所要发送的第9位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0为数据,TB8=1为地址;也可用作数据的奇偶校验位。该位由软件置位或复位。 RB8:接收数据D8位。在方式2和方式3时,接收到的第9位数据,可作为奇偶校验位或地址帧或数据帧的标志。方式1时,若SM2=0,则RB8是接收到的停止位。在方式0时,不使用RB8位。 TI:发送中断标志位。在方式0时,当发送数据第8位结束后,或在其它方式发送停止位后,由内部硬件使TI置位,向CPU请求中断。CPU在响应中断后,必须用软件清零。此外,TI也可供查询使用。 RI:接收中断标志位。在方式0时,当接收数据的第8位结束后,或在其它方式接收到停止位的中间由内部硬件使RI置位,向CPU请求中断。同样,在CPU 响应中断后,也必须用软件清零。RI也可供查询使用。

单片机实验LCD显示实验

实验19L C D显示实验 一、实验目的: 学习液晶显示的编程方法,了解液晶显示模块的工作原理。 掌握液晶显示模块与单片机的接口方法。 二、所需设备 CPU挂箱、8031CPU模块 三、实验内容 编程实现在液晶显示屏上显示中文汉字“北京理工达盛科技有限公司”。 四、实验原理说明 五、实验步骤 1、实验连线 8255的PA0~PA7接DB0~DB7,PC7接BUSY,PC0接REQ,CS8255接 CS0。 2、运行实验程序,观察液晶的显示状态。 六、程序框图 八、附:点阵式LCD 模块 点阵式LCD模块 由一大一小两块液晶 模块组成。两模块均 由并行的数据接口和 应答信号接口两部分 组成,电源由接口总 线提供。 (1)OCMJ2×8液晶 模块介绍及使 用说明 OCMJ中文模块系列液晶显示器内含 GB 2312 16*16点阵国标一级简体汉字和 ASCII8*8(半高)及8*16(全高)点阵英文字库,用户输入区位码或 ASCII 码即可实现文本显示。 OCMJ中文模块系列液晶显示器也可用作一般的点阵图形显示器之用。

提供有位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。完全兼容一般的点阵模块。 OCMJ中文模块系列液晶显示器可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。 本系列模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令。一改传统的使用大量的设置命令进行初始化的方法,OCMJ 中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用”。同时保留了一条专用的复位线供用户选择使用,可对工作中的模块进行软件或硬件强制复位。规划整齐的10个用户接口命令代码,非常容易记忆。标准用户硬件接口采用REQ/BUSY 握手协议,简单可靠。 硬件接口 接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY 高电平(BUSY =1)表示 OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ 空闲,等待接收用户命令。发送命令到 OCMJ可在BUSY =0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ 信号(REQ =1)通知OCMJ请求处理当前数据线上的命令或数据。OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需5个字节,模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长,具体的时序图和时间参数说明查阅相关手册。

单片机试验源程序文件

单片机实验指导书(实验源程序)

实验二、三 I/O接口实验 1、输出实验 例1: ORG 0000H AJMP START ;跳转到初始化程序 ORG 0033H ;----- 主程序开始 ----- START: MOV P1,#0FFH ;是所有LED熄灭 ACALL DELAY ;调用延时子程序 CLR P1.0 ;P1.0输出低电平,使LED3点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED3熄灭 CLR P1.1 ;P1.1输出低电平,使LED4点亮 ACALL DELAY ;调用延时子程序 SETB P1.1 ;P1.1输出高电平,使LED4熄灭 CLR P1.2 ;P1.2输出低电平,使LED5点亮 ACALL DELAY ;调用延时子程序 SETB P1.2 ;P1.2输出高电平,使LED5熄灭 CLR P1.3 ;P1.3输出低电平,使LED6点亮 ACALL DELAY ;调用延时子程序 MOV P1, #0F0H ;LED3~LED6全部发光 ACALL DELAY ;调用延时子程序 AJMP START ;返回到标号START处再循环 ;----- 延时子程序 ----- DELAY: MOV R5,#10 LOOP: MOV R6,#200 LOOP1: MOV R7,#250 LOOP2: DJNZ R7,LOOP2 DJNZ R6,LOOP1 DJNZ R5,LOOP RET 例2: ORG 0000H AJMP START ;跳转到初始化程序 ORG 0033H ;----- 主程序开始 ----- START: MOV P1,#0FFH ;是所有LED熄灭 ACALL DELAY ;调用延时子程序 MOV ACC,#0FEH ;ACC中先装入LED3亮的数据(二进制的11111110) MOV P1,ACC ;将ACC的数据送P1口 ACALL DELAY ;调用延时子程序 MOV R0,#03H ;上句送到P1口的数据就点亮了LED1,所以将数据再移

单片机接口设计 上位机

单片机接口设计 上位机 班级:电0901-2 姓名: 学号:20092368 指导老师: 组员: 负责任务:主机硬件部分 实习时间:2012.6.13—6.23

一、设计要求 1.定时呼叫下面每一个下位机(如5秒) 应答则表示通,显示:地址_P(如1_P) 不应答表示不通,显示:地址_E(如3_E) 2.可通过按键决定反复呼叫某个地址 3.通过按键控制要某地址的数据并显示(要数据命令为AAH) 4.通过按键控制修改某地址的数据并显示(修改定值或指示电梯楼层命令为55H) 5.显示下位机报警,如:1:FF 二、硬件系统设计 1、整体电路图 主机仿真图: 从机仿真图:

2说明: 1、单片机的引脚资源分配:18、19脚接12M晶振,9脚接按键复位,20脚接地,40脚接VCC,P1.0、P1.1、 P1. 2、P1. 3、P1. 4、P1. 5、P1.6接7个控制开关和按钮, P1.7接发光二极管,P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0. 6、P0.7接共阴极数码管字形码控制端,P2.0,、P2.1、 P2.2、 P2.3接数码管驱动电路75452,RXD和TXD接口用于通信接口与从机相连。 当从机程序运行时,显示从0号机到3号机反复查询,按住P1.4, 2、主机反复查询从机,查询从机由P1.0和P1.1决定;按住P1.5,主机接收从机发送的数据,如1234并显示;按住P1.6,主机发送修改信息给从机,如1111并显示。从机应答则显示1-PP,无应答则显示0-EE等。 3、整体实物电路图 三、软件系统说明 1、软件流程图

说明:图中只画出了查询过程,还有定时5s后调用M0,并发送非法命令03H。 2、软件清单: 1、工作寄存器分配: R0:用于发送数据寻址,初值:30H R1:用于接收数据寻址,初值:40H R2:用于存放通信地址 R3:用于存放命令 R4:用于存放数据传输个数 R5:用于存放定时器中断次数 R5、R6、R7:用于DELY延时 2、I/O分配 P0:数码管显示的字形码输出 P1:接控制开关和按钮 P2:数码管显示的片选 P3:通行口P3.0、P3.1 3、程序代码

单片机实验答案

前言 由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机。为配合《单片机应用技术》课程的教学,使学生尽快了解、掌握89C51单片机的使用,特编写了这本上机指导书(基础篇)。 《单片机》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强动手是不能获得预期效果的。本实验指导书提供了9个实验的指导性材料,实验还有一些思考题,可以根据课时的安排和教学要求进行取舍。为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。 由于时间紧迫,加上编者学识有限,如有不妥之处,欢迎读者批评指正。 编者

实验须知 1. 实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备工作,编写好实验中要求自编或修改的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上机操作。 2. 各种电源的电压和极性不能接错,严禁带电接线和接插元器件。通电前须经过指导教师检查认可后方能通电。 3. 不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。 4. 严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。 5. 实验中若损坏仪器或元器件,应及时向指导教师报告,听候处理。 6. 在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成实验。 7. 实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。 8. 按规定认真完成实验报告,对实验中出现的现象进行分析,在规定的时间内交上实验报告。 9. 凡实验或实验报告未能按规定完成的学生,不能参加本课程的考试或考查。

100个单片机c51实验源程序

/*--------------------------------------- Name :LCD1602液晶显示Created By : Paul He Date : 2012.9.18 ----------------------------------------*/ # include # include "macroandconst.h" # define LcdData P0 sbit EN=P3^5; sbit RW=P3^6; sbit RS=P3^7; //sfr LcdData=0x80; /********************* 延时函数 *********************/ void Delay(uint16 t) { while(t--); } /********************* LCD1602驱动程序 *********************/ void //完成一个字节命令的写入LcdWriteCmd(uint8 cmd) { Delay(1000); EN=0; RW=0; RS=0; LcdData=cmd; EN=1; Delay(20); EN=0; } void //完成一个字节数据的写入LcdWriteDat(uint8 dat) { Delay(1000); EN=0; RW=0; RS=1; EN=1; LcdData=dat; EN=0; } void //清屏 LcdClear() { LcdWriteCmd(0x01); } void //初始化液晶屏 LcdInit() { LcdWriteCmd(0x38); Delay(200); LcdWriteCmd(0x0e); Delay(200); LcdWriteCmd(0x06); Delay(200); } void //完成字符串的写入,如 果第一行写满,自动切换到第 二行 LcdWriteStr(uint8 addr,uint8 *p) { LcdWriteCmd(addr); while(*p!=0x00) { LcdWriteDat(*p); p++; if(addr++==0x8f) { LcdWriteCmd(0xc0); } } } //主函数 void main() { LcdClear(); LcdInit(); LcdWriteStr(0x80,"HeHuiB o"); LcdWriteStr(0xc0,"1010107 2054"); while(1); }

实验七 单片机键盘LED显示实验

实验七单片机键盘LED显示实验 一、实验目的 1、掌握键盘和LED显示器的接口方法和编程方法。 2、掌握键盘扫描和LED八段码显示器的工作原理。 3、学习并口扩展的程序编写方法。 二、实验说明 利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。 实验程序可分成三个模块。 ①键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。 ②显示模块:将显示单元的内容在显示器上动态显示。 ③主程序:调用键输入模块和显示模块。 三、实验仪器 计算机 伟福实验箱(lab2000P ) 四、实验内容 1、本实验仪提供了一个6×4的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖动。地址中的X是由KEY/LED CS 决定,参见地址译码。做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如将KEY/LED CS信号接CS0上,则列扫描地址为08002H,行码地址为08001H。列扫描码还可以分时用作LED的位选通信号。 2、本实验仪提供了6 位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。 3、本实验仪中8位段码输出地址为0X004H,位码输出地址为0X002H。此处X是由KEY/LED CS 决定,参见地址译码。做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS 接到CS0上,则段码地址为08004H,位码地址为08002H。 五、思考题 1、按键接收到的数据加1显示出来; 2、实现第2功能键,即按下A后,再按下0-9键为加1显示; 3、保存前一个接收到的数据,数据向前推动显示。 六、源程序修改原理及其仿真结果 原程序: OUTBIT equ 08002h ; 位控制口 OUTSEG equ 08004h ; 段控制口 IN equ 08001h ; 键盘读入口 LEDBuf equ 60h ; 显示缓冲 ljmp Start

MCS-51单片机实验源程序

MCS-51单片机实验源程序 仅供参考。没有最好,只有更好!希望大家设计出更好的程序来。 软件实验一求一组数据的最大(小)值 /*软件实验的目的:熟悉单片机常用的基本程序(算法),调试时观察变量(含数组)值的变化,从而理解程序的功能,了解变量(含数组)在单片机存储器中的具体位置。*/ int a[]={-1,2,-30,40,-500,600,-7000,8000,-32750,32765}; //任意给出10个int型数(围:-32768~+32767),放在数组a中 void main() { unsigned char i; int max,min; max=min=a[0]; //max,min先取该组数据的第一个 for(i=1;i<10;i++) { if(a[i]>max) max=a[i]; if(a[i]

注意:由于是纯软件实验(单片机没有进行实际的输入与输出),有些变量要声明为全局 会被Keil软件编译时优化掉(即:一些语句没有真正生变量(如上面的数组a),否则可能 .. 成执行代码),导致无法观察到正确结果。 软件实验二二进制(十六进制)数转换为BCD数 //按流程图,编写程序如下: #define uchar unsigned char void main() { uchar x=0xA5; //设二进制数为1010 0101,在Keil中只能用十六进制0xA5或十进制165(不能直接用二进制形式) uchar a[3]; a[2]=x/100; x=x%100; a[1]=x/10; x=x%10; a[0]=x; while(1); }

单片机实验源程序及结果

实验2.2 (跑马灯) 主要程序代码 ; code section ORG ROMStart Entry: LDS #RAMEnd+1 ; initialize the stack pointer LDAA #$FF STAA DDRB LDAA #$C0 STAA IRQCR CLI ; enable interrupts LDAA #$FF STAA PORTB LDAA #$0F STAA PORTB BSR DELAY RTI DELAY: PSHX PSHY LDX #200 DELAY1: LDY #200 DELAY2: NOP NOP DBNE Y,DELAY2 DBNE X,DELAY1 PUL Y PULX RTI ;************************************************************** ;* Interrupt Vectors * ;************************************************************** ORG $FFFE DC.W Entry 实验2.3 (4个拨位开关(SW3-1、2、3、4)控制4个LED的亮或灭)主要程序代码 ORG $2000 LDAA #$F0 STAA DDRB SHIFT: LDAA PORTB STAA PORTB BRA DELAY LSLA

LSLA LSLA LSLA BRA SHIFT DELAY: PSHA PSHB PSHX LDX #$0200 DELAY1: LDY #$0500 DELAY2: DEY BNE DELAY2 DEX BNE DELAY1 PULX PULB PULA RTS 实验4.1 (A/D转换) 主要程序代码 ORG ROMStart Entry: LDS #RAMEnd+1 ; initialize the stack pointer LDAA #$FF STAA DDRT LDAA #$00 STAA PTT LDAA #$C0 STAA ATD0CTL2 LDAA #$08 STAA ATD0CTL3 LDAA #$E7 STAA ATD0CTL4 LDAA #$A5 STAA ATD0CTL5 LDAA #$00 STAA ATD0DIEN W AIT: ; BRCLR A TD0STA T1,#$01,W AIT LDAA A TD0STA T1 ANDA #$01 BNE CON BRA W AIT CON: LDAA ATD0DR0L

单片机实验七

单片机实验七 实实验报告专业计算机科学与技术班级学号姓名课程名称单片机原理及应用学年2013-2014学期1/2课程类别专业必修限选任选实践实验时间2014年4月21日实验名称实验七外部中断0(/INT0)中断技术实验实验目的和要求①掌握MSC-51单片机中断原理以及编程和使用方法。 ②理解下降沿中断和低电平中断的区别。 实验器材1实验仪一台;2编程器一台;3万用表一块;4小镊子一把;实验原理、内容与要求(见附页)实验结果(见附页)小结通过实验,我掌握了MSC-51单片机中断原理以及编程和使用方法,以及理解了下降沿中断和低电平中断的区别。 评定成绩: 批阅教师: 年月日实验原理:MCS-51单片机有5个中断源,其中,两个是由/INT0、/INT1引脚输入的外部中断源;另外三个是内部中断源,即由T0、T1的溢出引起中断和串行口发送完一个字节或接收到一个字节数据引起的中断。触发外部中断有两种方式,即下降沿引起中断或低电平引起中断,当编程TCON中的ITi为1时,则规定引起触发的方式为边沿触发方式,反之为低电平触发方式。每个中断源的中断请求能否得到响应要受两级开关的控制,即一个总开关EA和五个分开关ES、EXT1、EX1、ET0和EX0的控制,只有当EA为1,且对应的分开关也为1时,对应中断源的中断请求才能被响应。5个中断源可编程为两个优先级,同一优先级内以/INT0的优先级最高,然后是T0中断、/INT1中断、T1中断和串行口中断。5个中断源对应5个固定的中断服务程序入口地址。CPU在每个机器周期顺序采样每个中断源,如查询到某个中断源的中断标志为1,中断系统通过硬件自动将相应的中断矢量装入PC,进入中断服务程序。实验线路如下图所示,图中的开关TR3为一按钮,通常状态下A点接地,C点为高电平,当按下按钮时B接地,这时就会在C点输出低电平,当松开按钮时,C 点重新变成高电平。 实验内容与要求: 1编写主程序,读取图中开关SW1的状态,当其闭合时(P1.3为低电平)初始化为下降沿中断,反之,初始化为低电平中断,且黄色发光管灭;编写中断服务程序,使图中的发光管闪烁5次,间隔250MS,即中断服务程序的执行时间为2.5秒,退出中断程序时,使发光管灭。 实验分两步进行:

单片机电子琴电路图及源程序代码

单片机电子琴电路图及源程序代码关键字:单片机电子琴程序代码 实验仿真图 源程序代码:(弹奏部分代码暂时去掉,见谅,需要的留言,转载请注明出处,谢谢!) DUAN EQU 0c000H WEI EQU 0a000H LED0 EQU 8000H ORG 0000H ;复位地址 LJMP MAIN ;跳转到主程序 ORG 0003H ;外部中断0入口地址 LJMP INT00 ;跳转到外部中断0服务程序 ORG 000BH ;T0中断入口 LJMP TIM0 ;跳转到T0中断服务程序 ORG 0030H ;主程序入口地址 MAIN: MOV DPTR,#LED0 MOV A,#00H MOVX @DPTR,A MOV TMOD,#01H ;写入T0控制字, 16位定时方式 SETB IT0 ;外部中断为下降沿触发

MOV IE,#83H ;开中断 MOV 30H,#00H ;取简谱码指针 MOV R6,#0FFH ;选择音乐节奏灯循环次数 CLR 23H ;功能选择标志00:键盘01:音乐 NEXT: CLR TR0 JNB 23H,KEYPLAY ;若标志位是0则转到键盘程序 SETB P2.2 MOV A,30H ;简谱码指针装入A JNB P0.1,START1 ;否则查询播放哪一首歌曲 JNB P0.2,START2 JNB P0.3,START3 LJMP NEXT ;确定不同歌曲的基地址 START1: MOV DPTR,#TABLE ;从TABLE处取简谱码 MOV 60H,DPH MOV 61H,DPL MOV A,#00H LJMP NEXT1 START2: MOV DPTR,#TABLE2 ;从TABLE2处取简谱码 MOV 60H,DPH MOV 61H,DPL MOV A,#01H LJMP NEXT1 START3: MOV DPTR,#TABLE3 ;从TABLE处取简谱码 MOV 60H,DPH MOV 61H,DPL MOV A,#02H LJMP NEXT1 ;键盘弹奏程序入口 KEYPLAY: ;键盘程序入口 SETB P2.1 CLR P2.2 JNB P0.4,LOWTONE ;查询是高音还是其他的音 JNB P0.5,MIDDLETONE JNB P0.6,HIGHTONE LJMP NEXT ;没有选择高中低音则重新查询

单片机实验新教材

《单片机应用实践I 》 上海大学机械自动化学院 2007年10月

目录 1.仿真器及实验平台的使用 (3) 2.LED点阵扫描实验 (6) 3.七段LED数码管的显示与应用 (10) 4.定时器的应用 (15) 5.计数器的应用 (18) 6. 键盘扫描及显示实验 (23) 7. 数据传送实验 (31) 8. A/D、D/A转换实验 (38) 9. 系统综合扩展实验 (45) 10. 附录--------------------------------------------------------------48

仿真器及实验平台的使用 一.实验目的: 1.了解仿真实验系统的基本构成。 2.了解仿真软件的功能特点及使用方法。 3.通过实验了解MCS51内部寄存器的分布及使用方法 二、实验内容 编写并调试一个程序,验证下列个项。 1.BANK0——BANK3的分布及使用。 2.位寻址区的分布和使用。 3.内部RAM的分布和使用(包括直接及间接寻址)。 4.特殊功能寄存器(SFR)及其地址的对应关系。 三、调试方法 1.开启系统电源,并启动仿真软件Keil51。 2.在编辑状态下输入程序并存盘, 3.编译源程序,若出错则修改后重新编译,直至完全正确。 4.运行程序,(可采用单步(包括跟踪式和通过式)、断点、全速等多种方式)。 5.打开内部数据窗,观察程序执行过程中各对应单元的数据变化。 四、参考程序 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV SP, #80H ;BANK0——BANK3的分布及使用。 MOV A, #0 ;BANK0 ACALL BK SETB PSW.3 ACALL BK ;BANK1 CLR PSW.3 SETB PSW.4 ACALL BK ;BANK2 SETB PSW.3 ACALL BK ;BANK3 SETB 00H ;位寻址区的分布和使用; SETB 10H SETB 20H SETB 30H SETB 40H SETB 50H SETB 60H

相关文档
最新文档