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

下载本文档

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

文档简介

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

2、真机的连接、仿真机的连接1)将随机配备的专用仿真器按标志字符向上的方向插到51CPU仿真区的JFZ位置;2)仿真器上的8位开关1 1和和8 8在在ONON位置,其余在OFF位置。 2 2、使用、使用USBUSB接口的仿真器特别说明接口的仿真器特别说明n1 1)先运行)先运行 USB_DRV.EXEUSB_DRV.EXE程序,以安装程序,以安装USBUSB驱动;驱动;n2 2)打开电源;)打开电源;n3 3)将随机配备的)将随机配备的USBUSB通信线一头连仿真通信线一头连仿真器,另一头连电脑;器,另一头连电脑;n4 4)电脑显示找到新设备,让系统自己找)电脑显示找到新设备,让系统自己找驱动并且

3、安装。驱动并且安装。n5 5)安装完成后,到控制面板)安装完成后,到控制面板-系统系统-硬硬件件-设备管理器设备管理器-端口端口 里面确认一下里面确认一下USBUSB转串口的转串口的COMCOM端口号端口号,以备在,以备在KEIL CKEIL C软件中做相应的设置。软件中做相应的设置。5 5、Keil C Keil C 软件的使用软件的使用1 1)设置)设置Keil C51Keil C51仿真机的工作参数仿真机的工作参数这里拿这里拿keil c51 V6.14keil c51 V6.14来说明(来说明(keil c51 keil c51 v6.02v6.02,v6.10v6.10,v6.12v

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

5、 3)选择菜单的)选择菜单的Project-Option for Project-Option for TargetSimulatorTargetSimulator,如图:,如图:(3.13.1)选择)选择C51C51栏的设置如图栏的设置如图: :删掉删掉define:define:里的里的MONITOR51MONITOR51这几个字母这几个字母, ,如果如果definedefine栏栏是空的,可以跳过这一步是空的,可以跳过这一步: :(4 4)选择)选择debugdebug栏的设置项目:栏的设置项目:Use: Keil Monitor-51 DriverUse: Keil Monitor-5

6、1 Driver 。Load Application at Start:选择这项之后,keil才会自动装载你的程序代码。Go till main:Go till main:调试c语言程序时可以选择这一项,pc会自动运行到main程序处。(5 5)点击上图的)点击上图的SettingsSettings,打开新的窗口,打开新的窗口:nPort:Port:设置你的串口号,在“使用使用USBUSB接口接口的仿真器特别说明的仿真器特别说明”中的第四点里确认的n串口号。nBaudrate:Baudrate:设置为5760057600,仿真机固定使用57600bps跟keil通讯。nSerial Inter

7、rupt:Serial Interrupt:选中它。nCache Options:Cache Options: 可以选也可以不选,推荐选它,这样仿真机会运行的快一点。n最后点击ok后确定,再关闭你的设置窗口。(6 6)编译你的程序,选择)编译你的程序,选择Project - Project - Rebuild all target filesRebuild all target files(7 7)编译完毕之后,选择)编译完毕之后,选择Debug-Debug-Start/Stop Debug SessionStart/Stop Debug Session,就进入仿真了。,就进入仿真了。(8 8

8、)装载代码之后,在左下角显示如图:)装载代码之后,在左下角显示如图:Connected to Monitor-51 V1.0Connected to Monitor-51 V1.0表示连接到仿真机,仿真机的版本号为表示连接到仿真机,仿真机的版本号为1.0 1.0 。第二部分 实验指导实验一实验一 单片机单片机I/OI/O口应用实验口应用实验 ( P3.3P3.3口输入口输入 P1P1口输出)口输出)1 1、 实验原理图实验原理图2、实验步骤1 1)P3.3P3.3用插针连至用插针连至K1K1,JU2JU2(P1.0P1.0P1.7P1.7)用用8 8芯线连至芯线连至JLJL(L0L0L7L7)

9、。)。2 2)调试、运行程序)调试、运行程序test1test1中的中的MCUIO.ASMMCUIO.ASM。3 3)开关开关K1K1每拨动一次,每拨动一次,L0L0L7L7发光二极管发光二极管按按1616进制方式加一点亮。进制方式加一点亮。思考题:流水灯程序设计思考题:流水灯程序设计 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 ;延时子程序 D

