西南科技大学单片机原理实实验四及代码

合集下载

单片机代码例子

单片机代码例子

单片机代码例子
单片机是一种集成电路,具有微处理器、存储器和各种输入输出接口,可用于控制各种电子设备。

下面是一些单片机代码例子:
1. LED闪烁:通过控制IO口的高低电平,使LED灯交替闪烁,实现简单的呼吸灯效果。

2. 温度测量:利用温度传感器采集环境温度,并将温度值转换为数字信号,通过串口输出或显示在LCD屏幕上。

3. 红外遥控:通过接收红外信号,并解码得到对应的遥控指令,实现对电视、空调等家电的遥控操作。

4. 超声波测距:利用超声波传感器发射超声波,并接收反射回来的信号,通过计算时间差来测量到障碍物的距离。

5. 矩阵键盘输入:通过矩阵键盘将按键输入转换为数字或字符信息,并进行相应的处理和反馈。

6. 电机控制:通过PWM技术控制直流电机的转速和方向,实现电机的正转、反转和变速等操作。

7. 温湿度监测:利用温湿度传感器采集环境的温度和湿度值,并将数据通过无线通信模块传输到上位机进行实时监测。

8. 蜂鸣器控制:通过控制IO口输出高低电平,实现蜂鸣器的开关
和不同音调的发声。

9. 光线感应:利用光敏电阻或光电二极管检测环境光线强度,并根据光线强度的变化做出相应的控制。

10. 电子钟:通过RTC模块获取当前的时间,并在LCD屏幕上显示或通过蜂鸣器报时。

以上是一些常见的单片机代码例子,涵盖了单片机在各个领域的应用。

通过编写这些代码,可以深入理解单片机的工作原理和应用技巧,为后续的项目开发打下基础。

当然,这只是冰山一角,单片机的应用领域非常广泛,还有许多其他有趣的项目等待我们去探索。

单片机常用代码大全

单片机常用代码大全

