单片机开发板使用说明书_第1页
单片机开发板使用说明书_第2页
单片机开发板使用说明书_第3页
单片机开发板使用说明书_第4页
单片机开发板使用说明书_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、使用说明书目 录实验一 流水灯实验1实验二 键盘处理程序的设计3实验三 数码管显示程序设计5实验四 脉冲计数实验8实验五 单片机串口通信程序设计10实验六 模拟交通灯实验13实验七 A/D转换实验17实验八 D/A转换实验20实验九 矩阵式键盘接口技术实验23实验十 开关量输出接口实验29实验十一 步进电机控制实验31实验十二 单片机与PC机的通信实验34实验十三 8255A并行I/O端口扩充键盘实验37实验十四 字符型液晶显示实验(SMC1602A)39实验十五 温度传感器DS18B20实验47实验十六 LCD12864液晶显示实验(KS0108)53实验十七 继电器控制实验62实验十八 单

2、片机播放音乐实验64实验一 流水灯实验一、 实验目的与要求1 认识AT89系列单片机的硬件电路;2 学习延时子程序的编写和使用;3 学习循环左移或右移指令的使用;4 学习单片机程序烧录的基本过程和操作;5 了解单片机的开发过程;二、 实验设备计算机编程器目标板单片机AT89S51三、 实验原理电路由于P1口内部已有上拉电阻,在使用时不需要外接上拉电阻。如果用P1口控制发光二极管的阴极,则可以不需要驱动电路,直接由限流电阻控制发光二极管的亮度。实验电路如下:四、 实验内容与步骤1 编写程序,使LED1LED8顺序点亮;2 编写源程序并下装到AT89S51单片机,观察发光二极管的点亮效果;3 改变

3、延时时间常数,重复上述步骤。五、 实验报告要求1 计算上图中单片机的振荡周期及机器周期;2 列出程序清单;参考程序:#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid delayms(uint xms)uint i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);void main()uchar a1,a2;a1=0x0fe;a2=1;while(1)P1=a1;delayms(1000);a1=a1<<1;a1+;a2+;if(a2=9

4、)a2=1;a1=0xfe;实验二 键盘处理程序的设计一、 实验目的与要求1. 了解矩阵式键盘的结构及驱动程序的编写方法;2. 学习应用查询法和中断法实现键盘的处理;二、 实验设备计算机编程器目标板单片机AT89S51三、 实验原理电路实验电路如下图所示。目标板上仅有两个按键S1和S2,分别接到P3.6和P3.7引脚。在处理按键时,采用查询方式判断是否有键按下,并进行按键消抖处理。(若将S1、S2接在外部中断0和外部中断1引脚上,则可以采用中断方式)四、 实验内容与步骤1. 按下S1键时,按LED1LED8的顺序逐一点亮发光二极管;2. 按下S2键时,按LED8LED1的顺序逐一点亮发光二极管

5、;五、 实验报告要求1. 画出程序流程图;2. 列出程序清单;参考程序: #include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit s1=P36;sbit s2=P37;void delayms(uint xms) uint i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);void main()uchar a1,a2,a3,a4;a1=0x0fe;a2=a4=1;a3=0x7f;while(1)if(s1=0)delayms(10);if(s1=0)P

6、1=a1;delayms(1000);a1=a1<<1;a1+;a2+;if(a2=9)a2=1;a1=0xfe; if(s2=0)delayms(10);if(s2=0)P1=a3;delayms(1000);a3=a3>>1;a3=a3+128;a4+;if(a4=9)a4=1;a3=0x7f; 实验三 数码管显示程序设计一、 实验目的与要求1. 认识单片机的数字显示电路结构原理及工作过程;2. 了解静态、动态显示的驱动方法;3. 学习静态、动态显示数字程序的编写及调用方法;二、 实验设备计算机编程器目标板单片机AT89S51三、 实验原理电路实验电路如下图所示。图

7、中,P0.0P0.7分别送出LED的adp显示段码,即字形码;P2口的P2.7P2.2则输出字位码,用来控制在第几位显示。LED为共阳极。四、 实验内容与步骤1. 编写一位数码显示程序(静态);2. 编写多位数码管动态扫描显示;3. 调整显示参数和模式,改变显示效果。五、 实验报告要求1. 列出程序清单。2. 简单说明静态显示与动态显示的特点。静态显示参考程序:/注意点,7段LED显示下下面的J16方向反接(从右向左)#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid delayms(u

