




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及接口技术实验指导书2019年3月目 录一、实验环境介绍- 1 -1.1Keil集成开发环境介绍- 1 -1.2SUN ES59PA实验仪介绍- 10 -二、实验内容- 12 -实验一 集成调试软件使用练习- 12 -实验二 C51程序语言编程实验(跑马灯)- 15 -实验三 外部中断实验- 17 -实验四 定时器/计数器应用实验- 21 -实验五 双机串行通信实验- 25 -实验六 交通灯控制综合实验- 28 -实验七 I/O口扩展实验- 29 -实验八 串并/并串实验- 32 -实验九 键盘及8位数码管显示实验- 37 -实验十 并行D/A和A/D转换实验- 43 -实验十一 L
2、CD1602显示屏实验- 50 -实验十二 综合实验- 56 -一、 实验环境介绍1.1 Keil集成开发环境介绍Keil C51集成开发环境是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编语言、C语言的程序设计,具有强大的软件调试功能,生成的程序代码运行速度快,所需存储器空间小,可与汇编语言相媲美,而且界面友好,易学易用。(1) 建立工作文件夹在规定的盘符下建立一个以自己学号命名的文件夹,作为工作文件夹,将实验所有的文件都存放在该文件夹中。(2) 进入集成开发环境双击桌面KEILC51快捷图标,进入集成开发环境。(版本不同,图标会有区别)(3) 创建工程项目(Proj
3、ect)单击菜单栏“Project”,出现下拉菜单,再单击“New Project”弹出“Create New Project”对话框;在“保存在”下拉列表中选择自己的工作文件夹,在“文件名”文本框中键入工程名(中英文名均可,不需要键入扩展名,扩展名默认为 .uv2),单击“保存”按钮,自动弹出“为目标target 1选择设备”对话框,选择目标芯片型号;选择Atmel公司的AT89C51芯片,单击“确定”按钮;点击确认按钮后,会出现是否复制启动代码到项目的对话框,如果需要复制启动代码到新建的工程,单击“是”,不需要就单击“否”。单击“否”,这时新的Project已经建立完毕。(4) 新建源程序
4、单击“新建文件”按钮,在弹出的文本窗口中输入C语言源程序;输入完毕后,单击“保存”按钮,弹出“另存”对话框;确认“保存在”为自己的工作文件夹,在“文件名”文本框中键入源程序文件名和扩展名*.c(若是汇编语言源程序的扩展名为 .ASM);单击“保存”按钮,关闭对话框,保存源程序。(5) 将源程序添加到工程中右键单击“工程窗口”中的“Source Group 1”,在弹出的菜单中选择“Add File toSource Group1”; 弹出“Add Files toSource Group1”对话框;选中欲添加的源程序,单击“Add”按钮,源程序添加到工程中。但是,该对话框并不关闭,等待用户继续
5、添加其他程序。添加完毕后,单击“关闭”按钮,关闭对话框。这时“项目窗口”中,“Source Group 1”下将出现该源程序文件名。(6) 构造(build)单击“构造所有目标文件夹”按钮,对源程序进行编译和链接,构造结果将在“build”窗口中显示。如果程序有语法错误,则会指出错误类型及所在行的提示信息。双击错误信息行,对程序进行修改; 修改后,重新构造,直至没有任何语法错误;(7) 开始调试单击“开始/停止调试”按钮,进入调试状态。在调试状态下,“构造工具栏”变为“调试工具栏”。通过单步运行,查看左侧寄存器窗口和右下角存储器窗口里相应单元的值,判断程序是否运行正确。若不正确,找出问题所在,
6、单击“开始/停止调试”按钮,停止调试,进入编辑状态,修改程序,重新构造、再次调试。(8) 查看寄存器进入调试状态后,“工程窗口”变为“寄存器窗口”,可以查看各常用寄存器的值。(9) 查看存储器单击“存储器窗口”按钮,打开存储器窗口;该窗口共有4个标签,可显示4块存储器空间。单击一个标签,按下表在地址栏中键入要查看的存储器单元的类型和地址。片内数据存储器D或I : 地址片外数据存储器X : 地址程序存储器C : 地址例如:要查看片内数据存储器30H单元的值,则键入I:30H,点回车;若要人为修改某存储单元的值,可右键单击该单元,在弹出的菜单中选择“更新存储器”,在弹出的文本框中输入该单元的新值,
7、单击“确定”即可。(有些版本可以双击该单元后输入新值,即可完成修改)(10) 单步运行在调试状态下,源程序的左边有一个黄色的箭头,指示当前程序执行的位置,即将要执行的指令。单击“单步”按钮,程序执行一条指令,黄色箭头下移一行。寄存器和存储器的值的变化情况显示在相应位置。执行过的指令左边用一绿色方块标记。(11) 运行到光标行若想快速、连续执行若干条指令,可将光标定位在这些指令的最后一条指令处,单击“运行到光标行”按钮。(12) 全速运行对于有些程序,只有全速运行才能实现其功能,这时只需单击“运行”按钮即可;若要暂停运行,单击“暂停”按钮。(13) 程序复位若要重新开始执行程序,可单击复位按钮,
8、使PC=0000H。(14) 重新开始下一个实验点击单击菜单栏“Project”,出现下拉菜单,单击“close Project”,然后重新新建工程,重复上述所有操作,进行下一个实验。 对于初学者,一个工程中一般只包含一个源程序,应将多余的源程序删除。(15) 选择调试方式(使用实验箱时需要设置)单击“目标选项”按钮,弹出“目标Target 1属性”对话框;单击“debug”标签,选择调试方式。若使用软件模拟方式,则选中左侧“S 使用仿真器”,其他选项保持默认状态,不要随意更改;此方式用于纯软件实验,如实验一;若要连接实验箱进行实验,则需使用硬件仿真器调试,这时选中“USE”,并在其后的下拉列
9、表中选择“STAR Emulater Driver”,再选中“run to main()”,其他选项保持默认状态,不要随意更改;点击右边Settings,弹出新窗口,选择最后一个STAR51PH+仿真器型号;点击右侧Set Emulater,在新弹出的窗口中选择ATMEL公司的89C51;随后依次点击窗口的OK或者确定,直到将弹开的设置窗口全部关闭,此时完成了硬件仿真器的设置。注意:该设置用于与硬件实验箱相连进行的实验,在设置好仿真器后,需要重新构造之后才能进入调试。1.2 SUN ES59PA实验仪介绍SUN ES59PA实验仪提供了几乎所有最实用、新颖的接口实验,提供详尽的C、汇编例子程序
10、、使用说明,不但可以满足各大专院校进行单片机课程的开放式实验教学,也可以让参加电子竞赛的学生熟悉各种类型的接口芯片,做各种实时控制实验,轻松面对电子竞赛;也可以让刚参加工作的电子工程师迅速成为高手。1、传统实验74HC244、74HC273扩展简单的I/O口;蜂鸣器驱动电路;74HC138译码;74HC164串并转换;74HC165并串转换实验;RS232和RS485接口电路;8255扩展实验;128*64液晶点阵显示模块;16X16LED点阵显示模块;配置了4 * 4键盘;32K数据RAM读写,使用C51编制较大实验成为可能;并行AD实验;并行DA实验;直流电机控制;步进电机控制;PWM脉宽
11、调制输出接口;继电器控制实验;逻辑笔;打印机实验;电子琴实验;74HC4040分频得到十多种频率;另外提供8个拨码盘、8个发光二极管、8个独立按键;单脉冲输出;普通光耦实验、高速光耦实验;8255键盘LED实验。SUN ES598PA特有功能:主板允许P0、P2口作I/O口线使用。2、新颖实验录音、放音模块实验;光敏实验;压力传感器实验;频率计实验;接触式IC卡读写实验;非接触式IC卡读写实验(扩展模块)、触摸屏实验(扩展模块)、NAND FALSH实验(扩展模块)3、串行接口实验1)一线DALLAS公司的DS18B20测温实验2)I2C实时钟PCF8563、串行EEPROM 24C02A、键
12、盘LED控制器实验3)SPI串行D/A、串行A/D实验、串行EEPROM及看门狗X50454)Microwire总线的串行EEPROM AT93C465)红外通信实验6)CANCAN2.0(扩展模块)7)USBUSB1.1、USB2.0、USB主控(扩展模块)8)以太网10M以太网模块(扩展模块)9)蓝牙(扩展模块)4、闭环控制1)门禁系统实验2)光敏实验或压力传感器实验3)旋转图形展现实验4)RTX-51 Real-Time OS5)直流电机转速测量,使用光电开关或霍尔器件测量电机转速6)直流电机转速控制,使用光电开关或霍尔器件精确控制电机转速7)数字式温度控制,通过该实验可较好认识控制在实
13、际中的应用5、实验扩展区,提供扩展实验接口,用户可自行设计实验可以提供USB1.1、USB2.0、USB主控、10M以太网接口的TCP/IP实验模块、CAN总线、非接触式IC卡、触摸屏模块、GPS、GPRS、F/V V/F、超声波测距、测速、电流传感器、双通道虚拟示波器、虚拟仪器、读写优盘、CPLD、FPGA、27M无线数据、800/900M无线数据、2.4G无线数据、湿度、有害气体、热释红外传感器实验模块。6、EDA CPLD、FPGA可编程逻辑实验 逻辑门电路:与门、或门、非门、异或门、锁存器、触发器、缓冲器等;半加器、全加器、比较器、二、十进制计数器、分频器、移位寄存器、译码器;常用74
14、系列芯片、接口芯片实验;8段数码块显示实验;16x16点阵式LED显示实验;串行通信收发;I2C总线等二、 实验内容实验一 集成调试软件使用练习1.实验目的(1) 熟悉C51语言及特点;(2) 掌握使用C51语言进行顺序、分支、循环结构的程序设计方法;(3) 熟悉使用Keil集成开发环境进行程序的仿真和调试。2.预习内容(1) 预习C51语言的数据类型、存储类型、基本运算、常用语句等;(2) 预习C51语言进行顺序、分支、循环结构的程序设计方法;(3) 预习Keil集成开发环境的使用步骤;(4) 将实验内容中程序写上注释。3.实验内容(1) 顺序语句:完成指定地址单元中内容的互换。程序清单:#
15、define uchar unsigned chardata uchar XA _at_ 0x20;data uchar XB _at_ 0x21;void main( )uchar temp;XA=0x33;XB=0x44;temp=XA;XA=XB;XB=temp;(2) 分支语句::判断两个数的大小,大数存到片内RAM 20H地址单元。程序清单:#define uchar unsigned chardata uchar a _at_ 0x20;uchar a,b=3,c=9;void main () if(b=c) a=b; elsea=c;(3) 循环语句:数据块的拷贝。程序清单:#d
16、efine uchar unsigned char#define uint unsigned intvoid main() uchar *Ptr = 0x30; uchar xdata *PtrSOUSE = 0x2000; uint i; for(i = 0;i10;i+) *(Ptr+i) = *(PtrSOUSE+i); (4) 查表实验:平方表的查询。程序清单:#define uchar unsigned charuchar result;uchar code square =0,1,4,9,16,25,36,49,64,81; uchar fuction(uchar number)
17、return squarenumber ; void main( ) result= fuction(7) ; 4.实验器材 计算机1台5.实验步骤(1) 新建工程;(2) 输入源程序;(3) 将源程序添加到工程中;(4) 构造;(5) 运行程序;(6) 观察记录运行过程和结果。6.思考与拓展(1)完成片外RAM2000H和片外RAM2001H中的两个数据的交换;(2)用while语句完成自然数150的累加和;(3)完成20H24H内存单元中的数据求和;(原内存单元数据自行输入)(4)在查表实验基础上完成两数平方和的计算。7.实验报告要求(1) 列出所完成实验的源程序,并加以注释;(2) 结构
18、复杂的程序,画出流程图;(3) 对实验过程和结果进行分析;(4) 写出心得体会。实验二 C51程序语言编程实验(跑马灯)1.实验目的(1) 进一步掌握C51语言的编程;(2) 进一步理解I/O口的工作原理;(3) 学会51单片机在最小系统应用模式下并行IO口的使用方法;(4) 掌握IO口应用程序的设计方法。2.预习内容(1) 进一步预习C51语言基础知识;(2) 进一步熟练掌握Keil集成开发环境的使用步骤;(3) 预习单片机I/O口的结构和工作原理;(4) 将实验内容中程序写上注释。3.实验内容(1) 控制一盏发光二极管程序清单:#include sbit P1_0=P10;sbit P1_
19、1=P11;void main( ) while(1) P1_1=P1_0; (2) 跑马灯(从亮1盏到全亮)程序清单:#include #define uchar unsigned char#define uint unsigned intvoid delay(uint i) uchar j; for(i; i 0;i-) for(j = 255;j 0; j-); void main( ) uchar k,dat; while(1) dat=0xfe; for(k=0;k8;k+) P1=dat; dat=dat1; delay(800); 4.实验器材 (1)计算机1台 (2)仿真器1台
20、 (3)实验箱1台5.硬件连线1盏灯控制:(用单线)开关 P1.0; P1.1 发光二极管8盏灯控制:(用排线)开关 P1; P2 发光二极管6.实验步骤(1) 关闭实验箱电源,按题目要求接线;(2) 打开实验箱电源,注意确认电源指示灯正常点亮;(3) 进入集成开发环境,新建工程,注意必须使用硬件仿真器调试方式;(4) 输入程序,构造,单步运行,检查系统是否工作正常;(5) 全速运行程序,拨动开关,控制发光二极管的亮、灭;(6) 停止运行程序,退出调试状态,关闭实验箱电源,改变接线,做其他实验。7.思考与拓展(1) 如何实现多个开关控制多个发光二极管?(2) 如何实现8个发光二极管每次只亮一个
21、的循环?(3) 如何实现8个发光二极管从左到右依次点亮,再从右到左依次点亮,往复循环?实验三 外部中断实验1.实验目的(1) 进一步了解外部中断的结构和工作原理;(2) 掌握外部中断的应用程序设计方法。2.预习内容(1) 预习单片机中断系统的结构和工作原理;(2) 预习中断系统的编程步骤和编程思路;(3) 将实验内容中程序写上注释。3.实验内容编写并调试程序,利用脉冲按钮产生中断,观察外部中断的响应、处理及返回过程。(1)单一外部脉冲中断程序清单:#include#define uchar unsigned chardata uchar b _at_ 0x20;void int0( ) int
22、errupt 0b=ACC;void main( ) EA=1; EX0=1; IT0=1; while(1) ACC=1; ACC=2; ACC=3;(2)中断控制发光二极管程序清单:#includesbit LED=P10;void int0( ) interrupt 0 LED = LED;void main( ) EA=1; EX0=1; IT0=1; while(1); (3)多级中断#includesbit RED=P10;sbit GREEN=P11;#define uchar unsigned char#define uint unsigned intvoid delay(ui
23、nt i) uchar j; for(i; i 0;i-) for(j = 255;j 0; j-); void int0( ) interrupt 0while(1)RED=RED;delay(800);void int1( ) interrupt 2GREEN=GREEN;void main( ) EA=1; EX0=1; IT0=1; EX1=1; PX1=1; IT1=1; while(1); 4.实验器材(1)计算机1台 (2)仿真器1台 (3)实验箱1台5.硬件连线脉冲输出 (P3.2) 引脚拨码开关 INT1 (P3.3) 引脚(多级中断实验)P1.0 发光二极管P1.1 发光二
24、极管(多级中断实验)6.实验方法实验(1)观察中断响应和返回的方法:将光标定位在中断服务程序中 b=ACC;指令前,按下“运行到光标行”按钮,程序全速运行,等待外部中断。推动脉冲拨码开关,产生下降沿,程序将中断运行,返回监控状态。继续单步执行程序,观察中断程序的执行及中断返回过程。查看累加器和20H单元的值,可知主程序的中断位置,返回时观察程序执行箭头指到哪条指令。重复进行实验,中断位置会不同。7.拓展与思考(1) 设计一个实验,拨动单脉冲信号触发中断,LED灯亮一段时间后返回。(2) 如何通过实验验证外部中断是低电平触发方式?(3) 多级外部中断时如何将外部中断0的优先级高于外部中断1?调试
25、实验程序如何修改?实验四 定时器/计数器应用实验1.实验目的(1) 进一步了解定时器计数器的结构和工作原理;(2) 掌握定时器计数器的应用程序设计方法。2.预习内容(1) 预习单片机定时器/计数器的结构和工作原理;(2) 预习定时/计数器的编程步骤和编程思路;(3) 将实验内容中程序写上注释。3.实验内容编写定时程序,用发光二极管观察不同频率时的闪烁现象。(1)控制发光二极管闪烁程序清单:(查询方式)#include sbit LED=P10;void main( ) TMOD=0x10; TR1=1; while(1) TH1=0x80; TL1=0x00; do while(!TF1);
26、LED =LED; TF1=0; 程序清单:(中断方式)#include sbit LED=P10; void main( ) TMOD=0x10; TH1=0x80; TL1=0x00; TR1=1; EA = 1; ET1=1; while(1) ; void Time1_Int() interrupt 3 TH1=0x80; TL1=0x00; LED=LED; (2)秒定时实验程序清单:#include #define uchar unsigned charsbit LED=P10;uchar i=100; void main( ) TMOD=0x10; TH1=55536/256;
27、TL1=55536%256; TR1=1; EA=1; ET1=1; while(1); void timer1 ( ) interrupt 3 TH1=55536/256; TL1=55536%256; i-; if(i=0) LED=LED; i=100; 编写计数程序,用单脉冲模拟外部脉冲,并记录外部脉冲的个数。(3)计数器实验程序清单:#include sbit LED=P10;void main( ) TMOD=0x06; TH0=0xfd; TL0=0xfd;TR0=1; EA = 1; ET0=1; while(1) ; void timer0 ( ) interrupt 1 L
28、ED=LED; 4.实验器材(1) 计算机1台 (2)仿真器1台 (3)实验箱1台5.硬件连线P1.0 发光二极管外部计数实验:脉冲输出 T0 (P3.4) 引脚6.实验方法定时器实验:全速运行程序,观察发光二极管的闪烁现象。计数器实验:全速运行程序,拨动脉冲按钮,每发出3个脉冲,观察发光二极管状态变化。7.思考与拓展(1) 如何改变LED闪烁的频率?(2) 计数初值变大,闪烁的频率将如何变化?(3) 如何选用定时方式2进行LED的秒闪烁?(4) 用作计数器时,若要求每发出5个脉冲,发光二极管改变一次状态,如何修改程序?(5) 如果改为用计数器1计数,接线和程序要如何修改?实验五 双机串行通信
29、实验1.实验目的(1) 进一步了解串行口的结构和工作原理;(2) 掌握串行口的应用程序设计方法。2.预习内容(1) 预习单片机串口的结构和工作原理;(2) 预习串行通信的编程步骤和编程思路;(3) 将实验内容中程序写上注释。3.实验内容利用单片机串行口的工作方式2,实现两个实验台之间的串行通讯。(1)点对点通信实验程序清单:发送(查询方式)#include void main() SCON = 0x80; SBUF=0x07; while( TI=0 ) ; TI=0; while(1); 程序清单:接收(查询方式)#include void main() SCON = 0x90; while
30、( RI =0) ; RI=0; ACC= SBUF; REN=0; while(1); (2)点对点多数据发送程序清单:发送(查询方式)#include #define uchar unsigned char;uchar i;uchar buf5=0x01,0x02,0x03,0x04,0x05;void main() SCON = 0x80; for(i=0;i5;i+) SBUF=bufi ; while( TI=0 ) ; TI=0; while(1); 程序清单:接收(查询方式)#include #define uchar unsigned char;uchar i;uchar da
31、ta buf5;void main() SCON=0x90; for(i=0;i5;i+) while( RI=0 ) ; RI=0; bufi=SBUF; REN=0; while(1); 4.实验器材(1)计算机1台 (2)仿真器1台 (3)实验箱1台5.硬件连线甲机 乙机TXD (P3.1) RXD (P3.0)RXD (P3.0) TXD (P3.1) GND GND6.实验方法接收方先运行,把光标定位在 REN=0; 指令处,按“运行到光标行”按钮等待接收数据;发送方后运行,把光标定位在 TI=0; 指令处,按“运行到光标行”按钮,程序很快运行结束,数据发送完毕;(发送方也可以全速运
32、行,发送完毕)接收方接收到数据后,程序中断运行,返回监控状态,查看ACC单元中的内容是否为发送方发送的数据。7.思考与发挥(1) 发送方是否可以先运行?(2) 将发送接收程序修改为中断方式完成。(3) 设计一个实验,用甲机的开关控制乙机的LED灯。实验六 交通灯控制综合实验1.实验目的(1) 进一步掌握定时器的编程方法;(2) 掌握单片机应用系统的综合设计开发过程和方法。2.预习内容(1) 预习定时/计数器的编程方法;(2) 预习IO口的设计方法;(3) 设计并编写实验内容中方案一和方案二的程序。3.实验内容自行设计实验步骤,模拟实现十字路口交通信号灯。方案一:东西方向红灯10s绿灯15s南北
33、方向绿灯10s红灯15s方案二:东西方向 红灯10s 绿灯12s 黄灯3s南北方向绿灯7s黄灯3s 红灯15s4.实验器材(1)计算机1台 (2)仿真器1台 (3)实验箱1台5.硬件连线P1口LED6.实验方法 将发光二极管的两组红黄绿灯分别设定为南北向和东西向的交通灯,用定时器实现1s定时,用不同累计单元实现各灯的持续时间。7.思考与发挥增加一个外部中断,模拟紧急情况。按下按钮后四个方向全部红灯,10s后恢复正常。实验七 I/O口扩展实验1.实验目的(1)了解8255芯片的内部结构和与单片机的接口逻辑,熟悉其初始化编程方法;(2)掌握通过8255并行口输入、输出数据的方法。2.预习内容(1)
34、预习8255芯片的电路结构和功能;(2)预习8255的工作方式和初始化程序的编写;(3)将实验内容中程序写上注释。3.实验内容1、编写程序,通过8255的PB口读入8个开关的状态,通过PA口输出,点亮8个LED指示灯。参考程序:#include#include#define uchar unsigned charxdata uchar PA8255 _at_ 0xF000; xdata uchar PB8255 _at_ 0xF001;xdata uchar COM8255 _at_ 0xF003;main()uchar p8255t;COM8255=0x82;p8255t=PB8255;PA
35、8255=p8255t;2、实验要求:通过PB口读入2个开关状态S0和S1,两个开关共有4种组合,这4种组合分别点亮PA口输出控制的4个LED灯,LED0LED3。要求S0、S1均闭合时,LED0点亮;S0打开、S1闭合时,LED1点亮;S0闭合、S1打开时,LED2点亮;S0、S1均打开时,LED3点亮。编程实现此功能。#include#include#define uchar unsigned charxdata uchar PA8255 _at_ 0xF000; xdata uchar PB8255 _at_ 0xF001;xdata uchar COM8255 _at_ 0xF003;
36、void main()uchar state;COM8255=0x82;dostate=PB8255;state=state&0x03;switch (state)case 0:PA8255=0xFE; break;case 1:PA8255=0xFD; break;case 2:PA8255=0xFB; break;case 3:PA8255=0xF7; break; while(1);4.实验器材(1)计算机1台 (2)仿真器1台 (3)实验箱1台5.硬件连线B6区:A3区:CS1B6区:A0A3区:A0B6区:A1A3区:A1B6区:JP56(PA口)F5区:JP65(发光管)B6区:J
37、P53(PB口)F5区:JP80(开关)6.实验方法全速运行程序,拨动8个开关的状态,观察发光二极管的现象;单步执行程序,查看实验电路和内部寄存器、存储器的变化情况。7.实验扩展及思考(1)根据硬件连线图,如何确定8255寄存器的地址?(2)如果用PA口输入、PB口输出,如何更改硬件连线和软件程序?(3)编写程序,通过8255的PA口控制8个LED指示灯循环点亮。(4)编写程序,通过8255实现十字路口交通灯实验。实验八 串并/并串实验1.实验目的(1)掌握单片机串行口方式0工作方式及编程方法;(2)了解74HC164和74HC165芯片的性能,熟悉串并/并串转换原理;(3)掌握利用串行口和移
38、位寄存器扩展并行接口的方法。2.预习内容(1)熟悉74HC164的工作原理;输入输出CLKABQAQBQHLXXQA0QB0QH0HHHQAnQGnLXLQAnQGnXLLQAnQGn(2)熟悉74HC165的工作原理;SH/LDCLKINH功能LXX并口输入HHX无HXH无HL串口输出HL串口输出 (3)将实验内容中程序写上注释。3.实验内容(1)使用74HC164串并转换芯片进行I/O扩展 使用单片机串行通信方式0实现数据的移位输入/输出时,实际上是把串行口变成并行口使用。串行口作为并行输出口使用时,要有“串入并出”的移位寄存器配合(74HC164)。l 要求:编写程序,从P1口读入8个开
39、关的状态,通过串行口输出给74HC164芯片,74HC164转换成并行数据点亮8个LED指示灯。l 实验硬件连线图:G3区:AA3区:RXD(P3.0)G3区:BC1区:VCCG3区:CLKA3区:TXD(P3.1)G3区:JP49F5区:JP65(发光管)A3区:JP51(P1)F5区:JP80(开关)l 参考程序:#include #include #defineucharunsignedchar#defineuint unsignedint void delay(uint i)uchar j;for(i; i 0;i-) for(j = 255;j 0; j-); void main()
40、 while(1) SCON = 0x00;SBUF =P1; while( TI=0 ) ; delay(300); TI=0; (2)使用74HC165并串转换芯片进行I/O扩展 74HC165是并入串出移位寄存器,当移位/置入控制端(SH/LD)为低电平时,并行数据(AH)被置入寄存器中;当(SH/LD)为高电平时,并行置数功能被禁止,可以进行串行输出。l 要求:编写程序,将8个开关的状态作为74HC165的并行数据,单片机通过串行口读入,通过P1口显示在8个LED指示灯上。l 实验硬件连线图:G4区:QHA3区:RXD(P3.0)G4区:CLKA3区:TXD(P3.1)G4区:SH/L
41、DA3区:P3.2G4区:JP36F5区:JP80(开关)A3区:JP51(P1)F5区:JP65(发光管)l 参考程序:#include #include #defineucharunsignedchar#defineuint unsignedint sbit LS165_SH_LD = P32; sbit LS165_DATA = P30; sbit LS165_CLK = P31; void main() SCON = 0x00;while(1) LS165_SH_LD = 0; LS165_SH_LD = 1; REN=1;while( RI=0 ) ; REN=0; RI=0; P1
42、=SBUF; 4.实验器材(1)计算机1台 (2)仿真器1台 (3)实验箱1台5.实验方法全速运行程序,74HC164串并转换实验中,拨动8个开关的状态,观察发光二极管的现象,验证串并转换数据的正确性;74HC165并串转换实验中,同样拨动开关,观察发光二极管的现象,验证并串转换数据的正确性。6.实验扩展及思考1、74HC164串并转换实验中,编写程序,实现8个指示灯轮流点亮?2、74HC164串并转换实验中只用到一片74HC164,在需要输出更多口线的系统中,就需要多片74HC164串联使用,如何级连它们?3、设计实验通过74HC165将8个开关量并行输入,再通过74HC164并行输出控制8
43、个LED灯?4、如果需要扩展一个16键的小键盘,如何将二片的74HC165级连?实验九 键盘及8位数码管显示实验1.实验目的(1)进一步掌握8255的设计、编程方法;(2)熟悉矩阵键盘的扫描原理,掌握矩阵键盘的编程方法;(3)熟悉数码管的显示原理,掌握数码管动态扫描方法。2.预习内容(1)熟悉矩阵键盘的工作原理; 矩阵式键盘又叫行列式键盘。用I/O口线组成行、列结构,键位设置在行列的交点上,与独立式键盘相比,矩阵键盘能节省I/O口线,用于按键数目较多的场合。行线和列线根据需要可以设置为扫描线和回复线,其中扫描线为输出线,可不接上拉电阻;回复线为输入线,需外接上拉电阻。 (a)44矩阵键盘 (b
44、)82矩阵键盘 在包含矩阵键盘的单片机系统中,对键的识别分为三步来实现,以44矩阵键盘为例来说明键的识别过程: 判断是否有键按下扫描线输出全“0”, 无键按下,则回复线全“1”; 有键按下,则回复线有“0”。 逐行(列)扫描,得到位置码 让扫描线逐位输出0,判断回复线,得到位置码。 转换键值可通过计算法或查表法,得到位置码对应的键值。(2)熟悉7段数码管的工作原理; 发光二极管LED是最简单的显示设备,由8位就可以组成一个LED数码管,被广泛用于单板微型机、微型机控制系统及数字化仪器中,用于显示内存地址和数据等。 (a)数码管外形及引脚 (b) 4位共阴极数码管 数码管有两种显示方式:静态显示
45、和动态显示,其中动态显示使用更广泛。动态显示是指多位数码管的同名段选位共用一个I/O口,利用人的视觉暂留现象动态扫描显示每一位。(3)将实验内容中程序写上注释。3.实验内容(1)编写程序,扫描键盘,如有按键,键值显示于数码管。(2)连接线路,运行程序,任意按下F4区82键盘的一个键,8个LED数码管内容从右往左显示,新的键值显示在最右位。4.实验器材(1)计算机1台 (2)仿真器1台 (3)实验箱1台5.硬件连线B6区:A3区:CS1B6区:A0A3区:A0B6区:A1A3区:A1B6区:JP53(PB口)F4区:A(键盘行线)B6区:JP75(B) F4区:B(数码管段选线) B6区:JP79(C)F4区:C(数码管位选线)B6区:JP52(PC口)F4区:D(键盘列线)6.实验方法全速运行程序,任意按下F4区28键盘的一个键,8个LED数码管会将按键的编码从左至右依次显示出来,可验证程序的准确性。 参考程序:#define ucharunsigned charxdata uchar COM_8255 _at_ 0xF003;xdat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社团活动组织者与指导教师的沟通艺术
- 2025至2030中国调味瓶装水行业产业运行态势及投资规划深度研究报告
- 2025至2030中国证券行业市场深度分析及发展趋势与投资报告
- 2025至2030中国西餐厅行业市场深度调研及竞争格局及有效策略与实施路径评估报告
- 2025至2030中国装饰钉子行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030中国装卸机械行业发展研究与产业战略规划分析评估报告
- 2025至2030中国衣柜酒店行业产业运行态势及投资规划深度研究报告
- 2025至2030中国葡萄汁行业供需趋势及投资风险报告
- 现代商业中心的班级团队管理模式探讨
- 旅游景区规划与项目施工图集
- DB46-T 707-2025 榴莲栽培技术规程
- 五升六数学暑假作业每日一练打印练习
- 2025年入党考试题及答案
- 2025SYB创业考试题库及答案
- 新乡市县以下事业单位联考招聘笔试真题2024
- 中医推拿培训课件
- 电商客服考核试题及答案
- 铜排、铝排载流量安及铜排载流计算
- 2025贵州省水利投资(集团)有限责任公司招聘84人笔试备考题库含答案详解
- 2025贵州省水利投资(集团)有限责任公司招聘84人笔试备考题库附答案详解(研优卷)
- 秸秆粉碎还田合同范本
评论
0/150
提交评论