单片机实验报告

合集下载

单片机计数器实验报告

单片机计数器实验报告

计数器实验报告㈠实验目的1.学习单片机内部定时/计数器的使用和编程方法;2.进一步掌握中断处理程序的编程方法。

㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台5.信号发生器一台㈢实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。

㈣实验说明1.本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入定时器T0。

单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。

2.计数脉冲由信号发生器输入(从T0端接入)。

3.计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421码表示,个位用L8~L5的8421码表示4.将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动次数并显示㈤实验框图(见下页)程序源代码ORG 00000H LJMP MAINORG 001BH ;T0的中断入口地址AJMP MAIN1MAIN:MOV SP,#60HMOV TMOD,#15H ;设置T1做定时器,T0做计数器,都于方式1工作MOV 20H,#14H ;装入中断次数MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位MOV TL0,#00H计数器主程序框图中断返回恢复现场NY 是否到1秒?显示置T1定时常数INT _T1入口保护现场清T0计数值中断服务程序框图开 始置T0,T1模式及初始值设置初始常数开中断等 待MOV TH0,#00HSETB TR1 ;启动定时器T1SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $ ;等待中断MAIN1:PUSH PSWPUSH ACCCLR TR0CLR TR1 ;保护现场MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位,50ms;允许T1中断DJNZ 20H,RETUNT ;未到1s,继续计时MOV 20H ,#14H;1s到重新开始SHOW: ;显示计数器T0的值MOV R0,TH0 ;读计数器当前值MOV R1,TL0MOV A,R1MOV B,#0AHDIV AB;将计数值转为十进制MOV C,ACC.3 ;显示部分,将A中保存的十位赋给L0~L3 MOV P1.0,CMOV C,ACC.2MOV P1.1,CMOV C,ACC.1MOV P1.2,CMOV C,ACC.0MOV P1.3,CMOV A,B ;将B中保存的各位转移到A中MOV C,ACC.3 ;将个位的数字显示在L4~L7上MOV P1.4,CMOV C,ACC.2MOV P1.5,CMOV C,ACC.1MOV P1.6,CMOV C,ACC.0MOV P1.7,CRETUNT:MOV TL0,#00H ;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。

单片机实验报告一 单片机软件实验

单片机实验报告一 单片机软件实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.9 实验成绩:实验一单片机软件实验(一)实验目的1.掌握51单片机keil软件集成开发环境,能够使用汇编语言编写应用程序。

2.掌握使用集成开发环境Keil进行单片机程序开发的方法3.掌握使用集成开发环境Keil进行单片机程序跟踪调试的方法。

(二)设计要求熟悉51单片机的keil软件集成开发环境,使用汇编语言编写“1+2+3+…+100”的程序。

(三)实验原理KeilC51软件使用:在KeilC51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。

(四)实验设备PC机,Keil C51集成开发环境。

(五)实验结果对汇编程序进行编译、链接、调试,在Keil C51软件中运行仿真结果如下图所示,由于“1+2+……100”运行结果超过8位二进制所能表示的范围,计算结果将存放于两个8位工作寄存器单元R2、R3中。

其中,低八位存放于R2中,高八位存放于R3中,R4中存放计算数。

下图中的寄存器窗口中可以显示计算结果为0x13ba。

调出存储器窗口Memory:选择菜单命令View →Memory Window →Memory 1:可见计算结果存放于当前工作寄存器R2(02H)与R3(03H)中,为0x13BA。

(六)结果讨论与心得体会第一次使用Keil C51软件,初步了解了软件:Keil uVision4的使用方法,初步了解了Keil软件中程序的编辑,新工程的建立运行,初步对单片机实验进行了解,加强了实验动手操作能力。

第一次尝试单步调试,能观察到内存中每一个单元的变化,感到单片机系统复杂中的严谨,收获颇丰。

(七)附录:实验源代码实验源代码如下:ORG 0000HLJMP MAINORG 0050H MAIN:MOV R2,#00HMOV R3,#00HMOV R4,#64HMOV A,#00HCLR C LOOP:MOV A,R2ADD A,R4MOV R2,AMOV A,#00HADDC A,R3MOV R3,ADJNZ R4,LOOPSJMP $END。

单片机实验报告 附含说明书

单片机实验报告  附含说明书

第一章 DICE-5208K开发型单片机综合实验仪概述一、系统简介DICE-5208K型单片机实验系统由DICE-5208K开发型单片机综合实验箱、DICE-3000型仿真器、扩展卡和DICE-51仿真开发系统软件等组成。

