单片机实验(1)_第1页
单片机实验(1)_第2页
单片机实验(1)_第3页
单片机实验(1)_第4页
单片机实验(1)_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、整理课件1 单片机原理及应用实验 信息学院 整理课件2 第一部分第一部分 51 51系统部分及仿真器使用说明系统部分及仿真器使用说明 n一、一、5151单片机仿真部分使用说明单片机仿真部分使用说明 n 系统专配的仿真器是一个支持keil c51设计软件的软件断点仿真机。该仿真 器使用一片SST89C58SST89C58单片机单片机和一片 AT90S8515AT90S8515单片机单片机来实现仿真功能(主主CPU CPU 和用户和用户CPUCPU),两片CPU之间通过一根I/O 引脚通讯(通讯速率在33兆晶振时约 100KBPS),主CPU负责跟keil c51通讯, 用户CPU只跟 主CPU通

2、讯,仿真器结构框 图如下: 整理课件3 整理课件4 1 1、仿真机的连接、仿真机的连接 1)将随机配备的专用仿真器按标志字符向 上的方向插到51CPU仿真区的JFZ位置; 2)仿真器上的8位开关1 1和和8 8在在ONON位置,其 余在OFF位置。 整理课件5 2 2、使用、使用USBUSB接口的仿真器特别说明接口的仿真器特别说明 n1 1)先运行)先运行 USB_DRV.EXE USB_DRV.EXE程序,以安装程序,以安装 USBUSB驱动;驱动; n2 2)打开电源;)打开电源; n3 3)将随机配备的)将随机配备的USBUSB通信线一头连仿真通信线一头连仿真 器,另一头连电脑;器,另一

3、头连电脑; n4 4)电脑显示找到新设备,让系统自己找)电脑显示找到新设备,让系统自己找 驱动并且安装。驱动并且安装。 n5 5)安装完成后,到控制面板)安装完成后,到控制面板-系统系统-硬硬 件件-设备管理器设备管理器-端口端口 里面确认一下里面确认一下 USBUSB转串口的转串口的COMCOM端口号端口号,以备在,以备在KEIL CKEIL C 软件中做相应的设置。软件中做相应的设置。 整理课件6 5 5、Keil C Keil C 软件的使用软件的使用 1 1)设置)设置Keil C51Keil C51仿真机的工作参数仿真机的工作参数 这里拿这里拿keil c51 V6.14keil c

4、51 V6.14来说明(来说明(keil c51 keil c51 v6.02v6.02,v6.10v6.10,v6.12v6.12的设置跟的设置跟v6.14v6.14是一是一 样的)。样的)。. . 打开一个工程文件。打开一个工程文件。如果你没有工程文件如果你没有工程文件 就要先建立一个就要先建立一个。这里拿。这里拿keil c51keil c51提供的提供的 hello.prjhello.prj为例子说明。为例子说明。 整理课件7 (1 1)用鼠标点击菜单的)用鼠标点击菜单的projectproject,选,选 择择open projectopen project。如图。如图 整理课件8

5、(2 2)选择)选择keilc51exampleshellohellokeilc51exampleshellohello, 点击打开,如图:点击打开,如图: 整理课件9 (3 3)选择菜单的)选择菜单的Project-Option for Project-Option for TargetTargetSimulatorSimulator,如图:,如图: 整理课件10 (3.13.1)选择)选择C51C51栏的设置如图栏的设置如图: :删掉删掉define:define: 里的里的MONITOR51MONITOR51这几个字母这几个字母, ,如果如果definedefine栏栏 是空的,可以跳过

6、这一步是空的,可以跳过这一步: : 整理课件11 (4 4)选择)选择debugdebug栏的设置项目:栏的设置项目: Use: Keil Monitor-51 DriverUse: Keil Monitor-51 Driver 。 Load Application at Start:选择这项之 后,keil才会自动装载你的程序代码。 Go till main:Go till main:调试c语言程序时可以选择 这一项,pc会自动运行到main程序处。 整理课件12 整理课件13 (5 5)点击上图的)点击上图的SettingsSettings,打开新的窗口,打开新的窗口: nPort:Por

