MCS-51单片机实验指导书.doc

上传人:创****公 文档编号:126047 上传时间:2018-07-09 格式:DOC 页数:39 大小:1.50MB
下载 相关 举报
MCS-51单片机实验指导书.doc_第1页
第1页 / 共39页
MCS-51单片机实验指导书.doc_第2页
第2页 / 共39页
MCS-51单片机实验指导书.doc_第3页
第3页 / 共39页
MCS-51单片机实验指导书.doc_第4页
第4页 / 共39页
MCS-51单片机实验指导书.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、MCS-51 单片机实验指导书 目录 1. 实验板使用说明 . 2 1.1 单片机实验板简介 . 2 1.2 实验板电路原理图 . 2 1.3 USB 转串口驱动的安装 . 4 1.4 下载软件的使用 . 5 2. 单片机实验 . 6 实验 1 红黄绿灯控制 . 6 实验 2 键盘 LED 数码管显示 . 8 实验 3 定时器中断实验 . 12 实验 4 计数器实验 . 15 实验 5 AD 转换实验 . 22 实验 6 PC 机与单片机串口通信实验 . 24 实验 7 温度测量实验 . 25 实验 8 数模转换实验 . 29 实验 9 IIC 和 EEPROM 存储实验 . 30 实验 10

2、 频率测量实验 . 37 1.实验板使用说明 1.1 单片机实验板简介 单片机实验板是西华大学机械工程与自动化学院在长期教学实践中设计的,非常适合单片机教学的一种实验装置。它有以下特点: 不需要其他附件,即可以在任何一台有 USB 接口的 PC 机或笔记本电脑上使用;价格便宜,解决了许多院校经费不足的问题;可以开设 LED, LCD,键盘,蜂鸣器, AD 转换, DA转换,温度测量,光电计数,压频转换, IIC 总线, PC 与下位机串口通信, RS485 通信等各种实验,满足教学需要。 图 1.1 实验板各部分名称及功能 实验板与 PC 机 通过公对公 USB 线连接,实验板上 USB 接口

3、给实验板提供电源的同时,且可以通过 USB 转串口芯片给实验板下载程序和与 PC 机进行串口通信。本实验板采用的是宏晶公司的 STC89C52RC 单片机,可以通过串口烧录程序,无需仿真器。 1.2 实验板电路原理图 实验板电路图如图 1.2 所示。为了满足多种实验的需求和入门编程的便捷,单片机的引脚许多复用,但没有使用锁存器来扩展 IO 口。实验板上引出了 DA 输出, P0 口, P1 口, P2口, P3 口 ,电源扩展口, 485 通信口,方便外接实验。为了满足单片机的冷启动(下载程序时先断电再通电) 要求,电源按钮采用自锁开关。无论在 PC 机还是笔记本电脑上都有 USB接口,所以实

4、验板直接由 USB 接口供电,实验板上 CH340G 将 USB 转换为串口为单片机下载程序。 1 2 3 4 5 6 7 8J31 2 3 4 5 7 6 8J612345678J512345678J4BELL1D9D1 D2 D3470R3 470R5470R110KR61Kx8RP1EA/VP31X119X218RESET9P3.7/RD17P3.5/T115P3.2/INT012P3.3/INT113P3.4/T014P3.6/WR16P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534

5、P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/P30P3.1/TXD11P3.0/RXD10IC130PC330PC210uFC1GNDVCCVCC1KR21VCCGNDGND9012T1GND1KR4GNDLCD_RS FreqBELLS1 S2a8b4c3d1e2f9g6dp7G110G25LED11KR171KR16VCCGND104C5100uFC4VCCVCCX13 218 4IC2AVCCGND3 142IC3200R19GNDVCC104W2VCCGND204R20VCC GNDNUM_

6、COUNTCH02CH13GND4VDD8D06D15CS1CLK7U4VCC GNDADC_DINUM_COUNTVDD3DQ2GND1U31KR18VCC GND18B2018B20RXD TXDGND10R9VCCVCC104W1GNDLED1LED1 LED2 LED3 LED4S2 S3 S4GNDKEY1 KEY2 KEY3KEY1 KEY2 KEY3GND10R1410R15470R8D4470R10D5470R11D6470R12D7470R13D8LED4LED5 LED6LED5 LED6LCD_RSS5KEY4KEY4 RELAY104C11100uFC13VCC1GND

7、P00 P01 P02 P03 P04 P05 P06 P07P00P01P02P03P04P05P06P07P00P01P02P03P04P05P06P07LED流水灯按键光电计数18B20温度传感器模数转换器电源开关与指示灯USB转串口数码管显示1602液晶显示蜂鸣器STC89C52主控芯片电源扩展接口T2T310R21 2 3 4 5J81 2 3 4 5J9A01A12A23GND4SDA5SCL6WP7VCC8U2 24C02GNDGNDVCCCH1 CH0CH1CH0LED7 LED8S2S1EEPROM存储器OUT1CREF2FOUT3GND4R/C5THR6CMPRC7VCC8