1、位码(共阴):0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f2、断码(共阳):0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x713、独立管码(共阳):0x02,0x9e,0x24,0x0c,0x98,0x48,0x40,0x1e,0x00,0x08,0x10,0xc0,0x62,0x84,0x60,0x704、循环函数intrins_crol_字符循环左移_cror_字符循环右移_irol_整数循环左移_iror_整数循环右移_lror_长整数循环左移_lror_长整数循环右移_nop_空操作8051 NOP 指令_testbit_测试并清零位8051 JBC 指令5、中段代码interrupt 0 外部中断0interrupt 1 定时器0中断interrupt 2 外部中断1interrupt 3 定时器1中断interrupt 4 串口中断interrupt 5 定时器2中断(52里面,51没有)6、IIC总线开始信号:void IICstart(){scl=1;delay();sda=1;delay();sda=0;delay();scl=0;}结束信号void IICstop(){scl=1;delay();sda=0;delay();sda=1;}应答信号void IICyingda(){uchar j;scl=1;delay();while((sda==1)&&j<250)j++;//sda=0;//delay();scl=0;delay();}写信号(写入一8位数据)void write_byte(uchar w){uchar i,temp;temp=w;for(i=0;i<8;i++){scl=0;delay();temp=temp<<1;sda=CY;delay();scl=1;delay();}scl=0;delay();sda=0;delay();}读信号(读出一个8位数据)uchar read_byte(void){uchar i,j,k;sda=1;for(i=0;i<8;i++){scl=1;delay();j=sda;k=(k<<1)|j;scl=0;delay();}scl=0;delay();return k;}7、时钟调试键盘扫描void keyscan(){if(k1==0){delay(5);if(k1==0){while(!k1); //k1num++;}if(k1num==1){TR0=0;write_zhiling(0x80+0x40+11);write_zhiling(0x0f);}if(k1num==2){TR0=0;write_zhiling(0x80+0x40+8);}if(k1num==3){TR0=0;write_zhiling(0x80+0x40+5);}if(k1num==4){k1num=0;write_zhiling(0x0c);TR0=1;//}}if(k1num!=0){if(k2==0){delay(5);if(k2==0){while(!k2);if(k1num==1){miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;write_jingwei(7,fen);}write_jingwei(10,miao);write_jingwei(7,fen);write_zhiling(0x80+0x40+11);}write_jingwei(10,miao);write_zhiling(0x80+0x40+11);}if(k1num==2){fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;write_jingwei(4,shi);}write_jingwei(7,fen);write_jingwei(4,shi);write_zhiling(0x80+0x40+8);}write_jingwei(7,fen);write_zhiling(0x80+0x40+8);}if(k1num==3){shi++;if(shi==24){shi=0;write_jingwei(4,shi);write_zhiling(0x80+0x40+5);}write_jingwei(4,shi);write_zhiling(0x80+0x40+5);}}}}if(k1num!=0){if(k3==0){delay(5);if(k3==0){while(!k3);if(k1num==1){miao--;if(miao==-1){miao=59;fen--;if(fen==-1){fen=59;write_jingwei(7,fen);}write_jingwei(10,miao);write_jingwei(7,fen);write_zhiling(0x80+0x40+11);}write_jingwei(10,miao);write_zhiling(0x80+0x40+11); }if(k1num==2){fen--;if(fen==-1){fen=59;shi--;if(shi==-1){shi=23;write_jingwei(4,shi);}write_jingwei(7,fen);write_jingwei(4,shi);write_zhiling(0x80+0x40+8);}write_jingwei(7,fen);write_zhiling(0x80+0x40+8); }if(k1num==3){shi--;if(shi==-1){shi=23;write_jingwei(4,shi);write_zhiling(0x80+0x40+5);}write_jingwei(4,shi);write_zhiling(0x80+0x40+5);}}}}}。

单片机实验报告

单片机实验报告

西南科技大学
学生实验报告
实验课程名称单片机原理及接口技术
开课实验室CAD/CAM计算机实验室
学院制造学院专业成型班级
学生姓名学号
开课时间2012 至2013 学年第 2 学期
制造科学与工程学院制
《 I/O接口技术实验》实验报告
修改工程属性,点击快捷按钮
8.编写完成后,进行编译程序。

选择对应的单片机型号(STC89C52RC)、打开(HEX)程序文件、对应的串行口编号,再选择下载程序,打开单片机上的开关以传输下载文件
11.观察单片机上的现象,并检查是否正确
《中断系统》实验报告。

西南科技大学单片机实验考试程序题库

西南科技大学单片机实验考试程序题库

(在两个中)识别最大模拟输入通道一、任务利用0809采集两路模拟电压,将电压值最大的通道号显示在LED显示器上。

(硬件电路参见AD_CH2_1.DSN)。

二、设计参考:①算法:依次采集两路模拟电压,并将其保存。

当所有通道都采集完后,比较通道的采样值,将采样值最大的通道号显示(当采样值一样时,显示其中最小通道编号)。

注:通道IN0~IN7的编号分别为0~7。

②LED显示的段码:字符编码0 0C0H1 0F9H2 0A4H3 0B0H4 99H5 92H6 82H7 0F8H8 80H9 90H③地址分配:0809片选地址3C00H通道地址片选地址+通道编号3X3键盘扫描三、任务利用8155的PB、PC口实现3X3键盘扫描(硬件电路参见3X3KEY_8155.DSN)。

当1~8号键独立按下时,连接在PA口对应的LEDx点亮(即1号键按下时LDE1亮,2号键按下时LDE2亮),当9号键按下时,所有LED点亮,当没有键按下时,所有LED熄灭。

四、设计参考:①8155命令/状态寄存器格式:D7 TM2D6TM1D5IEBD4IEAD3PC2D2PC1D1PBD0PAPA 0=A口输入;1=A口输出PB 0=B口输入;1=B口输出PC2PC1 00=A口、B口基本输入输出,C口输入01=A口、B口基本输入输出,C口输出10=略11=略IEA 略IEB 略TM2TM1 略②8155端口地址分配:控制口7F00HPA 7F01HPB 7F02HPC 7F03H3X3键盘扫描五、任务利用8255的PC口实现3X3键盘扫描(硬件电路参见3X3KEY_8255.DSN)。

当1~8号键独立按下时,连接在PA口对应的LEDx点亮(即1号键按下时LDE1亮,2号键按下时LDE2亮),当9号键按下时,所有LED点亮,当没有键按下时,所有LED 熄灭。

六、设计参考:①8255控制字格式:②8255端口地址分配:PA 0000HPB 0400HPC 0800H控制口0C00H 控制字标志1有效D7D6D5D4D3 D2D1 D0C口低4位0 输出,1输入工作方式0 方式0,1方式1B口0 输出,1输入C口高4位0 输出,1输入工作方式00 方式0,01方式11x方式1A口0 输出,1输入50赫兹同步锯齿波发生器七、任务利用0832同步输出两个频率为50赫兹的锯齿波(硬件电路参见DA_BUF2_1.DSN)。

单片机原理实验教案参考程序doc资料

单片机原理实验教案参考程序doc资料

广东松山职业技术学院《MCS-51单片机原理》实验指导书宁玉珊黄晓林使用Proteus辅助设计与仿真实训项目1 Proteus辅助设计与仿真的使用一、实训目的学习并熟练掌握PROTEUS辅助设计与仿真软件的使用。

通过使用Proteus的ISIS组件绘制A T89C51功能接口原理图,并对原理图编写程序和调试程序,观察在仿真条件下的实现功能的效果。

二、实训内容在PROTEUS仿真环境下实现一个发光二极管(LED)闪烁。

要求LED亮0.5s灭1s,并绘制原理图和编写实现程序,同时用虚拟的示波器观察硬件和软件实现的效果。

三、实训器材安装有Proteus7软件的计算机 1 台。

四、实训步骤1)在硬盘建立文件夹用来保存新建项目的所有文件。