是《MCS-51单片机原理与接口》、《单片机控制技术》、《C8051Fxxx高速SOC单片机原理及应用》、《EDA》、《VHDL硬件描述语言》、《CPLD/FPGA应用基础》等课程教学的配套实验设备。

新增加了几乎所有最实用、新颖的接口电路(如1 WIRE /I2C/SPI总线等)和通讯类接口实验(如USB2.0通讯/TCP/IP网络通讯/CAN总线/红外线收发等)。

可进行MCS-51、C8051F嵌入式单片机、CPLD/FPGA等课程的开放式实验教学。

二、主要特点1.该实验系统配置DICE-3000型高性能MCS-51硬件仿真器,64K数据空间,64K程序空间全部开放,不占用CPU资源,采用双CPU模式,仿真CPU和用户CPU独立运行,上位仿真软件支持汇编、C语言、PL/M语言。

可运行于WIN98/2000/NT/XP操作系统平台。

2.实验系统带有ISP在线下载电路,学生在完成实验后可脱离仿真机和PC机独立运行学生自行设计的单片机系统。

(可在线编程AT89S51/52/53系列单片机)。

3.该实验系统可扩展C8051F020嵌入式实验开发模块, 并配有DICE-EC5型USB高速通讯仿真器,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试、仿真;集成开发环境支持Silicon Labs IDE和KEIL C软件。

4.该实验系统可扩展CPLD/FPGA模块,并配有相应的并口下载电路,轻松变成一台EDA实验开发平台。

5.该实验系统可扩展“数控式电子演示装置”,该装置是本公司的专利产品,结合上位演示软件和USB接口,可为该实验系统扩展多达十五个生动、形象、复杂的实验,其中大部分是闭环实验,实验践性非常强。

单片机四个实验报告流程图

单片机四个实验报告流程图

实验一流水灯
实验目的:用AT89C51控制,使8个LED轮流点亮,周期1S,且LED使用驱动电路。

单片机电路
流程图
开始
将累加器的值赋为0FEH
将累加器的值输出给P1
循环左移一位
延时1秒
实验二定时器/计数器的使

实验目的:用T0对1kHz方波进行计数,每满200个使输出翻转;用T1产生20ms定时,满200ms时使翻转,满1s时使翻转。

电路图
流程图
开始
给TMOD赋初值,设
设定定时器初值
开启中断
等待中断
T0中断子程序,翻转T1中断子程序,
翻转
T1中断子程序,
翻转
脉冲个数满200 T1计时满200ms T1计时满1s
实验三 矩阵键盘的使用
单片机电路
流程图
开始 扫描键盘码 延时10ms
再次扫描键盘码
比较两次键盘码
将上次的按键字符左移,将
寻找较键盘码对应的字符
Y
N
实验四双机通信
实验目的:单片机甲同期发送一个自累加数值,周期500ms,用定时器且用中断;单片机乙中断方式接收数据,并通过P1口外接LED显示。

实验电路图:
实验流程图:
单片机乙。

【报告】南邮单片机实验报告

【报告】南邮单片机实验报告

【报告】南邮单片机实验报告一、实验目的本次南邮单片机实验旨在通过实际操作和实践,深入了解单片机的工作原理、编程方法以及其在实际应用中的功能实现。

通过完成一系列实验任务,提高我们对单片机系统的设计、开发和调试能力,为今后在电子信息领域的学习和工作打下坚实的基础。

二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil C51)4、下载器5、示波器6、万用表三、实验内容(一)点亮 LED 灯1、原理通过控制单片机的引脚输出高低电平,来控制连接在引脚上的 LED 灯的亮灭。

2、编程实现使用 C 语言编写程序,设置相应引脚为输出模式,并通过循环语句实现 LED 灯的闪烁效果。

3、调试与观察将程序下载到单片机中,观察 LED 灯的闪烁情况,使用示波器测量引脚的电平变化,以验证程序的正确性。

(二)数码管显示1、原理数码管由多个发光二极管组成,通过控制不同段的发光二极管的亮灭,可以显示不同的数字和字符。

2、编程实现编写程序,实现数码管的动态扫描显示,将需要显示的数字或字符转换为对应的段码,并通过定时中断实现动态刷新。

3、调试与观察下载程序后,观察数码管的显示效果,检查是否能够正确显示预定的数字和字符。

(三)按键控制1、原理按键连接到单片机的引脚,当按键按下时,引脚的电平发生变化,通过检测引脚电平的变化来实现按键的识别和响应。

2、编程实现设置引脚为输入模式,采用查询或中断的方式检测按键状态,根据按键的不同操作执行相应的功能。