8、int xms)uint i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,/数码管显示编码(1-F) 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;void main()uint a1;a1=0;P2=0x0f0;while(1) P0=tablea1; delayms(500); a1=a1+1; if(a1=16) a1=0;动态显示参考程序:/注意点,7段LED显示下下面的J16方向反接(从右向左)/

9、位选的四位也是反方向的#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid delayms(uint xms)uint i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,/数码管显示编码(1-F) 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;void display(uchar a,uchar b,uc

10、har c,uchar d)P0=tablea;P2=0xfe;delayms(5);P0=tableb;P2=0xfd;delayms(5);P0=tablec;P2=0xfb;delayms(5);P0=tabled;P2=0xf7;delayms(5);void main()uchar a,b,c,d;a=0;b=1;c=2;d=3;while(1)uint i;for(i=100;i>0;i-)display(a,b,c,d);a+;b+;c+;d+;if(a=16)a=0;if(b=16)b=0;if(c=16)c=0;if(d=16)d=0;实验四 脉冲计数实验一、 实验目的

11、与要求1. 熟悉51单片机定时/计数功能;2. 掌握定时/计数器初始化编程方法。二、 实验设备计算机编程器目标板单片机AT89S51三、 实验原理电路实验电路如下图所示。四、 实验内容与步骤1. 计算定时/计数器定时1s的计数初值;2. 编程实现定时功能:定时1s改变一次led的状态,顺序点亮led1led8;3. 编程实现计数功能:计数器初值为0,并显示在其中一位显示器上,当led1led8循环点亮1遍后,计数器加1,并显示,依次计数到9后,清零,进行下次计数。五、 实验报告要求1. 写出计算初值的过程;2. 列出程序清单;参考程序: /注意点,7段LED显示下下面的J16方向反接(从右向左

12、)/位选的四位也是反方向的#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,/数码管显示编码(1-F) 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;uint a,a1,a2,num;void display(uchar a)P0=tablea;P2=0xfe;void main() a=0;EA=1;ET1=1;TMOD=0x10;TH1=(655

13、36-45872)/256;TL1=(65536-45872)%256;TR1=1;num=0;a1=0xfe;a2=1;while(1)display(a);if(num=10)P1=a1;a1=a1<<1;a1+;a2+;num=0; if(a2=9) a2=1;a1=0xfe;a=a+1;if(a=10)a=0;void time1() interrupt 3TH1=(65536-45872)/256; /50ms定时TL1=(65536-45872)%256;num+;实验五 单片机串口通信程序设计一、 实验目的与要求1. 学习串口工作方式初始化编程;2. 学习单片机与单片

14、机点对点的通信编程方法。二、 实验设备计算机编程器目标板(两块)单片机AT89S51三、 实验原理电路实验电路如下图所示。甲机的串口发送端TXD接到乙机的接收端RXD,而乙机的发送端又接到了甲机的接收端,两机的地线连在一起。四、 实验内容与步骤1. 首先按照图示连线;2. 甲机作为发送端,编写发送程序;3. 乙机作为接收端,编写接收程序;4. 要求用甲机控制乙机,顺序点亮乙机的LED1LED8:乙机LED初始状态为全灭,甲机按键S1按下时,点亮LED1,再按一下点亮LED2,依次类推。五、 实验报告要求1. 分别列出发送、接收程序清单;发送参考程序: #include<reg52.h&g

15、t;#define uint unsigned int#define uchar unsigned charsbit sb1=P36;void delayms(uchar xms)uint i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);void main()uchar a1,a2;TMOD=0x20;/设置定时器1为模式2TH1=0xfd;/装初值设定波特率TL1=0xfd;TR1=1;/启动定时器SM0=0;/串口通信模式设置SM1=1;REN=1;/串口允许接收数据EA=1;/开总中断ES=1;/开串中断a1=0xfe;a2=1;while(1)

16、if(sb1=0)delayms(10);if(sb1=0)SBUF=a1;while(!TI);/等待数据发完 TI=0;a1=a1<<1;a1=a1+1;a2+;if(a2=9)a1=0xfe;a2=1;while(!sb1);接收参考程序:#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar a1;void main()TMOD=0x20;/设置定时器1为模式2TH1=0xfd;/装初值设定波特率TL1=0xfd;TR1=1;/启动定时器SM0=0;/串口通信模式设置S