如在D盘建立PROJECT文件夹。

2)选择‘开始→程序→Proteus7 professional→ISIS professional(或者双击桌面图标ISIS)’,进入Proteus仿真环境,如图P1_1和P1_2所示。

图P1-1图P1-23)选择菜单【File/New Design】创建一个新的设计项目,如图P1_3所示。

图P1-34)此时系统会弹出模板选择窗口,选择‘DEFAULT’点击【OK】即可,如图P1_4所示。

图P1_45)点击界面左侧工具栏中的图标,接着点击元件池上方的按钮,将要用到的元器件从系统库调到当前设计文件库中。

在弹出的Pick Devices对话框左上角的‘Keywords’文本框中键盘输入元件名(或元件的其它关键词)搜索到需要的元器件。

双击‘Results’栏下的目标元件,该元件即调出到当前设计文件库的元件列表中,如图P1_5所示。

本实训中所要用到的元件如表PS1_1所示。

图P1_5元件名称搜索关键词元件序号数值备注电阻器ResistorR1 10k电阻器Resistor R2 1k电解电容器MINELECT1U63V C1 4.7μ陶瓷电容器CERAMIC22P C2、C3 22p晶振CRYSTAL X1 12MHz单片机AT89C51 U1发光二极管LED-YELLOW D1表PS1_1元件列表6)点击界面左侧工具栏中的图标,选择元件列表中的元件,在原理图编辑框中放置元件、布局及连线,构成原理图主体,如图P1_6所示。

单片机开发与实训演示代码

单片机开发与实训演示代码

单片机开发与实训演示代码全文共四篇示例,供读者参考第一篇示例:在单片机开发和实训演示代码中,我们通常会使用一些常见的单片机开发平台,比如基于STMicroelectronics公司的STM32系列单片机的开发板。

STM32系列单片机是一种性能优越的单片机,拥有丰富的外设和强大的性能,非常适合用于各种复杂的应用场景。

在进行单片机开发和实训演示代码时,我们通常会使用一些常见的开发工具,比如Keil C51开发环境、ST-Link调试器等。

这些工具可以帮助开发者更加高效地进行单片机程序的编写和调试,提高开发效率和代码质量。

接下来,我们将介绍一些常见的单片机开发与实训演示代码例程,希望可以帮助读者更好地理解和掌握单片机开发技术。

1. LED闪烁实验LED闪烁实验是单片机开发中的一个最基础的实验,通过控制单片机的IO口来驱动LED灯实现闪烁的效果。