3、调试与观察按下不同的按键,观察系统的响应是否符合预期,如 LED 灯的状态改变、数码管显示内容的变化等。

(四)温度传感器采集与显示1、原理使用数字式温度传感器(如 DS18B20)采集环境温度,传感器将温度转换为数字信号,单片机通过特定的通信协议读取温度数据。

2、编程实现编写驱动程序,实现与温度传感器的通信,读取温度值,并将其转换为合适的显示格式。

3、调试与观察将传感器置于不同的温度环境中,观察数码管或液晶显示屏上显示的温度值是否准确。

单片机实验报告(相当不错,有具体实验结果分析哦)

单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。

二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。

以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。

2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。

六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。

单片机实验报告二 单片机IO口实验

单片机实验报告二 单片机IO口实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.16 实验成绩:实验二单片机I/O口实验(一)实验目的1.掌握单片机最小系统的构成,学习如何控制I/O口来驱动发光二极管,掌握移位和软件延时程序的编写。

2.熟练掌握STC型开发板的使用方法和注意事项。

3.掌握应用STC_ISP烧录过程;(二)设计要求利用51单片机及4个LED发光二极管,设计一个单片机流水灯程序,P4.7 /P4.6/ P1.6/ P1.7 来演示跑马灯。

其中流水灯的变化形式多样。

(三)实验原理STC实验箱单片机型号为IAP15W4K32S4-Student,其在线编程与在线仿真可由Keil uVision4集成开发环境和STC系列单片机在线可编程(ISP)电路实现:1.设置STC仿真器:运行STC-ISP在线编程软件,选择“keil 仿真设置”选项,如图1所示,单击“添加型号和头文件到keil中/ 添加STC仿真器驱动到keil中”,弹出“浏览文件夹”对话框,在浏览文件夹中选择keil的安装目录,单击“确定”按钮即完成添加。

根据所用芯片,单击“将IAP15W4K32S4-Student设置为仿真芯片”。

图12.Keil uVision4环境设置:选择菜单命令Project →Options for Target →Debug,选中“STC Monitor-51 Driver”,勾选“Load Application at Startup”选项和“Run to main()”选项,如图2所示。

单击图2右上角的“settings”按钮,弹出硬件参数设置对话框,如图2所示,根据仿真电路所使用的串口号(本机所用为串口5)选择串口端口,如图3所示:图2图33.STC15单击串口TTL电平通信模块结构如图4所示,P1.6、P1.7、P4.6、P4.7所连接的LED灯为共阳极LED,控制对应I/O口为低电平即可点亮LED。

单片机原理实验报告

单片机原理实验报告

实验一:系统认识实验一、设计目的:1. 学习 Keil C51 集成开发环境的操作;2. 熟悉 TD-51 系统板的结构及使用。

二、设计内容:编写程序,将 00H~0FH 共 16 个数写入单片机内部 RAM 的 30H~3FH 空间。

三、设计步骤:1. 创建 Keil C51 应用程序(1)运行 Keil C51 软件,进入 Keil C51 集成开发环境。

(2)选择工具栏的 Project 选项,弹出下拉菜单,选择 NewProject 命令,建立一个新的μVision2 工程。

这时会弹出文件保存对话框,选择工程目录并输入文件名 Asm1 后,单击保存。

(3)工程建立完毕后,μVision2 会马上弹出器件选择窗口。

器件选择的目的是告诉μVision2 使用的 80C51 芯片的型号是哪一个公司的哪一个型号,不同型号的 51 芯片内部资源是不同的。

此时选择 SST 公司的 SST89E554RC。

(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件则必须建立它。

选择工具栏的 File 选项,在弹出的下拉菜单中选择 New 目录。

(5)输入程序,完毕后点击“保存”命令保存源程序,将 Text1 保存成Asm1.asm。

Keil C51 支持汇编和 C 语言,μVision2 会根据文件后缀判断文件的类型,进行自动处理,因此保存时需要输入文件名及扩展名.ASM 或.C。

保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。

(6)程序文件建立后,并没有与 Asm1.Uv2 工程建立任何关系。

此时,需要将 Asm1.asm 源程序添加到 Asm1.Uv2 工程中,构成一个完整的工程项目。

在Project Window 窗口内,选中Source Group1 点击鼠标右键,选择 Add Files to Group‘Source Group1’命令,此时弹出添加源程序文件对话框,选择文件Asm1.asm,点击 Add 命令按钮即可将源程序文件添加到工程中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京晓庄学院电子工程学院实验报告课程名称:单片机系统设计与应用姓名:森专业:电子信息科学与技术年级:14级学号:052016年12 月1 日实验项目列表序号实验项目名称成绩指导教师1 单片机仿真软件的使用2 单片机I/O接口应用实验——流水灯3 外部中断实验——工业顺序控制模拟4 定时/计数器实验——矩形波5 定时/计数器实验——计数器6 综合实验78910注:1、实验箱端口为com6。

2、芯片选择切换到513、停止运行使用实验箱上的复位按钮实验室号:___ 实验时间:成绩:实验一仿真软件的使用1.实验目的和要求1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤;2)掌握单片机仿真软件使用和调试的方法。