17、M1=1;REN=1;/串口允许接收数据EA=1;/开总中断ES=1;/开串中a1=0xff;while(1)P1=a1; void serial() interrupt 4/串行中断函数a1=SBUF;/将数据发送给P1口显示(测试用)RI=0;实验六 模拟交通灯实验一、 实验目的与要求1. 了解中断矢量地址在中断程序中的作用;2. 学习外部中断技术的基本使用方法;3. 学习中断处理程序的编程方法;二、 实验设备计算机、编程器、目标板、单片机AT89S51三、 实验原理电路实验电路如下图所示。本实验是交通灯控制实验,所以需要了解交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东

18、西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。所设计的交通灯管理系统还要求满足急救车优先通过的要求。若有急救车到达时,两向交通信号为全红,以便让急救车通过。假定急救车通过路口时间为10S,急救车通过后,交通灯恢复中断前状态。该实验中以S1为中断请求,表示有急救车通过。LED资源分配可参考下表,也可以自己定义(报告中程序要与定义的一致)。 灯LED 东西红灯LED1 东西黄灯LED2 东西绿灯LED3

19、 南北红灯LED6 南北黄灯LED7 南北绿灯LED8P1.5P1.4P1.3P1.2P1.1P1.0 P1 端口 数据状态说明东西 红 灯东西黄 灯 东 西 绿 灯南 北红 灯南 北黄 灯南 北 绿 灯110011 F3H状态1:A禁行,B禁行110、1交替011状态2:A绿灯闪,B禁行101011 EBH状态3:A警告,B禁行011110 DEH状态4:A禁行,B通行011110、1交替状态5:A禁行,B绿灯闪011101 DDH状态6:A禁行,B禁行四、 实验内容与步骤1. 了解交通灯的变化规律;2. 将目标板上的按键S1接在INT0引脚上;3. 按照交通灯规律编写程序,调试。五、 实验

20、报告要求1. 画出程序流程图;2. 列出程序清单;参考程序:#include <REG51.H>unsigned char t0,t1;/定义全局变量,用来保存延时时间循环次数/函数名:delay0_5s1/函数功能:用T1的方式1编制0.5秒延时程序,假定系统采用12MHz晶振,定/ 时器1、工作方式1定时50ms,再循环10次即可定时到0.5秒/形式参数:无 /返回值:无void delay0_5s1() for(t0=0;t0<0x0a;t0+)/ 采用全局变量t0作为循环控制变量 TH1=0x3c;/ 设置定时器初值 TL1=0xb0; TR1=1; / 启动T1 w

21、hile(!TF1);/ 查询计数是否溢出,即定时50ms时间到,TF1=1 TF1=0;/ 50ms定时时间到,将定时器溢出标志位TF1清零 /函数名:delay_t1/函数功能:实现0.5秒128秒延时/形式参数:unsigned char t;/ 延时时间为0.5秒×t/返回值:无void delay_t1(unsigned char t) for(t1=0;t1<t;t1+)/ 采用全局变量t0作为循环控制变量 delay0_5s1();/函数:int_0/函数功能:外部中断0中断函数,紧急情况处理,当CPU响应外部中断0的中断请求时,/ 自动执行该函数,实现两个方向红

22、灯同时亮10秒/形式参数:无/返回值:无void int_0() interrupt 0/ 紧急情况中断 unsigned char i,j,k,l,m; i=P1;/ 保护现场,暂存P1口、t0、t1、TH1、TH0 j=t0; k=t1; l=TH1; m=TH0; P1=0xdb;/ 两个方向都是红灯 delay_t1(20);/ 延时10秒 P1=i;/ 恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0 t0=j; t1=k; TH1=l; TH0=m;/函数:int_1/函数功能:外部中断1中断函数,特殊情况处理,当CPU响应外部中断1的中断请求时,/ 自动执行该函数,实现

23、A道放行5秒/形式参数:无/返回值:无void int_1() interrupt 2/ 特殊情况中断 unsigned char i,j,k,l,m; EA=0;/关中断 i=P1;/ 保护现场,暂存P1口、t0、t1、TH1、TH0 j=t0; k=t1; l=TH1; m=TH0; EA=1; / 开中断 P1=0xf3;/ A道放行 delay_t1(10);/ 延时5秒 EA=0;/ 关中断 P1=i;/ 恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0 t0=j; t1=k; TH1=l; TH0=m; EA=1;/开中断void main()/主函数 unsigned

