下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 MCS-51单片机内部资源应用实验3.1 MCS-51并行口实验一、实验目的1. 学习KEIL软件的程序调试方法。2. 学会KEIL C程序设计及调试,重点学会预处理命令、数据类型的定 义。二、实验内容1. 单片机P2 口的P20和P21各接一个开关 K1、K2, P34 P35 P36和P37 各接一只发光二极管。由K1和K2的不同状态来确定发光二极管的点亮。K2K1亮的二极管00L101L210L311L42. 设计一个二进制加1计数器,按一次键,加1,并用4个LED显示计数结 果,加至16时清零重新计数。三、实验步骤1. 设计实验电路,画出电路原理图2. 按照KEIL软件的使用步
2、骤,建立工程。3. 编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成 HEX文件。4. 用STC-ISP下载软件下载HEX文件到单片机系统。5. 运行、调试程序,观察实验结果。四、实验参考电路及参考程序».TAL1XTAL2FISTPSEN ALEEApuorr2 P1,1)T2EXPl 2P12PI 4P1.5pi ePl .7P3.0URXDP3 1/TXDP3.2*jf0P3.3i*IT1P3./T0P3.5/T1P3£JAP3.7JRD-AT09C52894- 5- 6 r' _uPOJOKA.DOP0.1MD1P0.2rtD2P0MD3PQ
3、.4WD4 PO .5*06P0J6JAD6P0.7XAD7P2.O/A8P2.1/A9P22i10P2.3M11P2.4#;12P2313P2.6W14P2 7 rt15vcc1.实验1#in clude<reg51.h> sbit k1 = P2P;sbit k2= P2A1;void mai n()while(1)if(k1 = 0&k2 = 0)P3 = 0xef;if(k1 = 1&k2 = 0)P3 = 0xdf;if(k1 = 0&k2 = 1)P3 = 0xbf;if(k1 = 1&k2 = 1)P3 = 0x7f;2. 实验2#in
4、 clude<reg52.h>sbit key = P3A2;un sig ned char a ;un sig ned char count = 0;void delay (un sig ned int xms)un sig ned int i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);void mai n()while(1)if( key=0 )delay(10);if( key=0)coun t+;while(!key);if( coun t=16)count = 0;a = count;a = a<<4;a = a;P
5、3 = a;五、思考题1.设计一个二进制减1计数器,按一次键,减1,并用4个LED显示计数结 果,减至0时,重新从15开始计数。2.用1个按键控制LED的显示,要求显示3种以上的不同模式。3.2 MCS-51中断系统实验、实验目的1. 掌握单片机的中断系统,学会单片机中断系统的初始化2. 学会单片机外部中断的应用。二、实验内容1. 采用外部中断的方式实现按键控制 1个LED的亮灭。2. 采用外部中断的方式实现4个LED的轮流亮灭。三、实验步骤1. 设计实验电路,画出电路原理图2. 按照KEIL软件的使用步骤,建立工程。3. 编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成 HE
6、X文件。4. 用STC-ISP下载软件下载HEX文件到单片机系统。5. 运行、调试程序,观察实验结果。四、实验参考电路和参考程序U11329303? XTAL1PO.O/ADOXTAL2P0.1/AD1P0.2/AD2P0.3/AD3RSTP0.4/AD4P0.5/AD5ro.6/AD6P0.7/AD7PSENP2.0/A8P2.1/A9P2.2/A10P2.3/A11ALEP2.4/A12EAP2.5/A13Pl ,0)T2P2.6/A14P2.7/A15P3.0JRXDP1.12EXP3.1 /TXDPl .2P3.2/1NT0IP1.3P3.3.-1NT1P1.4P3.4JT0IPI s
7、P3,5rnP1.6P3.6/WR-P1.7P3.7/RCATB9C52951亠一k22D2诙问D3.:22R3U煌2R4Uk221. 实验1#in elude <reg52.h> sbit P34=P3A4;void mai n()IT0=1; /外部中断0连沿触发方式EX0=1; /使能外部中断0EA=1; /开部中断P34=0; /指示灯初始为亮while(1)void in t0() in terrupt 0 P34=!P34;2. 实验2#in elude <reg52.h>sbit P32=P3A2;/外部中断0程序入口void mai n()IT0=1;
8、/外部中断0连沿触发方式EX0=1; /使能外部中断0EA=1; /开部中断while(1);void int0() interrupt 0/ 外部中断 0程序入口static un sig ned char Bit=0;if(Bit>=4)Bit =0;switch(Bit) case 0:P3 = 0xef; break;case 1:P3 = 0xdf; break;case 2:P3 = 0xbf; break;case 3:P3 = 0x7f; break; Bit+;五、思考题1. 采用外部中断的方式实现一个二进制减 1计数器,按一次键,减1,并 用4个LED显示计数结果,减
9、至0时,重新从15开始计数。2. 采用外部中断的方式实现用1个按键控制LED的显示,要求显示3种以 上的不同模式。3.3 MCS-51定时器/计数器实验、实验目的1. 掌握单片机的中断系统、定时器的工作原理2. 学会单片机中断系统、定时器的应用。二、实验内容1. 采用单片机定时器实现1个LED的亮灭,周期为1s。2. 采用单片机定时器实现实现4个LED的轮流亮灭,每个LED点亮时间为1s。三、实验步骤1. 设计实验电路,画出电路原理图2. 按照KEIL软件的使用步骤,建立工程。3. 编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成 HEX文件。4. 用STC-ISP下载软件下载
10、HEX文件到单片机系统。5. 运行、调试程序,观察实验结果。四、实验参考电路和参考程序U1>XTAL1XTAU2RSTP0.0/Al>0 P0.1/AD1 P0.2/AD2 IP0.3/ADG P0.4/ALM IP0.5/AD5 P0.6/AD6 P0.7/AD7P2.O/A0P2.17A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.S/A13P2.B/A14P2.7/A15P1.0/T2P3.0yRXDPIZT2EXP3.irrxoPI .2P9NNT0P1 3P3 3J1NT1PI .4P3.4/T0R15P3 5JT1P1.6P3.6frVRP1
11、 7P3.7/RD1913g1ATG9C5229 加312:. 4 5 810i712亘D1LEDD2D3LEDD4R11677LE厂I2k2R2厂I2K2R3匚n2k2R4I1. 实验1#in clude<reg51.h> #define THC0 0xee #define TLC0 0x00 sbit led0=P3A4;void mai n()TMOD=0x01; TH0=THC0;TL0=TLC0;TR0=1;ET0=1;EA=1;while(1);void timer0_ISR(void) in terrupt 1 _static un sig ned char coun
12、 t=0;TL0=TLC0;TH0=THC0;coun t+;if(cou nt>=200)coun t=0; led0=!led0;2. 实验2#in clude<reg51.h>#defi ne THC0 0xee#defi ne TLC0 0x00void mai n()TMOD=0x01;TL0=TLC0;TH0=THC0;TR0=1;ET0=1;EA=1;while(1);void timer0_ISR(void) in terrupt 1 _static un sig ned char coun t=0,Bit=0; TL0=TLC0;TH0=THC0;coun
13、t+;if(cou nt>=200)coun t=0;if(Bit>=4)Bit=0;P2=P2|0x78;switch(Bit)case 0:P3 = Oxef; break;case 1:P3 = Oxdf; break;case 2:P3 = Oxbf; break;case 3:P3 = 0x7f; break; Bit+;五、思考题1. 设计1个秒计数器,每秒计1次数,在LED上显示出来,计至16清零后重新 计数。2. 在上题基础上用按键控制秒计数器的启停, 按一次键开始计数,按2次停止计 数,按3次又开始计数,。3.4 基于RS232串行口通信实验一、实验目的1. 通过
14、串口实现单片机与pc机的数据通信。2. 了解下位机与上位机通讯过程。二、实验内容使用串口实现单片机与PC机的数据通信。运用串口中断,在PC机的“串口 调试助手”上向单片机发送共阴极数码管的段码,在数码管上显示出对应的数值 或字母,并将段码返回到PC机的“串口调试助手”显示出来。三、实验步骤1. 设计实验电路,画出电路原理图2. 按照KEIL软件的使用步骤,建立工程。3. 编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成 HEX文件。4. 用STC-ISP下载软件下载HEX文件到单片机系统。5. 运行、调试程序。6. 运行“串口调试助手”观察实验结果。四、串行口的概述串行接口 (
15、Serial In terface)是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信 (可以直接利用电话线作为传 输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条 信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点 是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成;成本低但传 送速度慢。串行通讯的距离可以从几米到几千米; 根据信息的传送方向,串行通 讯可以进一步分为单工、半双工和全双工三种。单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART,与串行传送信息的外部设备相连接,或用于通过
16、标准异步通信协议 进行全双工的多机系统也能通过同步方式,使用TTL或CMO移位寄存器来扩充I/O 口。单片机通过管脚RXD( P3.0,串行数据接收端)和管脚 TXD( P3.1,串行数 据发送端)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄 存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被 CPU卖出数据,一个只能被CPU写入数据。串行口内部结构:rTXDtPJ.nEtXD(P3.0)接收 SHUF 渺卜【)发送 SBUF 俾H)定时辭门有门输入移垃潯存轄串行控制寄存器财8 - (S串行口控制寄存器SCONscon控制寄存器,它是一个可位寻址的专用寄存
17、器,用于串行数据的通信 控制,单元地址是98H,其结构格式如下:SCONSM0 SM1SM2 RENTB8RB8TIRI位地址9FH 9EH9DH 9CH9BH9AH99H98H各控制位功能介绍如下:1 .SM0、SM1串行口工作方式控制位工作方式选择:SM0SM1工作方式00方式001方式110方式211方式32. SM2 :多机通信控制位多机通信工作于方式2和方式3,故SM2位主要用于方式2和方式3。在接收状态,当串行口工作于方式 2或3,以及SM2=1时,只有当接收到第 9位数据(RB8为1时,才把接收到的前8位数据送入sbuf,且置位RI发出中 断申请,否则会将接受到的数据放弃。当SM
18、2=0时,就不管第9位数据是0还是 1,都得将数据送入sbuf,并发出中断申请。即此时 RI是否置位由SM2和 RB8 共同决定。工作于方式0时,SM2必须为0。3 .REN:允许接收位REN用于控制数据接收的允许和禁止, REN=1时,允许接收,REN=0时,禁 止接收。4 .TB8 :发送接收数据位8在方式2和方式3中,TB8是要发送的一一即第9位数据位。在多机通信中 同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。5 .RB8 :接收数据位8在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数 据特征。6 .TI :发送中断标志位可
19、寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下, 在发送或停止位之前由硬件置位,因此, TI=1表示帧发送结束,TI可由软件置 0。7. RI :接收中断标志位可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下, 该位由硬件置位,RI=1表示帧接收完成。特殊功能寄存器PCONPCO主要是为CHMO型单片机的电源控制而设置的专用寄存器,在51单片 机中单元地址是87H, PCONt殊功能寄存器结构:PCOND7D6D5D4D3D2D1D0位符号SMODSMOD0LVDFPOFGF1GF0PDIDLSMOD该位与串口通信有关。SMOD=0;串口方式1,2,3时,波
20、特率正常。SMOD=1;串口方式1,2,3时,波特率加倍。五、实验参考电路和参考程序1. 参考电路XTAL1PCI 卯 DOPU .1 JAUlXTAL2rD.ZJADZP0.4/AD4rU a些 mRSTPU-CmADdrU./rKUfP2.0/A8P2.1 /A9P2_2/A1OPSEN ALE 页P2.3/A11F22P1.0/T2 P1 ,in2EKP1.2PI .3P1.4P1 sP1.6P1.7PS.DlfiXlJ P3.1/1X0 PS.NTO- P3.3JNT1P3.4/T01P3£WP37f189士AT89C5229SO3?39.;322122JH101177UnI
21、SSZ D 71N414A5CLQMelJ8vccR610k2. 参考程序#in clude<reg52.h>un sig ned char flag,a;sbit P24=P2A4;sbit P25=P2A5;sbit P26=P2A6;sbit P27=P2A7;void mai n()TMOD=0x20;设置定时器1为工作方式2TH1=0xfd;TH1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;while(1)if(flag=1)ES=O; flag=0;SBUF=a; while(!TI); TI=O;ES=1; void ser() i
22、n terrupt 4 RI=0;P2=0xf0;P0=SBUF; a=SBUF;P24=0;P25=0;P26=0;P27=0; flag=1;六、思考题4.1独立式按键和数码管显示实验一、实验目的1. 掌握单片机的按键、数码管显示器的工作原理。2. 学会单片机独立式按键、数码管显示器的应用。二、实验内容1. 在一个数码管上显示字符“ 1 ”。2. 在4个数码管上显示字符“ 1”、“ 2”、“ 3”、“ 4”。3. 设计一个2位10进制计数器,每秒加1,在LED上显示。三、实验步骤1. 设计实验电路,画出电路原理图2. 按照KEIL软件的使用步骤,建立工程。3. 编写程序,保存文件,将源程序
23、文件加载到工程中,当编译通过之后生成 HEX文件。4. 用STC-ISP下载软件下载HEX文件到单片机系统。5. 运行、调试程序,观察实验结果。四、实验参考电路和参考程序1.参考电路VCCDR8POO>、 POD510岑510R10r i510R114 IS10R124 I510R13彳 I510RU彳 IS10R15P01P02 zFC4 >510DBCDITlTlG 吕、P2412cam1P1A 7、:叽;"'十叨E旳42.参考程序#in elude "reg52.h"#define THCO 0xee#define TLCO 0x0un
24、sig ned char code Dua n=0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/共阴极数码管,0-9段码表un sig ned char Data_Buffer4=1,2,3,4;-/四个数码管显示数值,数组变量定义sbit P24=P2A4;/四个数码管的位码口定义sbit P25=P2A5;sbit P26=P2A6;sbit P27=P2A7;void mai n()TMOD=0x11; TH0=THCO; TL0=TLCO; TR0=1; ET0=1;/定时器0初始化EA=1;while;void timerO()
25、 in terrupt 1static un sig ned char Bit=O;/静态变量,退出程序后,值保留THO=THCO;TLO=TLCO;Bit+;if(Bit>=4)Bit=0;P2=0xf0;/先关位码P0=DuanData_BufferBit;/ 开段码switch(Bit)/ 送位码case 0: P24=0;break;case 1: P25=0;break;case 2: P26=0;break;case 3: P27=0;break;五、思考题用按键进行显示模式选择键,实现上述实验中3个显示画面的切换4.2 矩阵键盘实验一、实验目的1. 掌握单片机的矩阵键盘的工
26、作原理和使用方法。2. 认识单片机独立按键与矩阵键盘的区别。二、实验内容1. 独立按键独立按键与单片机连接时,每一个按键都需要一个独立的 I/O 口,若某单 片机系统需要较多按键,如果使用独立按键便会占用较多的I/O 口资源。单片机 系统中I/O 口资源往往比较宝贵,当用到多个按键时,为了节省I/O 口,我们引 入矩阵键盘。2. 矩阵键盘我们以4x4矩阵键盘为例讲解其工作原理和检测方法。将16个按键排成4行4列,第一行将每个按键的一段连接在一起构成行线,第一列将每个按键的另外一段连接在一起构成列线,这样一共有4行4列共8根线,我们将这8根线连 接到单片机的8个I/O上,通过程序扫描键盘就可以检
27、测到 16个键。通过这种 方法我们也可以实现5行5列25个键、6行6列36个键等。3. 按键的特点与去抖机械式按键在按下或释放时,由于机械弹性性作用的影响,通常伴随有一 定时间的机械抖动,然后其触点才稳定下来。在抖动期间检测按键的通与断状态, 可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况 是不允许出现的。为了克服按键机械抖动所导致的检测错误, 必须采取去抖动措 施,可从硬件、软件两方面予以考虑。一般来说,在键数较少时,可采用硬件去 抖,而当键数较多时,采用软件去抖。四、实验参考电路和参考程序1. 参考电路2.参考程序#in clude<reg52.h>#d
28、efi ne uchar un sig ned char#defi ne uint un sig ned intsbit P24=P2A4;/四个数码管的位码口定义sbit P25=P2A5;sbit P26=P2A6;sbit P27=P2A7;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delay( uint xms)uint i,j;for(i=xms;i>0;i-) for(j=110;j>0;j-);void di
29、splay(uchar num)P0=table nu m;P24=1;P25=1;P26=1;P27=1; void matrixkeysca n()uchar temp,key;P3=0xfe;temp=P3; temp=temp&0xf0; if(temp!=0xf0)delay(10);temp=P3;temp=temp&0 xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xee:key=0;break;case 0xde:key=1;break;case 0xbe:key=2;break;case 0x7e:key=3;brea
30、k;while(temp!=0xf0) /等待并确认按键释放temp=P3; temp=temp&0 xf0; display(key);/显示按键所表示的数字/第一排按键检测P3=0xfd; temp=P3; temp=temp&0xf0;if(temp!=OxfO)delay(10);temp=P3;temp=temp&O xfO;if(temp!=OxfO)temp=P3;switch(temp)case Oxed:key=4;break;case 0xdd:key=5;break;case 0xbd:key=6;break;case 0x7d:key=7;bre
31、ak;while(temp!=OxfO) /等待并确认按键释放temp=P3; temp=temp&0 xfO; display(key);/显示按键所表示的数字/第二排按键检测P3=0xfb;temp=P3;temp=temp&0 xfO;if(temp!=OxfO)delay(1O);temp=P3;temp=temp&0 xfO;if(temp!=OxfO)temp=P3;switch(temp)case 0xeb:key=8;break;case 0xdb:key=9;break;case Oxbb:key=1O;break;case 0x7b:key=11;b
32、reak;while(temp!=OxfO) /等待并确认按键释放temp=P3; temp=temp&0 xfO; display(key);/显示按键所表示的数字/第三排按键检测P3=0xf7;temp=P3;temp=temp&0 xfO;if(temp!=OxfO)delay(10);temp=P3;temp=temp&0 xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xe7:key=12;break;case 0xd7:key=13;break;case 0xb7:key=14;break;case 0x77:key=
33、15;break;while(temp!=0xf0) /等待并确认按键释放temp=P3; temp=temp&0 xf0; display(key);/显示按键所表示的数字/第四排按键检测void mai n()P0=0;P24=0;P25=0;P26=0;P27=0;while(1)matrixkeysca n();五、思考题4.3 LCD液晶显示实验一、实验目的1. 学习LCD液晶显示的编程方法,了解LCD液晶显示模块的工作原理。2. 掌握LCD液晶显示模块显示数字与英语的 C语言编程方法。二、实验内容1. 编写程序,实现字符的静态和动态显示。液晶的初始化、字符显示程序可 参考S
34、TC官网上的程序文件。2. 编写程序,利用功能键实现字符的纵向滚动和横向滚动等效果显示。三、实验步骤1. 设计实验电路,画出电路原理图2. 按照KEIL软件的使用步骤,建立工程。3. 编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成 HEX文件。4. 用STC-ISP下载软件下载HEX文件到单片机系统。5. 运行、调试程序,观察实验结果。四、LCD12864既述并行接口:管脚号管脚名称电平管脚功能描述1VSS :0V电源地2VCC+3V/+5V电源正3V0-对比度(亮度)调整4RS(CSH/LRS=“H ,表示DB7DB0为显示数据RS=“L” ,表示DB7DB0为显示指令数据
35、5R/W(SID)H/LR/W“H ,E= “,数据被读到 DB7DB0R/W“L” ,E= “FHL” , DB7 DB0 的数据被写到 IR 或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线:14DB7H/L三态数据线15PSBH/LH: 8位或4位并口方式,L:串口方式(见注释1)16NC-空脚:17/RESETH/L复位端,低电平有效(见注释2)18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V(见注释3)20
36、KVSS背光源负端(见注释3)*注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定咼电平,也可以将模块上的J8和“ VCC用焊锡短接。*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端 悬空。*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。控制器接口信号说明:1、1、RS R/W的配合选择决定控制界面的 4种模式:RSR/W功能说明LLMPI写指令到指令暂存器(IR)丄 H读出忙标志(BF)及地址记数器(AC的状态HLMPU写入数据到数据暂存器(DRHHMPU从数据暂存器(DR中读出数据2、E信号E状态执行动作结果高一- 氐I/O缓冲>
37、DR :配合/W进行与数据或指令高DR>I/O 缓冲配合R进行读数据或指令低/低高无动作忙标志:BFBF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受 外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据利用STATUS RDt令,可以将BF读到DB7总线,从而检验模块之工作状态. 字型产生R0( CGRQM字型产生R0( CGROM提供8192个此触发器是用于模块屏幕显示开和关的 控制。DFF=1为开显示(DISPLAY ON),DDRA啲内容就显示在屏幕上, DFF=0为 关显示(DISPLAY OFF)DFF 的状态是指令 DISPLAY ON
38、/OF和 RST信号控制的。 显示数据RAM(DDRA)模块内部显示数据RAM!供64X 2个位元组的空间,最多可控制 4行16字(64个字)的中文字型显示,当写入显示数据 RAM寸,可分别显示CGRO与 CGRAM 的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGRO的中文字型,三种字型的选择,由在 DDRA中写入的编码选择,在 0000H 0006H的编码中(其代码分别是 0000、0002、0004、0006共4个)将选择CGRAM 的自定义字型,02H- 7FH的编码中将选择半角英数字的字型,至于 A1以上的编 码将自动的结合下一个位元组,组成两个位元
39、组的编码形成中文字型的编码BIG5 (A140-D75F),GB(A1A0-F7FFH。 字型产生RAM(CGRAM)字型产生RAM提供图象定义(造字)功能,可以提供四组16X 16点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRA中,便可和CGRO中的定义一样地通过 DDRA显示在屏幕中。 地址计数器AC地址计数器是用来贮存 DDRAM/CGRAM一的地址,它可由设定指令暂存器来 改变,之后只要读取或是写入DDRAM/CGRAM值时,地址计数器的值就会自动加 一,当RS为“0”时而R/W为“T时,地址计数器的值会被读取到 DB6DB0 中。 光标/闪烁控制电路此模块
40、提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRA中的 光标或闪烁位置。五、实验参考电路和参考程序1. 参考电路:LCD1R110k<TEXT?1415 両P35r3P託4P375PIT6P028F旳g丙 41CIP05rT尸呻12叩713LCD 129642. 参考程序:#in elude <reg52.h>#i nclude vintrin s.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intuchar table1="zha ngsa n"uchar table2=
41、"2013123456"uchar table3="重庆科技大学"uchar table4="电气与信息工程" sbit RS=P3A5;sbit RW=P3A6;sbit E=P3A7;sbit PSB=PM5;void write_com(uchar com); void write_dat(uchar dat); void in it(void);void display(void);void delay( uint ms)uint i,j;for(i=ms;i>0;i-)for(j=110;j>0;j-); voi
42、d mai n()in it();display。;while(1);void write_com(uchar com) _RW=0;RS=0;delay(5);P0=com;E=1;delay(5);E=0;delay(5);void write_dat(uchar dat) _RW=0;RS=1; delay(5);PO=dat;E=1; delay(5);E=0; delay(5);void in it(void)delay(10); write_com(0x30); delay(10); write_com(0x30); delay(10); write_com(0x0f); dela
43、y(10); write_com(0x01); delay(10); write_com(0x06); delay(10);void display(void)uchar i;write_com(0x80);for(i=0;i<8;i+) write_dat(table1i); delay(10);write_com(0x90);for(i=0;i<10;i+) write_dat(table2i); delay(10);write_com(0x88);for(i=0;i<12;i+)write_dat(table3i); delay(10);write_com(0x98);
44、 for(i=0;i<14;i+)write_dat(table4i); delay(10);六、思考题4.4开关量输入/输出实验4.5并行接口扩展实验一、实验目的1. 了解并行I/O接口的扩展方法;2. 了解并掌握可编程接口芯片8255A的工作原理、编程方式和使用方法。二、实验内容1. 编写程序,利用可编程接口芯片 8255A实现流水灯的控制。三、实验步骤1. 设计实验电路,画出电路原理图2. 按照KEIL软件的使用步骤,建立工程。3. 编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成 HEX文件。4. 用STC-ISP下载软件下载HEX文件到单片机系统。5. 运行、调
45、试程序,观察实验结果。四、8255A芯片概述8255是In tel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O 口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功 能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时 的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A B C 口。由于8255可编程,所以必须具有逻辑控制部分,因而 8255内部结构分为3个部 分:与CPU®接部分、与外设连接部分、控制部分。各引脚功能如下:RESET复位输入
46、线,当该输入端处于高电平时,所有内部寄存器(包括控制 寄存器)均被清除,所有I/O 口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/cs=o时,表示芯片被 选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即 CPU从 8255 读取信息或数据。WR写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU各数据或控制字写入8255。DO- D7:三态双向数据总线,8255与CP
47、U数据传送的通道,当CPU执行输入 输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据 总线传送。8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以 下三种方式下工作。方式 0基本输入输出方式; 方式 1选通输入 /出方式; 方式2双向选通输入/输出方式;PAO-PA7:端口 A输入输出线,一个8位的数据输出锁存器/缓冲器,一个 8位的数据输入锁存器。工作于三种方式中的任何一种;PB(- PB7:端口 B输入输出线,一个8位的I/O锁存器,一个8位的输入输 出缓冲器。不能工作于方式二;PC(-PC7:端口 C输入输出线,一个8位的数据输出锁存器/缓冲器
48、,一个 8位的数据输入缓冲器。端口 C可以通过工作方式设定而分成 2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口 A和端口 B配合使用,可作 为控制信号输出或状态信号输入端口。不能工作于方式一或二。A1,A0:地址选择线,用来选择8255的PA 口 ,PB 口 ,PC 口和控制寄存器.当A1=0,A0=0时,PA 口被选择;当A1=0,A0=1时,PB 口被选择;当A1=1,A0=0时,PC 口被选择;当A仁1.A0=1时,控制寄存器被选择五、实验参考电路和参考程序1.参考电路:01/-1RpCH33p(ES2p0331ip0430p(K2Sp062ST0727p375p33
49、6p209p216 1234 5 血TDiRJOXES-s DDDDDDDD 臣一训AIARc心"ZSBJO123J-587 O12345B7 PA映PAPAPAPAPAPA阳阳Fe阳pepeFBFSRcpc比pcpcpcpcpcD3*VSLEDj9IR789o1234_i d- 5 6 7 3 2 1 o I t - J 2 2 2 i -L 1 1 J J It-)7/D2MW-LEDE4"w-血u10kokokoko'ok6 >RLJ1OR8W2. 参考程序:#in clude<reg52.h>#define uint un sig ned
50、int#define uchar un sig ned char sbit A0=P2A0;sbit A1= P2A1; uchar pdata in _reg;void delay(uchar ms)uint i,j; for(i=ms;i>0;i-) for(j=220;j>0;j-); void mai n() uchar temp;uchar i;A0=1;/设置控制寄存器A1=1;in _reg=0x80;/控制字 工作方式操作80表示PA为输出口A0=0;A1=0;/设置PA寄存器while(1) temp=OxO1; for(i=8;i>0;i-) in_reg
51、=temp; temp=temp<<1; delay(IOOO); temp=Ox8O; for(i=8;i>O;i-)in_reg=temp; temp=temp>>1; delay(IOOO);六、思考题4.6并行模/数转换器接口实验一、实验目的1. 掌握A/D转换与单片机的接口方法;2. 了解A/D芯片ADCO8O9专换性能及编程方法;3. 通过实验了解单片机如何进行数据采集。二、实验内容1. 利用ADC0809做 A/D转换器,电位器提供模拟电压信号,编写程序,将模 拟量转换为数字量,同时用数码管显示模拟量转换结果;2. 用万用表测量输入的模拟电压,与转换后的数字量进行比较。三、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《工程设备复习》课件
- 心电信号识别技术-洞察分析
- 文物保护国际合作与交流-洞察分析
- 文本转换的语义依赖规则研究-洞察分析
- 形式化方法在中缀转后缀转换中的应用研究-洞察分析
- 物联网安全防护-第1篇-洞察分析
- 特种水泥性能优化-洞察分析
- 初级职称个人专业技术工作总结范文(12篇)
- 医学图像增强与降噪算法-洞察分析
- 网络切片技术在行业专网的应用研究-洞察分析
- 成人经鼻高流量湿化氧疗临床规范应用专家共识解读
- 《外伤性颅内积气》课件
- 感染性休克指南解读
- 老年大学教学工作计划
- 2025届河北省石家庄市普通高中学校毕业年级教学质量摸底检测英语试卷
- 国家开放大学22379丨网络技术基础(统设课)期末终考题库
- 统编版(2024新版)七年级上册道德与法治第四单元综合测试卷(含答案)
- 十四五养老规划政策解读
- 北京市海淀区2023-2024学年四年级上学期语文期末试卷
- 南京审计大学《中级财务会计》2023-2024学年第一学期期末试卷
- 2024道路设计计算书
评论
0/150
提交评论