2.实验原理Keil C51软件使用在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。

3.主要仪器设备(实验用的软硬件环境)安装有Keil C51软件的PC机1台4.操作方法与实验步骤Keil C51软件使用(1)建立用户文件夹(2)建立工程(3)建立文件并编码。

输入以下源程序,并保存在项目所在的目录中(4)把文件加入工程中(5)编译工程。

编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。

(6)调试。

利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。

(7)目标代码文件的生成。

运行生成相应的.HEX文件。

5.实验内容及程序1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。

注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。

P83-5源程序#include <reg51.h>#define uchar unsigned charxdata unsigned char buffer1[10]_at_ 0x2000;//在xdata区定义数组变量BUF1,首地址为2000Hdata unsigned char buffer2[10]_at_ 0x40;//在data区定义数组变量BUF2,首地址为40Hvoid main(void)uchar i;for(i=0;i<10;i++)buffer1[i]='A';for(i=0;i<10;i++)buffer2[i]=buffer1[i];//把data区中的内容传送给xdata区while(1);}6.实验现象P83-5运行效果图2)将DATA区地址为20H的单元赋初值为05H,地址为21的单元赋初值为06H,将这两个单元的数据拼成56H,存入XDA TA区地址为2000H的单元。

程序(程序中请对应写出关键注释语句)P275源程序#include<reg51.h>#include<absacc.h>#define a XBYTE[0x2001]#define b XBYTE[0x2002]main(void){a=0x05;b=0x06;a=a<<4;b=a|b;}P275运行效果图实验室号:___ 实验时间:成绩:实验二单片机I/O接口应用—流水灯1.实验目的和要求1)进一步掌握单片机仿真软件的使用方法。

2)掌握单片机最小系统的构成。

3)掌握单片机I/O口的使用方法,如何控制I/O口检测按键及驱动LED发光二极管。

4)熟悉C51程序编程和调试方法。

2.电路原理图(附proteus电路原理图)3.主要仪器设备(实验用的软硬件环境)安装有Keil C51软件与Proteus仿真软件PC机1台单片机试验箱一套4.实验说明及实验步骤●P1口为准双向口,P1的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。

●延时程序的实现。

现常用的有两种方法,一是用定时器中断来实现,一是用指令循环实现。

在系统时间允许的情况下可以采用后一种方法。

本实验中延时子程序采用指令循环来实现。

1)源程序设计分析设计要求,根据任务要求,绘制源程序流程图,然后使用Keil C进行源程序文件的设计与调试,观察并分析程序调试结果。

2)硬件运行加载目标代码至单片机中,运行,观察运行结果5.实验内容及程序1)在P1口实现流水灯。

#include <reg51.h>#include <intrins.h> //包含移位函数的头文件#define uchar unsigned char#define uint unsigned intvoid delay(uint i) //延时函数{ uchar t;while (i--){ for(t=0; t<120; t++);}}void main( ) //主程序{ P1=~0xfe; //高电平点亮第一个灯while (1){delay( 500 ); //500为延时参数P1=_crol_(P1,1) ; //P1中的数据循环左移1位,实现流水灯}}2)任选某P端口接开关,控制流水灯的启动和停止。

接线:P10-P17接D0-D7;P2.x接K0#include <reg51.h>#include <intrins.h> //包含移位函数的头文件#define uchar unsigned char#define uint unsigned intvoid delay(uint i) //延时函数{ uchar t;while (i--){ for(t=0; t<120; t++);}}sbit KEY=P2^0; //定义P2^0口作为开关void main( ) //主程序{ P1=~0xfe; //高电平点亮第一个灯while (1){if(KEY==0) //开关接地,低电平启动流水灯{delay( 500 ); //延时P1=_crol_(P1,1); //P1中的数据循环左移1位,实现流水}}}*3)设计花样流水灯:自行设计两种花样流水灯,利用开关实现两种流水灯的切换,例如K0控制第一种流水灯的启动和停止;K1控制第二种流水灯的启动和停止,两种流水灯可以通过两个开关实现切换。