24、char k; TMOD=0x10;/ T1工作在方式1 EA=1;/ 开放总中断允许位 EX0=1;/ 开外部中断0中断允许位 IT0=1;/ 设置外部中断0为下降沿触发 EX1=1;/ 开外部中断1中断允许位 IT1=1;/ 设置外部中断1为下降沿触发 while(1) P1=0xf3;/ A绿灯,B红灯,延时5秒 delay_t1(10); for(k=0;k<3;k+)/ A绿灯闪烁3次 P1=0xf3; delay0_5s1();/ 延时0.5秒 P1=0xfb; delay0_5s1();/ 延时0.5秒 P1=0xeb;/ A黄灯,B红灯,延时2秒 delay_t1(4);

25、 P1=0xde;/ A红灯,B绿灯,延时5秒 delay_t1(10); for(k=0;k<3;k+)/ B绿灯闪烁3次 P1=0xde; delay0_5s1();/ 延时0.5秒 P1=0xdf; delay0_5s1();/ 延时0.5秒 P1=0xdd;/ A红灯,B黄灯,延时2秒 delay_t1(4); 实验七 A/D转换实验一、实验目的1、 进一步理解A/D转换的概念;2、 掌握A/D转换器ADC0809与单片机的连接方式;3、 熟悉ADC0809的转换性能;4、 掌握A/D转换的编程和测试方法。二、实验设备及器材单片机AT89S51、A/D转换器ADC0809、计算机

26、、编程器、万用表、电阻、电容、晶振等三、实验原理及内容通过电位器提供模拟电压输入,启动A/D转换,连续采样4次取平均值,将转换结果存入内部RAM单元30H,然后经P1口送发光二极管显示8位数字量。下图所示为A/D转换参考电路。图1 A/D转换实验参考电路图 引脚 功能D7-D08位数字量输出引脚IN0 -IN78位模拟量输入引脚VCC+5V工作电压GND地REF(+)参考电压正端REF(-)参考电压负端STARTA/D转换启动信号输入端ALE地址锁存允许信号输入端EOC转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平OE输出允许控制端,用以打开三态数据输出锁存器CLK时钟信号输入

27、端(一般为500KHz)A、B、C地址输入线 图2 ADC0809引脚结构图四、实验步骤5、 按电路连好线路,将调试好的程序烧入单片机;6、 调节电位器,使输入电压Vi=0,运行程序,启动A/D转换,观察发光二极管状态,记录A/D转换结果;7、 使Vi=2.5V,记录A/D转换结果;8、 使Vi=4.98V,记录A/D转换结果;9、 改动Vi的输入端,使其从0809的IN7端输入,修改程序,重复以上测试。五、思考1、当采用查询方式等待A/D转换结束时,能否在启动A/D转换后立即查询EOC信号,为什么?2、若采用中断方式,电路和程序应作何改动?参考程序:#include <reg52.h&

28、gt;unsigned char code dispbitcode=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;unsigned char dispbuf8=10,10,10,10,10,0,0,0;unsigned char dispcount;sbit ST=P30;sbit OE=P31;sbit EOC=P32;unsigned char channel=0xbc;/IN3unsigne

29、d char getdata;void main(void)TMOD=0x01;TH0=(65536-4000)/256;TL0=(65536-4000)%256;TR0=1;ET0=1;EA=1;P3=channel;while(1)ST=0;ST=1;ST=0;while(EOC=0);OE=1;getdata=P0;OE=0;dispbuf2=getdata/100;getdata=getdata%10;dispbuf1=getdata/10;dispbuf0=getdata%10;void t0(void) interrupt 1 using 0TH0=(65536-4000)/256

30、;TL0=(65536-4000)%256;P1=dispcodedispbufdispcount;P2=dispbitcodedispcount;dispcount+;if(dispcount=8)dispcount=0;实验八 D/A转换实验一、实验目的1、进一步理解D/A转换的概念;2、掌握D/A转换器DAC0832与单片机的连接方法;3、熟悉DAC0832的转换性能;4、掌握D/A转换的编程和调试方法。二、实验设备及器材单片机AT89S51、D/A转换器DAC0832、计算机、编程器、万用表、电阻、电容、晶振等三、实验原理及内容1、 进行D/A转换,调节零点和满量程,校对D/A数值关系