7、t:设置你的串口号,在“使用使用USBUSB接口接口 的仿真器特别说明的仿真器特别说明”中的第四点里确认的 n串口号。 nBaudrate:Baudrate:设置为5760057600,仿真机固定使用 57600bps跟keil通讯。 nSerial Interrupt:Serial Interrupt:选中它。 nCache Options:Cache Options: 可以选也可以不选,推荐 选它,这样仿真机会运行的快一点。 n最后点击ok后确定,再关闭你的设置窗口。 整理课件14 整理课件15 (6 6)编译你的程序,选择)编译你的程序,选择Project - Project - Reb

8、uild all target filesRebuild all target files 整理课件16 (7 7)编译完毕之后,选择)编译完毕之后,选择Debug-Debug- Start/Stop Debug SessionStart/Stop Debug Session,就进入仿真了。,就进入仿真了。 整理课件17 (8 8)装载代码之后,在左下角显示如图:)装载代码之后,在左下角显示如图: Connected to Monitor-51 V1.0Connected to Monitor-51 V1.0 表示连接到仿真机,仿真机的版本号为表示连接到仿真机,仿真机的版本号为1.0 1.0

9、。 整理课件18 第二部分 实验指导 实验一实验一 单片机单片机I/OI/O口应用实验口应用实验 ( P3.3 P3.3口输入口输入 P1 P1口输出)口输出) 1 1、 实验原理图实验原理图 整理课件19 2、实验步骤 1 1)P3.3P3.3用插针连至用插针连至K1K1,JU2JU2(P1.0P1.0P1.7P1.7) 用用8 8芯线连至芯线连至JLJL(L0L0L7L7)。)。 2 2)调试、运行程序)调试、运行程序test1test1中的中的MCUIO.ASMMCUIO.ASM。 3 3)开关开关K1K1每拨动一次,每拨动一次,L0L0L7L7发光二极管发光二极管 按按1616进制方式

10、加一点亮。进制方式加一点亮。 整理课件20 思考题:流水灯程序设计思考题:流水灯程序设计 ORG 0000H MOV A,#0FEH ;点亮第1个LED的初值 LOOP: MOV P1,A ;点亮一位LED ACALL DELAY_100MS;延时延时100ms RL A ;左移一位,为下次显示作准备 AJMP LOOP ;跳回去循环 DELAY_100MS: MOV R1,#199 ;延时子程序 DL2: MOV R2, #250 DL1: DJNZ R2,DL1 ;内循环内循环 DJNZ R1,DL2 ;外循环 RET END 整理课件21 实验二实验二 单片机单片机I/OI/O口应用实验

11、口应用实验 (工业顺序控制)(工业顺序控制) 1 1、 实验内容实验内容 n8031的P1.0P1.6控制注塑机的七道工 序,现模拟控制七只发光二极管的点亮, 高电平有效,设定每道工序时间转换为 延时,P3.4P3.4为开工启动开关,低电平启 动。P3.3P3.3为外故障输入模拟开关,P3.3 为0时不断告警,P1.7为报警声音输出。 整理课件22 n2 2、实验电路图、实验电路图 整理课件23 修改程序:修改程序: n ORG 0000H n AJMP MAIN n ORG 0013H ;INT1中断入口中断入口 n LJMP INT1PRO n ORG 0030H nMAIN: SETB

12、EA ;INT1中断初始化中断初始化 n SETB EX1 n SETB IT1 n JB P3.4 ,$ ;当当K1为低电平时运行为低电平时运行 n MOV A,#0FEH ;点亮第点亮第1个个LED的初值的初值 nLOOP: MOV P1,A ;点亮一位点亮一位LED n ACALL DELAY_100MS ;延时延时100ms n RL A ;左移一位,为下次显示作准备左移一位,为下次显示作准备 n AJMP LOOP ;跳回去循环跳回去循环 整理课件24 nINT1PRO: SETB P2.7 ;int1中断服务程序(蜂鸣器响)中断服务程序(蜂鸣器响) n ACALL DELAY n