程序(程序中请对应写出关键注释语句)#include<reg51.h>#define uchar unsigned char //定义无符号字符型变量sbit S0=P0^0; //将S0定义为P0.0unsigned char state;void flow(void); //申明函数flowvoid key_scan(void); //申明函数key_scanvoid delay( ) //延时函数{uchar i,j;for(i=0;i<125;i++)for(j=0;j<125;j++);}void delay1ms(void) //延时消抖函数{uchar i,j;for(i=0;i<10;i++)for(j=0;j<10;j++);}void main( ){state=0;while(1){key_scan();switch(state){case 0:P1=0xff;break;case 1:flow( );break;}}}void key_scan(void) //开关检测函数{P0=0xff;if((P0&0x0f)!=0x0f) //检测到有按键按下{delay1ms( ); //延时1ms再去检测if(S0==0)state=0;elsestate=1;}}void flow(void) //流水灯点亮函数{P1=0xfe;delay( );P1=0xfd;delay( );P1=0xfb;delay( );P1=0xf7;delay( );P1=0xef;delay( );P1=0xdf;delay( );P1=0xbf;delay( );P1=0x7f;delay( );}6.实验讨论及分析如果将P1口高4位定义为输入,低4位定义为输出,将高4位输入的值在低4位显示出来,请写出对应程序。

实验室号:___ 实验时间:成绩:实验三外部中断实验——工业顺序控制模拟1.实验目的和要求1)掌握单片机系统中断原理和使用方法。

2)掌握中断处理程序的编写方法2.电路原理图(附proteus电路原理图)3.主要仪器设备(实验用的软硬件环境)安装有Keil C51软件与Proteus仿真软件PC机1台单片机试验箱一套4.实验说明及实验步骤在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律的完成预定的动作,对这类继续生产过程的控制称顺序控制,象注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。

1)源程序设计分析设计要求,根据任务要求,绘制源程序流程图,然后使用Keil C进行源程序文件的设计与调试,观察并分析程序调试结果。

2)硬件运行加载目标代码至单片机中,运行,观察运行结果5.实验内容及实验程序P1口控制注塑机的八道工序,现模拟控制八只发光二极管的点亮,即正常情况下P1口走亮流水(低电平点亮LED)。

P2.4为开工启动开关,高电平启动。

未启动及开关停止时LED全灭。

INT0为外部故障1输入模拟开关,产生故障1使P1.0~P1.3口接的LED闪烁8次;INT1为外部故障2输入模拟开关,产生故障2使P1.4~P1.7口接的LED闪烁8次;接线:P10-P17接D0-D7;,INT0接KK1-(单次脉冲);INT1接KK2-(单次脉冲) 附程序(程序中请对应写出关键注释语句)#include<reg51.h>#define uchar unsigned char //定义无符号字符变量#define uint unsigned int //定义无符号整型变量sbit K0=P2^4; //将K0定义为P2.4void delay(uint t); //申明延时函数delay()void delay(uint t) //延时函数{uchar j;for(;t>0;t--)for(j=0;j<125;j++);}void main(void){uchar display[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//流水灯显示数组int a;while(1){if(K0==1) //当开关为1{IE=0x85;IT0=1; //选择外部中断0为跳沿触发方式IT1=1; //选择外部中断1为跳沿触发方式PX0=0; //外部中断0为低优先级PX1=1; //外部中断1为高优先级for(a=0;a<9;a++){delay(500); //延时P1=display[a]; //将已经定义的流水灯显示数据送入P1口}}elseif(K0==0) //当开关为0{IE=0x00;P1=0x00; //P1口全亮delay(500); //延时}}}void int0_isr(void) interrupt 0 //外部中断0的服务函数{uchar n;for(n=0;n<8;n++){P1=0x0ff; //全灭delay(500); //延时P1=0xf0; //高4位LED灭,低4位LED亮delay(500); //延时}}void int1_isr(void) interrupt 2 //外部中断1的服务函数{uchar m;for(m=0;m<8;m++){P1=0x0ff; //全灭delay(500); //延时P1=0x0f; //低4位LED灭,高4位LED亮delay(500); //延时}}开关未启动LED全灭启动开关正常走流水中断T0使P1.0~P1.3口接的LED闪烁8次使P1.4~P1.7口接的LED闪烁8次中断结束回到主程序又开始正常走流水运行效果图6.实验讨论及分析1)INT0和INT1的中断优先级如何?在什么样的情况下会出现中断嵌套?如果要使INT1的中断优先级为高,该如何修改程序?答:INT0和INT1的中断优先级如何是采用的都是低优先级。

相关文档
最新文档