串行总线扩展实验程序代码
- 格式:doc
- 大小:1.77 KB
- 文档页数:5
312 式。
液晶显示屏模块1602内置控制器44780,可显示2行,每行16个字符,要求单片机控制1602液晶显示模块分两行显示“Hello Welcome To Heilongjiang”,第一行显示“Hello Welcome”,第二行显示“To HeiLongJiang”。
2.实验目的(1)了解单片机控制字符型的工作原理和方法。
(2)掌握单片机如何来控制液晶显示屏模块1602。
(3)接口电路设计完毕后,编写程序控制字符型液晶显示屏模块1602的字符显示。
实验13 DAC0832的D/A转换实验 1.实验要求单片机输出的数字量D0~D7加到DAC0832的输入端,用虚拟直流电压表测量DAC0832的输出电流经运放LM358N的I/V转换后的电压值,并使用虚拟直流电压表查看输出电压的变化。
仿真运行,可看到虚拟直流电压表测量的电压在-2.5~0V范围内变化。
如果由于电压表图标太小,显示的电压值不清楚,可用鼠标滚轮放大整个电路原理图。
2.实验目的掌握单片机与DAC0832的接口设计和软件编程。
实验14 ADC0809的A/D转换实验 1.实验要求利用A/D转换器ADC0809 (Proteus元件库中没有ADC0809,可用库中与其兼容的ADC0808替代),由输入模拟电压通过调整电位器阻值的大小提供给ADC0809模拟量输入,编写程序控制ADC0809将模拟量转换成二进制数字量,并送P1口输出来控制发光二极管亮或灭来表示转换结果的二进制代码显示转换完毕的数字量。
2.实验目的(1)掌握ADC0809的工作原理及基本性能。
(2)掌握单片机与ADC0809的接口设计。
(3)掌握软件编程控制单片机进行数据采集。
实验15 I2C总线串行扩展——AT24C02存储器读写1. 实验要求利用AT24C02、Proteus的I2C调试器,实现单片机读写存储器AT24C02的实验。
KEY1充当外部中断0中断源,当按下KEY1时,单片机通过I2C总线发送数据AAH给AT24C02,等发送数据完毕后,将数据AAH送P2口通过LED显示出来。
简单IO口扩展实验报告1. 背景在实际应用中,我们经常需要扩展计算机的输入输出(IO)接口,以满足不同的需求。
而简单IO口扩展就是一种常见且重要的扩展方式。
通过简单IO口扩展,我们可以将计算机连接到更多的外部设备,如传感器、执行器等,从而实现更多功能和应用。
2. 分析2.1 简单IO口介绍简单IO口是指通用输入输出接口,它可以通过数字信号来进行数据的输入和输出。
每个简单IO口通常包括一个输入引脚和一个输出引脚。
通过控制这些引脚的电平状态,我们可以实现数据的输入和输出。
2.2 简单IO口扩展方法简单IO口可以通过不同的方法进行扩展,常见的方法包括:•并行接口:使用并行接口可以同时传输多个位的数据。
它通常使用多条数据线和一些控制线来实现高速数据传输。
•串行接口:使用串行接口可以逐位地传输数据。
它通常使用一条数据线和一些控制线来实现较低速率但更简洁的数据传输。
•USB接口:USB(Universal Serial Bus)是一种常见的数字串行总线接口,它可以连接多种设备,并提供高速数据传输和供电功能。
•SPI接口:SPI(Serial Peripheral Interface)是一种常用的串行外设接口,它可以连接多个外设,并以主从模式进行数据传输。
•I2C接口:I2C(Inter-Integrated Circuit)是一种常见的串行通信接口,它可以连接多个外设,并使用两条线路进行数据传输。
2.3 简单IO口扩展实验本次实验旨在通过简单IO口扩展方法,将计算机与外部设备进行连接,并实现数据的输入和输出。
具体步骤如下:1.确定要使用的简单IO口扩展方法,如并行接口、串行接口等。
2.根据选择的扩展方法,准备相应的硬件模块和连接线缆。
3.将硬件模块与计算机进行连接,确保电气连通性。
4.编写相应的驱动程序或使用现有的驱动程序,以实现与硬件模块的通信。
5.运行程序并测试扩展功能。
3. 结果经过实验测试,我们成功地实现了简单IO口扩展,并达到了预期的结果。
附页:实验线路图:编译程序:源程序代码:1 汇编语言程序清单ORG 0000HLJMP MAINORG 000BHLJMP INTT0MAIN:MOV SP,#60HMOV TMOD,#01HSETB ET0SETB EAMOV TH0,#3CHMOV TL0,#0B0HSETB TR0MOV 30H, #0 ; 每中断一次加1MOV 31H, #0 ; 每秒加1, 当其值为100时清0 MOV 32H, #0 ; 个位MOV 33H, #0 ; 十位LP:MOV R0,#32HMOV R7,#2ACALL BINBCDMOV DPTR,#TABDSPLY:MOV A,@R0MOVC A,@A+DPTRCPL AMOV SBUF,ADSP1:JNB TI,DSP1CLR TIINC R0DJNZ R7,DSPLYLP1:MOV A,30HCJNE A, #10, LP1MOV 30H,#00HINC 31HMOV A,31HCJNE A,#100,LPMOV 31H,#0SJMP LPINTT0:MOV TL0,#0B0HMOV TH0,#3CHINC 30HRETITAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB 0FFH,00H,73H; 入口参数二进制数存放在31H中; 出口参数 BCD数十位(33H), 个位(32H)BINBCD:MOV A,31HMOV B,#10DIV ABMOV 33H,AMOV A,BMOV 32H,ARETEND ; 程序结束2 C 语言程序清单#include <AT89X51.H>#include <intrins.h>#define uchar unsigned char#define uint unsigned int//共阴数码管段码:0~9,全亮,全灭,Puchartab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xFF,0x00,0x 73};uchar timer; //定时器每中断1次加1void main(void){uchar ten,one,count;SP=0x60;TMOD=0x01; //定时器T0方式1定时ET0=1; //开定时器T0中断EA=1; //开总中断TH0=0x3C; //每100ms中断一次TL0=0xB0;TR0=1; //启动定时器T0timer=0;count=0;do{do{ten=count/10; //求得十位one=count%10; //求得个位SBUF=~tab[one]; //发送个位while(~TI);TI=0;SBUF=~tab[ten]; //发送十位while(~TI);TI=0;while(timer<10); //延时1s,即10*100ms timer=0;count++; //每隔一秒,count值加1 }while(count<100); //从0计到99count=0;} while(1);}void intt0() interrupt 1{TH0=0x3C;TL0=0xB0;timer++;}。
实验十三利用串行口扩展并口实验一实验目的①掌握MSC-51单片机串行口方式0时的工作原理;了解通过串行口扩展输出口,进行静态显示的方法。
②掌握串行移位寄存器芯片74LS164的工作原理。
二实验器材1.实验仪一台;2. 编程器一台;3.小镊子一把;三实验原理MCS-51单片机除了具有四个8位的并行口外,还具有一个全双工的串行通信接口,该接口有4种工作方式,当工作于方式1、2和3时,作UART(通用异步接收和发送器),实现单片机系统之间点对点的单机通信、多机通信和单片机系统与PC机之间的通信;而工作于方式0时,为同步移位寄存器输入/输出方式,常用于扩展I/O口,这时串行数据通过RxD引脚输入或输出,引脚TxD输出同步移位信号,收/发数据都为8位,低位在前,波特率为振荡频率的1/12。
本实验中通过74LS164实现串入并出。
由于74LS164的输出高电平电流为 -1mA,而输出低电平电流为20mA,故这里必须使用共阳极的数码管,并且数码管的“a”笔画由引脚13输出,“h”笔画由引脚3输出,请同学们注意。
另外采用静态显示,编程简单,显示效果好,具体线路如图13所示(图中省去了复位电路、时钟电路等电路)四跳线设置如程序存放在AT89S51中,AT89S51的/EA(引脚31)必须接高电平,实验时需短路J13的1和2引脚,否则;必须短路J13的2和3引脚;实验时需要短接J4的3和5以及4和6;J7的2、3。
五实验内容与要求编制程序使数码管循环依次显示00到99,每秒加1。
六源程序ORG 0000HLJMP MAINORG 000BHLJMP INTT0MAIN:MOV SP,#60HMOV TMOD,#01HSETB ET0SETB EAMOV TH0,#3CHMOV TL0,#0B0HSETB TR0MOV 30H, #0 ; 每中断一次加1MOV 31H, #0 ; 每秒加1, 当其值为100时清0MOV 32H, #0 ; 个位MOV 33H, #0 ; 十位LP:MOV R0,#32HMOV R7,#2ACALL BINBCDMOV DPTR,#TABDSPLY:MOV A,@R0MOVC A,@A+DPTRCPL AMOV SBUF,ADSP1:JNB TI,DSP1CLR TIINC R0DJNZ R7,DSPL YLP1:MOV A,30HCJNE A, #10, LP1MOV 30H,#00HINC 31HMOV A,31HCJNE A,#100,LPMOV 31H,#0SJMP LPINTT0:MOV TL0,#0B0HMOV TH0,#3CHINC 30HRETITAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB 0FFH,00H,73H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 入口参数二进制数存放在31H中; 出口参数BCD数十位(33H), 个位(32H);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BINBCD:MOV A,31HMOV B,#10DIV ABMOV 33H,AMOV A,BMOV 32H,ARETEND ; 程序结束七实验结论基本掌握MSC-51单片机串行口方式0时的工作原理;了解通过串行口扩展输出口,进行静态显示的方法。