31、;2、 产生幅度为5V,频率为100Hz的三角波。下图所示为D/A转换实验的参考电路。图2 D/A转换实验参考电路图四、实验步骤1、 按电路连好线路,将调试好的程序烧入单片机;2、 调节零点和满量程:Ø 单片机输出#00H时,调节运算放大器的调零电位器RP1,使Vout=0;Ø 单片机输出#0FFH时,调节运算放大器的调零电位器RP2,使Vout=4.98V,然后再校对一下零点;3、 分别对#00H、#40H、#80H、#0C0H、#0FFH进行D/A转换,记录相应的转换结果Vout;4、 输出一定幅度和周期的三角波:Ø 烧入所编写的三角波程序;Ø 执行

32、程序,用示波器观察Vout波形是否为三角波,画下波形图,记录并核对幅值和周期值;五、思考5、 如何控制三角波的幅度、周期?6、 若要使输出电压Vout为正值,应如何改变电路?参考程序:这是三角波的C语言程序:#include<reg52.h>#include<stdio.h>#define DAC0832Addr 0x7ffff /0832地址#define uchar unsigned char#define uint unsogned intUart_Init(); /申明输出口初始化子函数sbit P26=0XA6;sbit P27=0XA7;void Trans

33、formData(ucahr c0832data); /转换函数void delay()(); /延时main()bit upFlag=1;xdata cdigital=1;Uart_Init();P0=P1=P2=P3=0xff;delay()();while(1)transformData(cDigital); /进行数模转换if(cdigital=255)|(cDigital=0)upFlag=upFlag;/标志位取反if(upFlag=1)cDigital+;else(cDigital-;)delay()();printf("digital is %d n",cD

34、igital);void TransformData(ucahr c0832data)*(uchar xdata *)DAC0832Addr)=c0832data;Uart_Init()SCON=0X52;TMOD=0X21;TCON=0X69;TH1=0XF3;void delay()uint i;for(i=0;i<200;i+);实验九 矩阵式键盘接口技术实验一、实验目的1、了解矩阵式键盘的结构及驱动程序的编写方法;2、学习键盘程序的使用方法;二、实验设备及器材单片机AT89S51、计算机、编程器、万用表、电阻、电容、晶振、矩阵键盘等三、实验原理及内容矩阵式键盘的结构与工作原理:在

35、键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,下图为4*4矩阵式键盘的原理图。当无按键闭合时,P1.0P1.3与相应的P1.4P1.7之间开路;当有键闭合时,与闭合键相连的两条I/O端线之间短路。判断有无按键按下的方法是:第一步,置列线P1.4P1.7为输入态,行线P1.0P1.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有按键闭合。第二步,置行线P1.0P1.3为输入态,列线P1.4P1.7输出低电平,读入行线数据,若某一行线为低电平,则该行线上有键闭合。综合一、二两步的结果,可确定按键键号。图3 矩阵式键盘实验参考电路图四、实验步骤1、按上图连接好电

36、路;2、编写4*4键盘的驱动子程序,其中行列信号与按键及键值的对应关系如下表所示:表3-1 行列信号与按键及键值的对应关系按键行线信号列线信号键值P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7K00111111000HK10111110101HK20111101102HK30111011103HK41011111004HK51011110105HK61011101106HK71011011107HK81101111008HK91101110109HK10110110110AHK11110101110BHK12111011100CHHK14111010

37、110EHH3、编写主程序,当按键按下时,能够在数码管显示器上显示与按键键值对应的数字。五、思考1、若想采用中断方式,电路图应作何改动?参考程序:/按下16个矩阵键盘依次在数码管上显示1-16的平方。如按下/第一个显示1,第二个显示4.#include<reg52.h>#define uc unsigned char#define ui unsigned intsbit dus=P26;sbit wes=P27;ui num,temp,a2,a1,a0;uc code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x0

38、7,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;ui kscan();delay(uc x) ui i,j; for(i=100;i>0;i-) for(j=x;j>0;j-);display(ui bi,ui si,ui ge) P0=0xff; wes=1; wes=0;P0=tablebi;dus=1;dus=0;P0=0xf7;wes=1;wes=0; delay(1); P0=0xff; wes=1; wes=0;P0=tablesi;dus=1;dus=0;P0=0xef;wes=1;wes=0; delay(1); P0=0xff;