13、CLR P2.7 n ACALL DELAY n JNB P3.3 , INT1PRO n RETI n nDELAY_100MS: MOV R1,#199 ;延时子程序 n DL2: MOV R2, #250 n DL1: DJNZ R2,DL1 ;内循环 n DJNZ R1,DL2 ;外循环 n RET nDELAY: MOV R1,#50 ;短延时子程序 n D2: MOV R2, #50 n D1: DJNZ R2,D1 ;内循环 n DJNZ R1,D2 ;外循环 n RET n 整理课件25 实验三实验三 继电器控制实验继电器控制实验 一、一、 实验原理实验原理 本实验采用本实验采

14、用JZCJZC23F23F型继电器,其控制型继电器,其控制 电压为电压为5V5V。继电器电路中一般要在继电。继电器电路中一般要在继电 器的线圈两头加一个二极管以吸收继电器的线圈两头加一个二极管以吸收继电 器线圈断电时产生的反电势,防止干扰。器线圈断电时产生的反电势,防止干扰。 DD31 IN4001 JDQ1 VCC JZ JB QD31 9013 RD34 1K GND JK JIN VCC L1 L2 P1.0 整理课件26 二、实验内容与步骤二、实验内容与步骤 利用P1口输出高低电平,控制继电器的 开合,以实现对外部装置的控制。 1、把8031的P1.0插孔接到JIN端。 2、把继电器的

15、JZ(中心轴头)接VCC,JB 常闭开关接L1,JK常开开关接L2。 3、编制程序,使P1.0电平变化,低电平时 继电器吸合,常开触点接上L1熄灭,L2 点亮,高电平时继电器不工作,常闭触 点闭合,L1点亮,L2熄灭。 4、调试运行程序中的JDQ.ASM,L1、L2交 替亮灭。 整理课件27 附:参考程序 ORG 0000H AJMP START ORG 0030H START: SETB P1.0 LCALL DELAY CLR P1.0 LCALL DELAY SJMP START DELAY: MOV R7,#0FFH DELAY1: MOV R6,#0FFH DELAY2: DJNZ

16、R6,DELAY2 DJNZ R7,DELAY1 RET END 整理课件28 ;实现按键控制继电器通断 n ORG 0000H n AJMP START n ORG 0030H nSTART: JNB P1.7, JZD ;P1.7-K1 n SETB P1.0 ;高电平常闭 n SJMP START n JZD: CLR P1.0 ;低电平常开 n SJMP START n END 整理课件29 实验四 8051串行接口与PC机通信实验 一、实验原理一、实验原理 实验时需将实验时需将80518051串行接收信号线串行接收信号线P3.0P3.0 (RXDRXD)连到)连到RS232RS232

17、通信区的通信区的RXDRXD232232插插 孔,孔,80518051的的P3.1P3.1(TXDTXD)连到)连到RS232RS232通信通信 区的区的TXDTXD232232插孔上。插孔上。 1 6 2 7 3 8 4 9 5 232/485 GND TXD_232 RXD_232 C1+ 1 C1- 3 C2- 4 C2+ 5 TLIN 11 TLOT 12 TLIN 10 TLOT 9 C3+ 6 C3- 15 C4- 16 RSOT 14 RSIN 13 RSOT 7 RSIN 8 C4+ 2 UC8 RS232 CC81 224 CC82 224 C17 224 C18 224 C

18、19 0.1 A_485 B_485 VCC GND SWt TPC RPC CPU P3.1 P3.0 整理课件30 /串口调试程序 /功能比较简单,PC发送一个字符,单片机收到 后将收到的字符的下一个字符发送给PC, 如PC发一个A,单片机将发还一个B。通信参 数为9600,8N1。*/ #include #include sbit LED=P13; void INIT_SCI() SCON=0X50; ES=1; EA=1; 整理课件31 void INIT_TMR() TMOD=0X21; TH1=0 xfd; /* 4800bps=0 xfa, 9600=0 xfd, 1200=0