10、L2: MOV R2, #250 DL1: DJNZ R2,DL1 ;内循环内循环 DJNZ R1,DL2 ;外循环 RET END实验二实验二 单片机单片机I/OI/O口应用实验口应用实验 (工业顺序控制)(工业顺序控制)1 1、 实验内容实验内容n8031的P1.0P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4P3.4为开工启动开关,低电平启动。P3.3P3.3为外故障输入模拟开关,P3.3为0时不断告警,P1.7为报警声音输出。n2 2、实验电路图、实验电路图修改程序:修改程序:n ORG 0000Hn AJMP MAINn

11、 ORG 0013H ;INT1中断入口中断入口n LJMP INT1PROn ORG 0030HnMAIN: SETB EA ;INT1中断初始化中断初始化n SETB EX1n SETB IT1n JB P3.4 ,$ ;当当K1为低电平时运行为低电平时运行n MOV A,#0FEH ;点亮第点亮第1个个LED的初值的初值nLOOP: MOV P1,A ;点亮一位点亮一位LEDn ACALL DELAY_100MS ;延时延时100ms n RL A ;左移一位,为下次显示作准备左移一位,为下次显示作准备n AJMP LOOP ;跳回去循环跳回去循环nINT1PRO: SETB P2.7

12、;int1中断服务程序(蜂鸣器响)中断服务程序(蜂鸣器响)n ACALL DELAYn CLR P2.7n ACALL DELAYn JNB P3.3 , INT1PRO n RETIn nDELAY_100MS: MOV R1,#199 ;延时子程序n DL2: MOV R2, #250 n DL1: DJNZ R2,DL1 ;内循环n DJNZ R1,DL2 ;外循环n RETnDELAY: MOV R1,#50 ;短延时子程序n D2: MOV R2, #50 n D1: DJNZ R2,D1 ;内循环n DJNZ R1,D2 ;外循环n RET n 实验三实验三 继电器控制实验继电器控

13、制实验一、一、 实验原理实验原理 本实验采用本实验采用JZCJZC23F23F型继电器,其控制型继电器,其控制电压为电压为5V5V。继电器电路中一般要在继电。继电器电路中一般要在继电器的线圈两头加一个二极管以吸收继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。器线圈断电时产生的反电势,防止干扰。DD31IN4001JDQ1VCCJZJBQD319013RD341KGNDJKJINVCCL1L2P1.0二、实验内容与步骤二、实验内容与步骤 利用P1口输出高低电平,控制继电器的开合,以实现对外部装置的控制。1、把8031的P1.0插孔接到JIN端。2、把继电器的JZ(中心

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

15、 RET END;实现按键控制继电器通断n ORG 0000Hn AJMP STARTn ORG 0030HnSTART: JNB P1.7, JZD ;P1.7-K1n SETB P1.0 ;高电平常闭n SJMP STARTn JZD: CLR P1.0 ;低电平常开 n SJMP STARTn END实验四 8051串行接口与PC机通信实验一、实验原理一、实验原理 实验时需将实验时需将80518051串行接收信号线串行接收信号线P3.0P3.0(RXDRXD)连到)连到RS232RS232通信区的通信区的RXDRXD232232插插孔,孔,80518051的的P3.1P3.1(TXDTX

16、D)连到)连到RS232RS232通信通信区的区的TXDTXD232232插孔上。插孔上。162738495232/485GNDTXD_232RXD_232C1+1C1-3C2-4C2+5TLIN11TLOT12TLIN10TLOT9C3+6C3-15C4-16RSOT14RSIN13RSOT7RSIN8C4+2UC8RS232CC81224CC82224C17224C18224C190.1A_485B_485VCCGNDSWtTPCRPCCPUP3.1P3.0/串口调试程序/功能比较简单,PC发送一个字符,单片机收到后将收到的字符的下一个字符发送给PC,如PC发一个A,单片机将发还一个B。通

17、信参数为9600,8N1。*/#include #include sbit LED=P13;void INIT_SCI()SCON=0X50;ES=1;EA=1;void INIT_TMR()TMOD=0X21;TH1=0 xfd;/* 4800bps=0 xfa, 9600=0 xfd, 1200=0 xe8, 2400=0 xf4*/TL1=0 xfd;TR1=1;void serial_int(void) interrupt 4 unsigned char data c;if (_testbit_(TI) LED=1; if (_testbit_(RI)/接收中断c=SBUF; LED=