以下是一个基于STM32单片机的LED闪烁实验代码:```c#include "stm32f10x.h"#define LED_PIN GPIO_Pin_5#define LED_GPIO GPIOAvoid LED_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = LED_PIN;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(LED_GPIO, &GPIO_InitStructure);}在这个代码中,我们首先调用了LED_Init函数来初始化LED的GPIO口,使其为输出模式。

西南科技大学单片机原理实实验一及代码

西南科技大学单片机原理实实验一及代码

第2章基础实验2.1 实验一系统认识实验一、实验目的学习实验系统的基本操作,了解在实验系统中进行程序设计、仿真和调试的操作方法和步骤。

二、实验设备Keil单片机程序开发软件。

Proteus仿真软件DP51-PROC单片机综合实验仪。

DT-2003数字万用表。

三、实验内容和步骤内容:简单单片机应用程序的编辑、编译、仿真和调试。

实验程序:功能:使连接在MCS-51单片机P1.0引脚的LED闪烁。

设计思路:①点亮LED需要约10 mA电流,此时LED两端电压差约2 V。

因此,将LED 的阴极通过一个电阻连接到P1.0引脚(电阻阻值约为200 ),阳极连接到电源VCC(5 V)。

②为便于观察,交替的时间间隔不应太小(建议选择在0.5 s左右),由于该时间不要求严格精确,所以,可采用软件延时的方法实现。

③程序可采用图2.1中的流程结构。

图2.1 实验一程序流程图预习:1)提前一周预约好实验时间。

2)自学Keil和Proteus两软件的基本使用方法。

3)按设计思路,用汇编语言或C51语言编制实验程序。

4)了解本次实验的步骤和操作方法。

图2.2 实验一电路图步骤:1)在S: \ STUDY \ Kiel文件夹中新建Ex01文件夹(该文件夹用于保存本次实验的所有内容),通过网上邻居将服务器上本次实验共享文件夹下的所有文件拷贝到S: \ STUDY \ Kiel \ Ex01文件夹中。

2)运行Keil并创建一个新工程。

工程保存为S: \ STUDY \ Kiel \ Ex01 \ Ex01. Uv2。

选择单片机型号为Generic中的8051。

创建新工程的操作方法:菜单Project New Project…3)设置工程选项,将工程选项设置如下:Target页夹:Xtal= 12 MHzOutput页夹:Create HEX FileBL51 Locate页夹:取消Use Memory Layout from Target Dialog设置Code Range属性为0x40-0xFFF如用C51编程,设置此页夹。

单片机实验代码

单片机实验代码

单片机实验代码文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]单片机实验代码实验一ORG 0000hAJMP HA1SORG 0030HHA1S: MOV A,#00HHA1S1: JB P3.3,HA1S1MOV R2,#20HLCALL DELAYJB P3.3,HA1S1HA1S2: JNB P3.3,HA1S2MOV R2,#20HLCALL DELAYJNB P3.3,HA1S2INC APUSH ACCMOV P1,APOP ACCAJMP HA1S1DELAY: PUSH 02HDELAY1: PUSH 02HDELAY2: PUSH 02HDELAY3: DJNZ R2,DELAY3POP 02HDJNZ R2,DELAY2POP 02HDJNZ R2,DELAY1POP 02HDJNZ R2,DELAYRETEND实验二ORG 0000HAJMP 0030HORG 0013HLJMP HA2S3ORG 0030HHA2S: MOV P1,#0fFH ORL P3,#00HHA2S1: JB P3.4,HA2S1 ORL IE,#84HORL IP,#04HMOV PSW,#00HMOV SP,#53HHA2S2: MOV P1,#081H ACALL HA2S7MOV P1,#082HACALL HA2S7MOV P1,#084HACALL HA2S7MOV P1,#088HACALL HA2S7MOV P1,#090HACALL HA2S7MOV P1,#0A0HACALL HA2S7MOV P1,#0C0HACALL HA2S7SJMP HA2S2HA2S3: MOV B,R2HA2S5: SETB P1.7ACALL HA2S6CLR P1.7ACALL HA2S6JNB P3.3,HA2S5MOV R2,BRETIHA2S6: MOV R2,#06H ACALL DELAYRETHA2S7: MOV R2,#30HACALL DELAYRETDELAY: PUSH 02H DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02HDJNZ R2,DELAY2POP 02HDJNZ R2,DELAY1POP 02HDJNZ R2,DELAYRETEND实验10org 0000hSjmp MAINorg 000bhmov th0,r1mov tl0,r0cpl p1.0RETIMAIN:MOV TMOD,#01H MOV IE,#82HMOV DPTR,#TABLOOP: CLR AMOVC A,@A+DPTRMOV R1,AINC DPTRCLR AMOVC A,@A+DPTRMOV R0,AORL A,R1JZ NEXT0MOV A,R0ANL A,R1CJNE A,#0FFH,NEXTSJMP MAINNEXT : MOV TH0,R1MOV TL0,R0SETB TR0SJMP NEXT1NEXT0:CLR TR0NEXT1: CLR AINC DPTRMOVC A,@A+DPTRMOV R2,ALOOP1: ACALL D200CDJNZ R2,LOOP1INC DPTRAJMP LOOPD200C:MOV R3,#81HD200B:MOV A,#0FFHD200A:DEC AJNZ D200ADEC R3CJNE R3,#00H,D200BRETTAB: DB 0FEH,25H,04H,0FEH,25H,02H ;11 1 5 DB 0FEH,25H,02H,0FDH,80H,04HDB 0FEH,84H,02H,0FEH,84H,02H;33 3 1DB 0FEH,84H,04H,0FEH,25H,04HDB 0FEH,25H,02H,0FEH,84H,02H;13 5 5DB 0FEH,0C0H,04H,0FEH,84H,02HDB 0FEH,98H,02H,0FEH,84H,02H;43 2 -DB 0FEH,57H,08H,00H,00H,04HDB 0FFH,0FFHEND;1=131 262 523 1047;2=147 294 587 1175;3=165 330 659 1319;4=175 349 698 1397;5=196 392 784 1568;6=220 440 880 1760;7=247 494 988 1976实验十一ORG 0000HAJMP STARTORG 0030HSTART: SETB P1.0 LCALL DELAYCLR P1.0LCALL DELAYSJMP STARTDELAY: MOV R7,#0FFH DELAY1: MOV R6,#0FFH DELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1RETEND实验六ORG 0000HAJMP HA6SORG 0030HHA6S: MOV SP,#53HHA6S1: MOV R6,#00HHA6S2: MOV DPTR,#8000H MOV A,R6MOVX @DPTR,AMOV R2,#30HLCALL DELAY;INC R6;CJNE R6,#0FFH,HA6S2 HA6S3: MOV R6,#0FFH MOV DPTR,#8000H; DEC R6MOV A,R6MOVX @DPTR,AMOV R2,#30HLCALL DELAY;CJNE R6,#00H,HA6S3 SJMP HA6S1DELAY: PUSH 02HDELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02HDJNZ R2,DELAY2POP 02HDJNZ R2,DELAY1POP 02HDJNZ R2,DELAYRETEND实验29TIMER EQU 01Horg 0000hajmp STARTORG 000BHAJMP INT_T0ORG 070HSTART: MOV SP,#53H MOV TMOD,#01HMOV TL0,#00HMOV TH0,#4BHMOV R0,#0HMOV TIMER,#20MOV SCON,#00HCLR TICLR RISETB TR0SETB ET0SETB EASJMP $INT_T0: PUSH ACCPUSH PSWCLR EACLR TR0MOV TL0,#0HMOV TH0,#4BHSETB TR0DJNZ TIMER,EXITMOV TIMER,#20MOV DPTR,#CDATAMOV A,R0MOVC A,@A+DPTRCLR TICPL AMOV SBUF,AINC R0CJNE R0,#0AH,EXITMOV R0,#0HEXIT: SETB EAPOP PSWPOP ACCRETICDATA: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H END相关文档:更多相关文档请访问:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
①检查实验仪与计算机之间的通信线连接,然后打开实验仪电源。
②测试实验仪中涉及本次实验的电路是否完好。
I.利用C2区的逻辑笔测试D1区的SW1和SW3信号完好。
操作方法:
分别将SW1或SW3连接到C2区的TEST,上下拨动开关,通过观察逻辑笔的指示灯是否正常变化来判别被测信号的完好。(发现有问题,应马上关闭实验仪电源,然后告知老师解决)
BL51 Locate页夹:取消Use Memory Layout from Target Dialog
设置Code Range属性为0x40-0xFFF
如用C51编程,才需设置此页夹。
4)创建新文件并输入编写的实验程序,然后保存在与工程相同的文件夹中(文件名为Ex04.ASM或Ex04. C),最后将其加入到工程中并通过编译。
设计参考:
①主程序需要设置的中断控制位如下:
IT0和IT1外部中断触发方式控制0=电平1=边沿(下降沿)
EX0和EX1外部中断允许控制0=屏蔽1=允许
PX0和PX1中断优先级级别控制0=低级1=高级
在同级别(PX0=PX1)时INT0的优先级高于INT1
EA中断允许总控制0=屏蔽1=允许
②外部中断服务程序的入口地址:
③关闭实验仪电源,按图2.8连接电路(图2.7的电路连线仍然保留)后重新打开实验仪电源。
④运行实验程序,观察真实的步进电机转动与开关拨动的关系(操作方法参见实验1中步骤7)。
8)[选作]观察在真实环境中,由普通按钮开关直接产生中断现象的不同。
操作方法:
①关闭实验仪电源,将图2.8中的SW1和SW2分别替换成KEY1和KEY3重新连线,再次打开实验仪电源,用逻辑笔测试KEY1、KEY3信号的完好。
5)按预习制定的调试方案利用Keil自身的软件仿真功能调试程序,确认实验程序能够运行(操作方法参见实验1中步骤5,此步骤建议在预习时完成)。
6)利用Proteus调试程序,确认实验程序能够实现功能(操作方法参见实验1中步骤6,此步骤建议在预习时完成)。
7)利用实验仪运行程序,观察真实环境的工作现象。
II. 利用测试程序检测单片机的外部中断和步进电机及其驱动实验电路完好。
操作方法:
i.关闭实验仪电源,按图2.7连接电路后重新打开实验仪电源。
ii.双击S:\ STUDY \ Keil \ Ex04 \ Test4 \ Test4_0.Uv2文件。
iii.在新窗口中进入调试,然后连续运行程序。
iv.在实验仪上观察连接到P1端口的8个LED是否循环向左或向右依次熄灭,同时观察步进电机的转动情况。如果发现某个LED常亮或常灭,则意味着P1端口的对应位损坏;如果发现LED不能向右依次熄灭,说明INT1损坏,反之,INT0损坏,此时应向教师示意。
②运行实验程序,分别按动KEY1和KEY3,观察此时步进电机的转动现象(特别是LED的工作情况变化与单脉冲中断时的不同)。
四、实验报告要求
1、工整书写实验程序并画出其流程图。
2、叙述步骤6、7中观察到的现象,分析原因。
3、[选作]叙述步骤8中观察到的现象,分析原因。
五、参考实验程序架构(汇编:;资源定义**************************************
使用INT0的中断服务程序控制步进电机正向步进;使用INT1中断服务程序控制步进电机反向步进。
设计思路:
①主程序在完成对INT0和INT1的设置后,可进入死循环(等待中断请求)。
②为便于实验观察和操作,设INT0和INT1中断触发方式为边沿。
③步进电机的转动控制由外部中断的服务程序来实现。
④当前步进电机的相位通电状态信息可以使用片内RAM中的一个字节单元来存储。
0003H外部中断0
0013H外部中断1
预习:
1)编写好实验程序。
2)根据编写的程序和实验步骤的要求制定调试仿真的操作方案。
实验单元电路:
1)步进电机驱动电路。
步进电机共有4相,当以A→B→C→D→A→B…的顺序依次通电时,电机就会正转,若按相反的顺序依次通电,电机就会反转。每顺序切换一相(1步),电机旋转18°,切换的频率决定电机的转速(切换的频率不能超过电机的最大响应频率)。根据图2.4中的电路,当BA(插孔)输入为高时,对应的A相通电。
;位变量********************************
;字节变量******************************
2.1
一、实验目的
加深对MCS-51单片机中断系统基础知识的理解。
二、实验设备
Keil C单片机程序开发软件。
Proteus仿真软件
DP51-PROC单片机综合实验仪。
三、实验内容和步骤
内容:
利用外部中断输入引脚(以中断方式)控制步进电机的转动。要求:每产生1次中断,步进电机只能步进1步。
实验程序:
v.测试完成后退出调试,然后关闭这个用于测试的Keil窗口。
vi.连接线路保留(在后面将会使用)。
注意:
I.在本次实验中如果发现P1.0 ~ 3有损坏,可用P1其它完好的位替代完成实验(实验程序及其他相关操作都应做出调整)。
II.检测中如果步进电机不转动,说明电机或其驱动电路损坏,实验时仍然可通过观察与P1端口连接的LED的工作情况来推断步进电机的转动情况。
2)SW电路
开关SWX拨在下方时,输出端SWX输出低电平,开关SWX拨在上方时,输出端SWX输出高电平。其中SW1和SW3具备消除抖动电路,这样,SW1或SW3每上下拨动一次,输出端产生单一的正脉冲(上升沿在前,下降沿在后)。
3) LED和KEY电路
步骤:
1)在S:\ STUDY \ Keil文件夹中新建Ex04文件夹(该文件夹用于保存本次实验的所有内容),通过网上邻居将服务器上本次实验共享文件夹下的所有文件拷贝到S:\ STUDY \ Keil \ Ex04文件夹中。
2)在Keil C中创建一个新工程,新工程保存为S:\ STUDY \ Keil \ Ex04\Ex04.uv2,然后选择单片机型号为Generic中的8051。
3)设置工程选项,将工程选项设置如下:
Target页夹:Xtal= 12 MHz
Output页夹:Create HEX页夹:根据步骤的需要正确设定(参见实验1中步骤5、6、7)
相关文档
最新文档