19、xe8, 2400=0 xf4*/ TL1=0 xfd; TR1=1; 整理课件32 void serial_int(void) interrupt 4 unsigned char data c; if (_testbit_(TI) LED=1; if (_testbit_(RI)/接收中断 c=SBUF; LED=0; SBUF=c+1; void main(void) INIT_TMR(); INIT_SCI(); while(1); 整理课件33 n;汇编查询方式 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV SCON,#50H MOV TMOD,#21

20、H MOV TH1,#0fdH MOV TL1,#0fdH SETB TR1 整理课件34 LOOP: JNB RI,LOOP CLR RI MOV R0,SBUF INC R0 MOV SBUF,R0 JNB TI,$ CLR TI SJMP LOOP END 整理课件35 实验五实验五 并行并行I/OI/O接口接口82558255应用实验应用实验 n一、实验原理一、实验原理 n用8255的PA口做输入口,PB口做输出口, 控制PA口状态从PB口输出显示。 n通过PA口接8个开关K1K8,PB口接8个 发光二极管,从PA口读入8位开关的状态 送PB口显示,拨动K1K8,PB口上接的8 个发光

21、二极管L0L7对应显示K1K8的 状态。 整理课件36 n实验接线图: D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27 PA0 4 PA1 3 PA2 2 PA3 1 PA4 40 PA5 39 PA6 38 PA7 37 PB0 18 PB1 19 PB2 20 PB3 21 PB4 22 PB5 23 PB6 24 PB7 25 PC0 14 PC1 15 PC2 16 PC3 17 PC4 13 PC5 12 PC6 11 PC7 10 RD 5 WR 36 A0 9 A1 8 RESET 35 CS 6 UB31 8255 D0 D1 D

22、2 D3 D4 D5 D6 D7 RD WR A0 A1 RST 8255CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 RB31 4.7K VCC Y0 K1 K2 K3 K4 K5 K6 K7 K8 L0 L1 L2 L3 L4 L5 L6 L7 整理课件37 整理课件38 n附:参考程序 n org 0000h n ajmp main n org 0030h nmain: mov sp,#60h n mov dptr,#8003h ;命令口

23、地址命令口地址 n mov a, #90h ;命令字:;命令字:PA-输入输入 n movx dptr,a ; PB-输出输出 nm: mov dptr,#8000h ;PA口地址口地址 n movx a,dptr ;读PA口状态 n lcall delay n mov dptr,#8001h ;PB口地址口地址 n movx dptr,a ;写;写PB口数据口数据 n lcall delay n ajmp m ndelay: mov r6,#00h n djnz r6,$ n ret 整理课件39 n/PA口输入,8255驱动B口LED发光 n#include n#include #defi

24、ne COM8255 XBYTE0 x8FFF /*命令口地址*/ #define PA8255 XBYTE0 x8FFC /*口A地址*/ #define PB8255 XBYTE0 x8FFD /*口B地址*/ #define PC8255 XBYTE0 x8002 /*口C地址*/ nvoid delay(unsigned int j) nwhile(j-); nvoid main(void) n COM8255=0 x90; /*命令字-A口输入,B口输出*/ nwhile(1) n n PB8255 = PA8255; n delay(1000); n n 整理课件40 n实验六 键

25、盘LED显示控制器应用实验 n要求:数码管动态显示,从左到右显示要求:数码管动态显示,从左到右显示 不同数字。不同数字。 n接线:接线:数码管位选线接数码管位选线接P2P2口;段选线接口;段选线接 74LS273 OUT0-OUT7,74LS273 74LS273 OUT0-OUT7,74LS273 的的CSCS接接GNDGND 整理课件41 整理课件42 n#include n#include n#define uchar unsigned char n#define uint unsigned int nsbit WWR=P36; nuchar code DSY_CODE= /共阴数码管共

26、阴数码管 n 0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F, 0 x6F; nvoid DelayMS(uint x) n nuchar t; nwhile(x-) n n for(t=120;t0;t-); n n 整理课件43 nvoid main() n uchar k; nuchar m; nP0=0 x00; /关闭数码管的段选 nP2=0 xff; /关闭数码管的位选 nwhile(1) n n m=0Xfe; /从最左边数码管开始显示 n P2=m; n P0=DSY_CODE0; n WWR=0;WWR=1; /74

27、LS273上升沿输出数据 n DelayMS(2); n for(k=1;k8;k+) n m=_crol_(m,1); n P2=m; /选通某个数码管的位选 n P0=DSY_CODEk; /将段码送给上面数码管的段 n WWR=0;WWR=1; n DelayMS(2); n n n 整理课件44 实验七实验七 A/D A/D 转换实验转换实验 一、一、 实验原理实验原理 ADC0809:D0-D7ADC0809:D0-D7接接P0P0口(已接好);口(已接好); CS_0809CS_0809接接GND;EOCGND;EOC接接P1.0P1.0口;口;CLK-0809CLK-0809 接

28、接500KHZ500KHZ IN-0 26 msb2-1 21 2-2 20 IN-1 27 2-3 19 2-4 18 IN-2 28 2-5 8 2-6 15 IN-3 1 2-7 14 lsb2-8 17 IN-4 2 EOC 7 IN-5 3 ADD-A 25 IN-6 4 ADD-B 24 ADD-C 23 IN-7 5 ALE 22 ref(-) 16 ENABLE 9 START 6 ref(+) 12 CLOCK 10 UB43 ADC0809 1 2 3 UB42A 74LS02 4 5 6 UB42B 74LS02 RD WR D0 D1 D2 GND D7 D0 D1 D

29、2 D3 D4 D5 D6 EOC /EOC 56 U1C 74HC04 R0809 4.7K VCC VCC IN0Vout CLK_0809 500KHZ CS_0809 Y0 整理课件45 整理课件46 整理课件47 整理课件48 二 参考程序 n#include n#include nsbit A3=P20; /LED位选位选 nsbit A2=P21; nsbit A1=P22; nsbit dp=P07; nsbit EOC=P10; nsbit WWR=P36; nsbit RRD=P37; nunsigned char getdata; n/* 接线:数码管位选线接P2口;段选

30、线接74LS273 OUT0- OUT7,74LS273 的CS接GND*/ /共阴数码管 nunsigned char code tab= 0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F ; 整理课件49 nvoid DelayMS(unsigned int x) n nunsigned char t; nwhile(x-) n n for(t=120;t0;t-); n n 整理课件50 nvoid display(unsigned char adm) n unsigned char temp; n A3=1;A2=1

31、;A1=1; WWR=0; /位选 n temp=adm;adm=adm/51; /AD转换数据处理 P0=tabadm;dp=1; /转换为十进制三位显示,百位 n A3=0;A2=1;A1=1; /位选 n WWR=0;WWR=1; /74LS273上升沿输出选通某个数码管的位选 n DelayMS(2); n A3=1;A2=1;A1=1; n adm=temp%51;adm=adm/5;temp=adm%5; n P0=tabadm; /转换为十进制三位显示,十位 n A3=1; A2=0;A1=1; /位选 n WWR=0;WWR=1; n DelayMS(2); n A3=1;A2

32、=1;A1=1; n P0=tabtemp; /转换为十进制三位显示,个位 n A3=1; A2=1;A1=0; /位选 n DelayMS(2); n WWR=0;WWR=1; /74LS273上升沿输出选通某个数码管的位选 n 整理课件51 nvoid main() n n while(1) n n P2=0 xff; /关闭数码管的位选 n P0=0 xFF; n WWR=1; /ST=0; n RRD=1; /OE=0; n _nop_(); _nop_();P0=P0 /选通道IN0; n WWR=0; _nop_(); / ST=1;上升沿启动,ADC0809启动 n WWR=1; _nop_(); /ST=0; n while(EOC=1); /正在转换正在转换 n _nop_(); n while(EOC=0); /等待转换结束等待转换结束 n RRD=0; /OE=1;允许输出 n getdata=P0; /获得AD转换值 n RRD=1; n display(getdata); /显示AD转换值 n n n 整理课件52 实验八实验八16X16 LED16X16 LED点阵显示实验点阵显示实验 一一 点阵显示原理点阵显示原理 整理课件53 整理课件54 整理课件55 整理课件56 本实验点阵图:行接行接LEDLED负极,列线接负极,列线

温馨提示

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

评论

0/150

提交评论