18、0;SBUF=c+1;void main(void)INIT_TMR();INIT_SCI();while(1);n;汇编查询方式 ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV SCON,#50H MOV TMOD,#21H MOV TH1,#0fdH MOV TL1,#0fdH SETB TR1LOOP: JNB RI,LOOP CLR RI MOV R0,SBUF INC R0 MOV SBUF,R0 JNB TI,$ CLR TI SJMP LOOP END实验五实验五 并行并行I/OI/O接口接口82558255应用实验应用实验n一、实验原理一、实验原理

19、n用8255的PA口做输入口,PB口做输出口,控制PA口状态从PB口输出显示。n通过PA口接8个开关K1K8,PB口接8个发光二极管,从PA口读入8位开关的状态送PB口显示,拨动K1K8,PB口上接的8个发光二极管L0L7对应显示K1K8的状态。n实验接线图:D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD5WR36A09A18RESET35CS

20、6UB318255D0D1D2D3D4D5D6D7RDWRA0A1RST8255CSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7RB314.7KVCCY0K1K2K3K4K5K6K7K8L0L1L2L3L4L5L6L7n附:参考程序n org 0000hn ajmp mainn org 0030hnmain: mov sp,#60hn mov dptr,#8003h ;命令口地址命令口地址n mov a, #90h ;命令字:;命令字:PA-输入输入n movx dptr,a ; PB-输出输出

21、nm: mov dptr,#8000h ;PA口地址口地址n movx a,dptr ;读PA口状态 n lcall delayn mov dptr,#8001h ;PB口地址口地址n movx dptr,a ;写;写PB口数据口数据n lcall delayn ajmp mndelay: mov r6,#00hn djnz r6,$n ret n/PA口输入,8255驱动B口LED发光n#include n#include #define COM8255 XBYTE0 x8FFF /*命令口地址*/#define PA8255 XBYTE0 x8FFC /*口A地址*/#define PB8

22、255 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 nn实验六 键盘LED显示控制器应用实验n要求:数码管动态显示,从左到右显示要求:数码管动态显示,从左到右显示不同数字。不同数字。n接线:接线:数码管位选线接数码管位选线接P2P2口;段选线接口;段选线接74L

23、S273 OUT0-OUT7,74LS273 74LS273 OUT0-OUT7,74LS273 的的CSCS接接GNDGNDn#include n#include n#define uchar unsigned charn#define uint unsigned intnsbit WWR=P36;nuchar code DSY_CODE= /共阴数码管共阴数码管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)nnuchar t;nwhile(x-)nn for(t=120

24、;t0;t-);nnnvoid 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; /74LS273上升沿输出数据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);nnn实验七实验七 A/

25、D A/D 转换实验转换实验一、一、 实验原理实验原理 ADC0809:D0-D7ADC0809:D0-D7接接P0P0口(已接好);口(已接好);CS_0809CS_0809接接GND;EOCGND;EOC接接P1.0P1.0口;口;CLK-0809CLK-0809接接500KHZ500KHZIN-026msb2-1212-220IN-1272-3192-418IN-2282-582-615IN-312-714lsb2-817IN-42EOC7IN-53ADD-A25IN-64ADD-B24ADD-C23IN-75ALE22ref(-)16ENABLE9START6ref(+)12CLOCK

26、10UB43ADC0809123UB42A74LS02456UB42B74LS02RDWRD0D1D2GNDD7D0D1D2D3D4D5D6EOC/EOC56U1C74HC04R08094.7KVCCVCCIN0VoutCLK_0809500KHZCS_0809Y0二 参考程序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/* 接线:数码

27、管位选线接P2口;段选线接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 ;nvoid DelayMS(unsigned int x)nnunsigned char t;nwhile(x-)nn for(t=120;t0;t-);nnnvoid display(unsigned char adm) n unsigned char temp;n A3=1;A2=1;A1=1; WWR=0; /

28、位选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=1;A1=1; n P0=tabtem

29、p; /转换为十进制三位显示,个位n A3=1; A2=1;A1=0; /位选n DelayMS(2); n WWR=0;WWR=1; /74LS273上升沿输出选通某个数码管的位选nnvoid 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&0 xF8; /选通道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 nn实验八实验八16X16 LED16X16 LED点阵显示实验点阵显示实验一一 点阵显示原理点阵显示原理本实验点阵图:行接行接LEDLED负极,列线接负极,列线接LEDLED正正极极

温馨提示

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

评论

0/150

提交评论