8、U7LM3316.8KR25104C12GNDVCC100KR241uFC9GNDGND10KR26GND200R22104C1010KR23DIN1SCLK2CS3DOUT4AGND5REFIN6OUT7VDD8U6 TLC5615VCC GND数模转换V/F转换CH1200R7S1RESETRESET复位电路GND1VDD2VO3RS4RW5E6DB07DB18DB29DB310DB411DB512DB613DB714BL_A15BL_K16U11602GNDVCC1GNDGND1TXD2RXD3V34UD+5UD-6XI7XO8CTS#9DSR#10RI#11DCD#12DTR#13RT

9、S#14RS23215VCC16U5 CH340GVCC120PC820PC712MX2GND104C6GNDD10GNDR27VARISTORGND1D+2D-3VCC4P1 USB_1RELAYBELLfo=(VinR26)/(2.09R24R25C12)=Vin*70.3 Hz10KR2810KR29RXDTXD1 2J10CON21KR301KR311KR32VCC GNDRO1RE2DE3DI4GND5A6B7VCC8U8 SP3485GNDR36120B- A+RS-485通信R34 10k R35 10KGND1 2J11 CON2VCC GNDRXD TXDRE_DEVCC1

10、2 3456S6VCCVCC11 24 3S7 SW DIP-21 24 3S8 SW DIP-2LED_PWLED_PWGNDVCCLED1 LED2 LED3LED4 LED5LED6 LED7 LED8ADC_DIFreqRE_DELED2 LED3LED7 LED8B ADA_OUTDA_OUT图 1.2 实验板电路原理图 1.3 USB 转串口驱动的安装 安装步骤如下: ( 1) 双击如图 1.3 所示的可执行文件 图 1.3 驱动安装图标 ( 2) 双击后会弹出如图 1.4 所示的对话框,所有值 保持 默认值,鼠标单击 INSTALL 按钮,此时对话框会变成如图 1.5 所示, I

11、NSTALL 和 UNINSTALL 变为灰色。这时我们需要等待一段时间,等两个按钮变成和图 4 一样( 即 INSTALL 和 UNINSTALL 不为灰色),驱动安装完毕。 图 1.4 驱动安装窗口 图 1.5 驱动正在安装窗口 ( 3) 在我的电脑图标上单击右键,选择管理,在弹出的对话框中单击设备管理器,展开端口即可以看到实验板对应的串口号,如图 1.6 所示。 图 1.6 驱动正确安装 1.4 下载软件的使用 在 windows 下运行 STC_ISP.EXE,界面和操作步骤如图 1.7 所示 图 1.7 ISP 界面 2.单片机实验 实验 1 红黄绿灯控制 1.实验目的 (1) 学习

12、 Keil C51 集成编译软件的使用和调试程序 方法。 (2) 学习将用户程序下载到应用系统的方法。 (3) 掌握 STC89C52 单片机的 I/O 端口的控制和使用方法。 2.实验内容 (1)编写程序要求:利用单片机的 P1.0, P1.1, P1.2 控制 3 个 LED 灯,模仿控制交通灯(红灯亮4 秒 ,黄灯亮 2 秒,黄灯和绿灯同时亮 1 秒,绿灯亮 4 秒,如此循环 ) 。 3.实验电路 见图 1.2 4.实验 参考 程序 (1)程序流程图 (2)C 语言参考程序 #include“reg52.h“ #define uchar unsigned char #define uin

13、t unsigned int /*定义红黄绿灯对应的单片机引脚 */ sbit Green_LED = P10; sbit Yellow_LED = P11; 红灯亮 延时 4S 黄灯亮 延时 2S 黄、绿灯亮 延时 1S 延时 4S 绿灯亮 sbit Red_LED = P12; /*毫秒延时函数 */ void delay_ms(uint num) uchar i; while(num-) for(i = 0 ; i 123; i+); /*主函数 */ void main() while(1) Red_LED = 0;Yellow_LED = 1;Green_LED = 1; delay

14、_ms(4000); Red_LED = 1;Yellow_LED = 0;Green_LED = 1; delay_ms(2000); Red_LED = 1;Yellow_LED = 0;Green_LED = 0; delay_ms(1000); Red_LED = 1;Yellow_LED = 1;Green_LED = 0; delay_ms(4000); (3)汇编 语言参考程序 ORG 0000H SJMP MAIN ORG 0030H MAIN: CLR P1.2 ;红灯亮 4S SETB P1.0 ;绿灯灭 SETB P1.1 ;黄灯灭 MOV R0,#40 ACALL DE