39、 wes=1; wes=0;P0=tablege;dus=1;dus=0;P0=0xdf;wes=1;wes=0; delay(1);void main()while(1) a2=kscan()/100;a1=kscan()%100/10; a0=kscan()%100%10; display(a2,a1,a0);/kscan的返回值是num ui kscan() P3=0xfe; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(8);if(temp!=0xf0)switch(temp) case 0xe0:num=1;break; case

40、 0xd0:num=4;break; case 0xb0:num=9;break; case 0x70:num=16;break; while(temp!=0xf0) /松手检测temp=P3;temp=temp&0xf0;display(a2,a1,a0); P3=0xfd; temp=P3; temp=temp&0xf0; if(temp!=0xf0)delay(8);if(temp!=0xf0)switch(temp) case 0xe0:num=25;break; case 0xd0:num=36;break; case 0xb0:num=49;break; case

41、0x70:num=64;break;while(temp!=0xf0)temp=P3;temp=temp&0xf0;display(a2,a1,a0); P3=0xfb; temp=P3; temp=temp&0xf0; if(temp!=0xf0)delay(8);if(temp!=0xf0)switch(temp) case 0xe0:num=81;break; case 0xd0:num=100;break; case 0xb0:num=121;break; case 0x70:num=144;break;while(temp!=0xf0)temp=P3;temp=tem

42、p&0xf0;display(a2,a1,a0); P3=0xf7; temp=P3; temp=temp&0xf0; if(temp!=0xf0)delay(8);if(temp!=0xf0)switch(temp) case 0xe0:num=169;break; case 0xd0:num=196;break; case 0xb0:num=225;break; case 0x70:num=256;break;while(temp!=0xf0)temp=P3;temp=temp&0xf0;display(a2,a1,a0); return num;/返回值是num实

43、验十 开关量输出接口实验一、实验目的1、 掌握光电隔离技术,学习光电耦合器的驱动方法;2、 掌握用单片机控制继电器的原理和方法;二、实验设备及器材单片机AT89S51、计算机、编程器、万用表、电阻、电容、晶振、光耦、继电器等三、实验原理及内容在工业控制系统中,需要接通或断开开关量输入输出通道。当开关接高电压电路时,还需将控制电路和被控对象加以隔离,以保护主控电路和人身安全。继电器是电气控制中最常用的控制元件之一。它能同时实现接通和隔离两项任务,因此在工业控制中得到广泛的应用。在本实验中,主要是根据按键S1、S2的状态对继电器进行控制。下图即为本实验的电路图。图4 单片机驱动继电器参考电路图实验

44、要求通过程序将P2.0置高、置低,控制继电器的通断,具体要求如下:l 按下S1键,使继电器常开触点闭合,常闭触点打开,同时点亮LED1(LED2不亮);l 按下S2键,使继电器常开触点打开,常闭触点闭合,同时点亮LED2(LED1不亮);四、实验步骤1、按上图连接好线路;2、运行程序,观察继电器及LED1、LED2的状态变化,五、思考1、若要用此单片机实验电路板去控制交流220V电源开关并驱动一台电动机的启动与停止。实验电路应如何接线?参考程序:#include<reg52.h>sbit S1=P10;sbit S2=P11;sbit LED1=P13;sbit LED2=P14;

45、Void main() While(1) LED1=S1; LED2=S2;if(LED1=1)P20=0;Else P20=1;实验十一 步进电机控制实验一、实验目的3、 熟悉采用单片机控制步进电机的硬件接口技术;4、 熟悉步进电机驱动程序的编制与调试方法;5、 熟悉步进电机的工作特性;二、实验设备及器材单片机AT89S51、计算机、集成块SN75412两片、74LS04一片、编程器、万用表、电阻、电容、晶振等三、实验原理及内容编程实现使步进电机工作于单三拍方式,正走10步,每步间隔1s。下图为步进电机控制的实验参考电路。图5 步进电机控制实验参考电路图图中A、B、C是步进电动机的三相绕组。R1、R2、R3是限流电阻,可按照步进电动机绕组的静态电流不超过额定电流来确定其阻值和功率。VD1、VD2、VD3是续流二极管电路。步进电动机的供电电源(+V),按电动机铭牌要求来确定。单片机的P1.0、P1.1、P1.2经过与非驱动器SN75412控制和驱动步进电动机的三相绕组。SN75412的最大输出电流为0.5A,开关电压55V。如果不能满足实验所用步进电机的要求,可改选其它驱动器(如达林顿开关管SN7506,其最大输出电流为1.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论