15、LAY ;自己编写 DELAY: MOV A,R0 ;延时程序, R0=10,延时 1S MOV R5,A DELAY3: MOV R6,#XXH ; XX 的数值自己计算填写 DELAY2: MOV R7,#XXH ; XX 的数值自己计算填写 DELAY1: DJNZ R7,DELAY1 DJNZ R7,DELAY1 DJNZ R7,DELAY1 RET END 5.实验步骤 (1)根据实验原理图编写程序,用“ Keil uVision4”编译软件进行编译,如未通过,则 修改程序,直至通过。 (2)用 STC-ISP.EXE 软件将所编写程序生成的“ HEX”文件下载到实验板 STC89C

16、52 芯片中 (3)运行程序,观察实验板上的红,黄,绿三个 LED 灯的亮灭次序和时间是否符合实验内容要求,如果不符合要求,改写程序,按照步骤( 1)开始重新做实验,直至成功。 6.思考题 (1)怎样计算延时子程序的延时时间? (2)如何计算与 LED 连接的电阻阻值? (3)如何用 89C52 单片机的 I/O 口控制继电器?画出电路原理图。 (4)根据实验板原理图,编写一段 8 个 LED 循环闪烁的流水灯程序。 7.实验报告要求 (1)画出本实验相关的原理图。 (2)回答思考题中的题目。 (3)总结本次实验,简述自己的感想。 实验 2 键盘 LED 数码管显示 1.实验目的 掌握独立键盘

17、, LED 数码管的电路连接方法和编程方法。 2.实验内容 (1)编写程序,按下 S2, S3, S4, S4 任何一个按键的时候,蜂鸣器都鸣叫,松开按键的时候蜂鸣器停止鸣叫。 (2)开始的时候,数码管左边位不显示,右边位数码管显示数值 0,每按一次 S4 按键,数码管显示值加 1,直至 9,再循环从 0 显示到 9。 3.实验电路 见图 1.2 4.实验 参考 程序 (1)C 语言参考程序 #include“reg52.h“ #define uchar unsigned char #define uint unsigned int /*蜂鸣器引脚定义 */ sbit Beep = P27;

18、/*数码管位选引脚定义 */ sbit S2 = P26; sbit S1 = P25; /*按键引脚定义 */ sbit Key1 = P20; sbit Key2 = P21; sbit Key3 = P22; sbit Key4 = P23; /*数码管数字 09 段 码 */ uchar code Num10 = 0x30,/*0*/ 0xFC,/*1*/ 0xA2,/*2*/ 0xA4,/*3*/ 0x6C,/*4*/ 0x25,/*5*/ 0x21,/*6*/ 0xBC,/*7*/ 0x20,/*8*/ 0x24,/*9*/ ; /*毫秒延时函数 */ void delay_ms(

19、uint num) uchar i; while(num-) for(i = 0 ; i 123; i+); /*LED 数码管显示 */ void LED_DispNum(uchar num) S1 = 0; S2 = 1; P0 = Numnum; /*按键扫描 */ uchar KeyScan() uchar keyval; if( (Key1 = 0) | (Key2 = 0) | (Key3 = 0) | (Key4 = 0) ) delay_ms(10); if( (Key1 = 0) | (Key2 = 0) | (Key3 = 0) | (Key4 = 0) ) if(Key1

20、 = 0) keyval = 1; else if(Key2 = 0) keyval = 2; else if(Key3 = 0) keyval = 3; else if(Key4 = 0) keyval = 4; Beep = 0; while( (Key1 = 0) | (Key2 = 0) | (Key3 = 0) | (Key4 = 0) ); Beep = 1; else keyval = 0; return keyval; /*主函数 */ void main() uchar DispNum = 0; uchar Keyval; while(1) Keyval = KeyScan(

21、); if(Keyval = 4) if(DispNum 9) DispNum+; else DispNum = 0; LED_DispNum(DispNum); (2)汇编 语言参考程序 BEEP EQU P2.7 ;蜂鸣器 S1 EQU P2.5 ;数码管位个位 S2 EQU P2.6 ;数码管位十位 KEY1 EQU P2.0 ;按键 1 KEY2 EQU P2.1 ;按键 2 KEY3 EQU P2.2 ;按键 3 KEY4 EQU P2.3 ;按键 4 ORG 0000H SJMP MAIN ORG 0030H MAIN: MOV R0,#00H CLR FO ;按键 4 按下标志位 F0=1 CLR S1 SETB S2 ACALL DISNUM ;数码管显示子程序 LOOP: ACALL KEYSCAN ;按键扫描

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。