单片机串并口转换实验定稿版
实验十一、并串转换

实验十一、并串转换(cd4014)本程序功能:按F1键,再按3键,进行调用并串转换功能。
存储在外部RAM区,地址为0010H。
同学更改为:同学将此功能加到自己编的上一个程序中。
1、进入并串转换子程序后,关闭外部中断,出来时开中断;2、并串转换变换功能程序——cd4014o。
3、可将转换结果放到数码管中显示。
调试方式:设置断点,调出寄存器窗、外部数据区窗观察结果。
程序文件:cd4014.asm程序:xsdsm equ 30hfwdsm equ 31htxdsm equ 32htxjym equ 33hxsm1 equ 37h ;显示缓冲区xsm2 equ 38h ;xsm3 equ 39h ;xsm4 equ 3ah ;xsm5 equ 3bh ;xsm6 equ 3ch ;xsmm1 equ 3dhxsmm2 equ 3ehxsmm3 equ 3fhxsmm4 equ 40hxsmm5 equ 41hxsmm6 equ 42htxsjm equ 24hjpm equ 25hdqdsm equ 26htxzcbzm equ 27hxsclm equ 43h ;显示处理单元sjzzm equ 44hjpclbzm equ 49hraddlm equ 4chraddhm equ 4dhwdatam equ 4ehxsdsm1 equ 4fhxsjym equ 50hsecm equ 51h ;秒数据minm equ 52h ;分数据hrm equ 53h ;小时数据datem equ 54h ;日数据monthm equ 55h ;月数据weekm equ 56h ;星期数据yearm equ 57h ;年数据低2位kscanfm equ 58hkeyctm equ 59hkeym1 equ 5ahkeym2 equ 5bhkeybm1 equ 5chkeybm2 equ 5dhadsjdzl equ 34hadsjdzh equ 35hdpm equ 23hdp1 bit 18hdp2 bit 19hdp3 bit 1ahdp4 bit 1bhdp5 bit 1chdp6 bit 1dhptt bit 1ehswa bit 1fhorg 0000hljmp startorg 0003hljmp adzdorg 000bhljmp zdt0org 0100hstart:mov sp,#5eh;-------------------------------int0中断初始化、开中断setb it0setb ex0clr ie0;-------------------------------t0 10 ms中断初始化mov tmod,#00100001b; setb pt0mov tl0,#00hmov th0,#0dchsetb tr0setb et0setb ea;--------------------------数码管显示存储单元初始化mov dpm,#0ffhmov xsm1,#00hmov xsm2,#00hmov xsm3,#00hmov xsm4,#00hmov xsm5,#00hmov xsm6,#00hmov r4,#00h;------------------------------acall key0acall display;jk:nopjk4: mov a,kscanfmcjne a,#55h,jkljmp keyprjk3: acall key0ljmp jkkeypr: mov a,keym1cjne a,#0f7h,jk3 ;f1acall key0mov xsmm1,#01hmov xsmm2,#0ffhmov xsmm3,#0ffhmov xsmm4,#0ffhmov xsmm5,#0ffhmov xsmm6,#0ffhmov xsm1,xsmm1mov xsm2,xsmm2mov xsm3,xsmm3mov xsm4,xsmm4mov xsm5,xsmm5mov xsm6,xsmm6lcall displaykeypr9: mov a,kscanfmcjne a,#55h,keypr9mov a,keym2cjne a,#0feh,keypr3acall key0ljmp dsxg ;时钟修改0 keypr3: mov a,keym1cjne a,#7fh,keypr4acall key0ljmp dssxg ;时钟修改1 keypr4: mov a,keym2cjne a,#0f7h,keypr5acall key0ljmp adzh ;ad转换2keypr5: mov a,keym2cjne a,#7fh,keypr6acall key0ljmp cd4014o ;并串转换3keypr6: mov a,keym1cjne a,#0bfh,keypr7acall key0ljmp tx485 ;485通信4keypr7: mov a,keym2cjne a,#0fbh,keypr8acall key0ljmp tx232 ;232通信5keypr8: mov a,keym2cjne a,#0bfh,keypr10acall key0ljmp keyshou ;桉数字健显示健值6 keypr10:mov a,keym1cjne a,#0efh,keypr11 ;是否按下取消健acall key0ljmp jkkeypr11: ljmp keypr;---------------------------------;桉数字健显示健值;-----------------------键盘存储单元初始化key0: mov keybm1,#0ffhmov keybm2,#0ffhmov keym1,#0ffhmov keym2,#0ffhmov kscanfm,#00h ;kscanfm键盘扫描标志单元retdsxg: ljmp jk ;时钟修改0,dssxg: ljmp jk ;时钟修改1;-----------------------------------;a/d转换adzh: mov flag,#00h ;a/d转换路标号mov dpl,flagmov dph,#0e0h ;0e0xxh,a/d转换路地址movx @dptr,aadzh3: mov a,flagcjne a,#08h,adzh3mov adsjdzl,#00hmov adsjdzh,#00hadzh2: ljmp jkadzd: clr ex0push pswpush accpush dplpush dphmov dptr,#0f000hmovx a,@dptrmov dpl,adsjdzl ;adsjdzl模/数转换数据的外部ram存储地址mov dph,adsjdzh ;movx @dptr,ainc dptrmov adsjdzl,dplmov adsjdzh,dphmov a,flaginc amov flag,acjne a,#08h,adzd1ajmp adzd2adzd1: mov flag,amov dpl,flagmov dph,#0e0hmovx @dptr,aSETB EX0adzd2: pop dphpop dplpop accpop pswreti;-----------------------------------;cd4014并串转换cd4014o:lcall cd4014ljmp jk;-----------------------------------;cd4014cLk bit p1.6 ;定义4014的时钟线q8 bit p1.7 ;定义4014的串行输出数据线psc bit p1.5 ;定义并串控制线cd4014: clr eamov r0,#07hclr clksetb pscsetb clkmov c,q8rlc aclr pscrd14lp1:setb clkmov c,q8rlc aclr clkdjnz r0,rd14lp1mov dptr,#0010hnopnopmovx @dptr,asetb earet;-----------------------tx485: ljmp jk ;485通信4 tx232: ljmp jk ;232通信5 keyshou:mov a,kscanfmcjne a,#55h,keyshoumov a,keym1cjne a,#0efh,keyshou0 ;是否按下取消健acall key0ljmp jkkeyshou0:acall cbzc0mov xsm2,r4acall displayacall key0ajmp keyshou;-----------------------------------;10ms中断扫描zdt0:push pswpush accpush dplpush dphclr PSW.4setb PSW.3mov tl0,#00hmov th0,#0dchsetb tr0setb et0zdjp9: acall zdjp1 ;读键值mov a,keyctmjz zdjp90 ;是否健按下jz zdjp91ljmp zdjp6 ;键盘存储单元初始化zdjp91: mov a,kscanfm ;kscanfm键盘扫描标志单元cjne a,#00h,zdjp8 ;kscanfm=00h,无健按下mov kscanfm,#44hmov keybm1,keym1 ;keybm1键盘前次读数存储单元1mov keybm2,keym2 ;keybm2键盘前次读数存储单元2ljmp zddszdjp90: mov a,kscanfm ;kscanfm键盘扫描标志单元cjne a,#0aah,zdjp92 ;kscanfm=aah,健按下mov kscanfm,#55h ;健释放,执行任务,kscanfm=55h;----------------------------------健值翻译mov keym1,keybm1mov keym2,keybm2; acall cbzc0;---------------------------------;桉数字健显示健值; mov xsm2,r4; acall display;--------------------------; acall key0zdjp92: cjne a,#44h,zdjp93ljmp zddszdjp8: cjne a,#44h,zdjp93 ;kscanfm=44h,暂态,健按下去抖动mov a,keym1cjne a,keybm1,zdjp6mov a,keym2cjne a,keybm2,zdjp6mov kscanfm,#0aahzdjp93: ljmp zddszdjp6: mov kscanfm,#00hmov keybm1,#0ffhmov keybm2,#0ffhmov keym1,#0ffhmov keym2,#0ffhzdds: pop dphpop dplpop accpop pswreti;--------------------------读键值zdjp1: mov r0,#08hmov keyctm,#00hmov dpl,#00h ;cs4mov dph,#11000000bmovx a,@dptrmov keym1,a ;keym1键盘读数存储单元1 zdjp3: rlc ajc zdjp2inc keyctm ;键盘计数单元zdjp2: djnz r0,zdjp3mov r0,#08hmov dpl,#00h ;cs5mov dph,#11010000bmovx a,@dptrmov keym2,a ;keym2键盘读数存储单元2 zdjp5: rlc ajc zdjp4inc keyctm ;键盘计数单元zdjp4: djnz r0,zdjp5ret;-----------------------------------;健值翻译cbzc0: mov a,keym1cjne a,#0ffh,dssxg1mov a,keym2cjne a,#0ffh,dssxg2retdssxg1: mov jpm,a ;jpm键盘数值mov dptr,#table1lcall cbzcretdssxg2: mov jpm,a ;jpm键盘数值mov dptr,#table2lcall cbzcret;-----------------------------------查表翻译健值cbzc:cb2: clr amovc a,@a+dptrcjne a,jpm,cb1inc dptrclr amovc a,@a+dptrmov r4,aljmp cb3cb1: inc dptrinc dptrcjne a,#0ffh,cb2mov r4,#0ahcb3: rettable1: db 7fh,01h,0bfh,04h,0dfh,07h,0ffh,0ffh; 1 4 7table2: db 0f7h,02h,0fbh,05h,0fdh,08h,0feh,00h,7fh,03h,0bfh,06h,0dfh,09h,0ffh,0ffh; 2 5 8 0 3 6 9;-----------------------------sz1: mov a,xsm1inc amov xsm1,acjne a,#0ah,sz2mov xsm1,#00hsz2: retdisplay:clr p3.5mov dptr,#8000h ;数码管小数点、通信口转换控制地址;mov a,dpmmovx @dptr,amov dptr,#9000h ;1、2位数码管地址anl xsm1,#0fh ;xsm1、xsm2、xsm3显示缓冲单元,10进制数anl xsm2,#0fhmov xsclm,xsm1 ;xsclm显示处理单元orl xsclm,#0f0hmov a,xsm2swap aorl a,#0fhanl a,xsclmmovx @dptr,amov dptr,#0a000h ;3、4位数码管地址;anl xsm3,#0fhanl xsm4,#0fhmov xsclm,xsm3orl xsclm,#0f0hmov a,xsm4swap aorl a,#0fhanl a,xsclmmovx @dptr,amov dptr,#0b000h ;5、6位数码管地址;anl xsm5,#0fhanl xsm6,#0fhmov xsclm,xsm5orl xsclm,#0f0hmov a,xsm6swap aorl a,#0fhanl a,xsclmmovx @dptr,a; acall sz1ret; ------------------------------------------------------------------------display1: clr p3.5mov dptr,#8000h ;数码管小数点、通信口转换控制地址;mov a,#00hnopnopmovx @dptr,a;1、2位数码管地址mov dptr,#9000h ;mov a,#0ffhnopnopmovx @dptr,amov dptr,#0a000h ;3、4位数码管地址mov a,#0ffhmovx @dptr,amov dptr,#0b000h ;5、6位数码管地址;mov a,#0ffhnopnopmovx @dptr,aretend。
串并转换实验

实验五串并转换实验一.实验目的了解单片机串口方式0,及移位寄存器 164 的应用。
熟悉89C51单片机LED显示器外部引脚接线方法。
学习基本I/O口的使用方法及编程方法。
进一步掌握单片机全系统调试的过程及方法。
二.实验说明利用单片机的串行接口方式0 扩展并行输入输出口,在LED 上循环显示00~99。
三、实验原理:.LED数码显示原理七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。
LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形, LED显示器工作于静态显示方式时,各位的共阳极连接在一起并接电源,每位的段码线分别与一个8位的锁存器输出相连。
四、实验流程:五.将实验程序打入KEIL软件:然后进行编译连接。
六.实验电路图:七、进行仿真,数码显示管显示00-99:仿真成功。
八.实验源程序:ORG 0000HAJMP MAIN;;******************************************************** ; /*主程序*/ * ;******************************************************** ;ORG 0030HMAIN: MOV SP,#60HMOV R2,#00HMOV R1,#00HMAIN1: MOV A,R1MOV DPTR,#SGTB1MOVC A,@A+DPTRMOV SBUF,AMOV A,SBUFJNB TI,$CLR TIMOV A,R2MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TICALL DELAYCALL DELAYCALL DELAYCJNE R1,#9,MAIN2MOV R1,#00HINC R2CJNE R2,#10,MAIN3AJMP MAINMAIN2: INC R1MAIN3: AJMP MAIN1;;******************************************************** ; /*延时子程序*/ * ;******************************************************** ;DELAY: MOV R6,#250DELAY1: MOV R7,#250DJNZ R7,$DJNZ R6,DELAY1RET;*********************************************************; /*字符编码*/ *;*********************************************************;SGTB1: DB 03H ;0DB 9FH ;1DB 25H ;2DB 0DH ;3DB 99H ;4DB 49H ;5DB 41H ;6DB 1FH ;7DB 01H ;8DB 09H ;9END九.实验总结:通过此次实验,熟悉了LED数码管的显示原理和接线方法。
实验二D/A转换实验

&实验二D/A转换实验一、实验目的1. 理解D/A转换芯片0832与单片机接口及编程方法。
2. 了解D/A转换的基本原理。
3. 了解单片机系统中扩展D/A转换的基本方法。
二、实验原理及内容1.实验原理DAC0832内部具有输入寄存器和DAC寄存器两级数据寄存器,它不需要外加其它电路便可以与单片机的数据总线相连。
DAC0832引脚说明如下:D0~D7:8位数据输入。
I out1和I out2:DAC电流输出1和DAC电流输出2,I out1和I out2之和为一常量。
R FB:反馈信号输入端。
DAC0832的输出是电流型的,为了取得电压输出需在电压输出端接运算放大器,R FB即为运算放大器的反馈电阻端。
反馈电阻在片内。
ILE:允许输入锁存信号。
1WR:锁存输入数据的写信号和锁存输入寄存器输出数据的写信号。
WR和2XFER:传送控制信号。
CS:片选信号。
DAC0832输出是电流型的,但实际应用中往往需要电压输出信号,所以电路中采用运算放大器来实现电流转换为电压。
本实验系统上,采用参考电压为5V,所以当数字量输入在00H~FFH范围时电压输出量为0~+5V,这种方式称单极型输出,若电压输出为±5V,则称为双极型输出。
实际应用中需要单极性输出,也需要双极型输出,所以电路应用两片运放LM741来实现两种极性的输出。
实验系统中原理图如图8-2所示。
DAC0832与单片机接口:0832的D0~D7接单片机P0口;DAC0832的片选接单片机的P2.7,为了避免模块之间的冲突,P2.7通过跳线J505与DAC0832相连。
DAC0832的WR信号接单片机的写信号WR,U506和U507是单运放LM741完成电流到电压和正负电压的转换。
单片机对DAC0832控制过程:使能CS 、XFER ,向寄存器中写入需转换数据。
2.实验内容1)将扩展板的电源J501与主板的电源接口J2或J14连接起来;将扩展板的信号接口J500与主板的信号接口J15或J13连接起来;将主板上的拨码开关5、6、7、8拨到ON ;2)在keil 编程环境下编写程序,完成实验功能。
【最新2018】电脑并口怎么转串口-精选word文档 (4页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==电脑并口怎么转串口篇一:51单片机串并口转换实验我也是刚入手单片机,今天编了一段小程序,就是关于单片机串口转并口和并口转串口的一个小实验,本程序在PTOTUES中完美运行。
在单片机开发试板上也是完美运行。
今天贴出来供大家分享,看完本历程,有助于提高您对单片机IO口的基本操作,锁存器的用法以及串并转换的使用技能#include<reg52.h>本例程的电路连接图如上,在电路中使用了AT89C51单片机一块,74HC595八路串/并转换器,74HC165八路并串转换器和一片74HC573 锁存器。
实验者请按上图连接好实验电路。
#include<reg52.h>#include< intrins.h >#define uchar unsigned char#define uintunsigned int#defineulong unsigned longcode uint a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};sbit SO=P1^0; //定义165的输出sbit STCP=P1^1;sbit DS=P1^2;sbit SHCP=P1^3;sbitSHLD=P1^4;sbit CLK=P1^5;sbit cs573=P1^6;/**************************************************/void delay(ulong X)//延时函数,采用了形参传递函数 {} while(X--);/**************************************************/void LED(); //函数声明/**************************************************/void main()//主函数{while(1) { } LED ();}/****************************************************/void LED(){uint i,j,k;uchar n,m;for(i=0;i<8;i++) {cs573=1;P2=a[i]; //往P2口送流水灯字符,因为有8个流水灯,所以i=8循环八次,LED小灯依次被点亮cs573=0; //把P2口送过来的数据锁存 SHLD=0;//74HC165开始装载数据delay(10); SHLD=1; for(j=0;j<8;j++) //开始八次循环移位 { } n<<=1; delay(10); CLK=0; n|=SO; delay(10); CLK=1;P3=n; m=n; for(k=0;k<8;k++) //74HC595开始转换数据 { SHCP=0;if((m&0x80)==0x80) DS=1; else DS=0; m<<=1; SHCP=1; delay(300); }STCP=0; STCP=1; delay(30000);}}篇二:如何安装并口转USB口驱动的打印机如何安装并口转USB口打印机的驱动目前市面上已经鲜见带并口输出的主板,但是您还想让十年前的并口打印机老兵继续服役,怎么办?没错,加一条并口转USB的转接线就行。
串并行转换实验报告

一、实验目的1. 理解串行和并行数据传输的基本概念。
2. 掌握串并行数据转换的方法和原理。
3. 通过实验验证串并行转换的正确性和实用性。
二、实验原理在数字通信和数据处理领域,串行和并行传输方式各有优缺点。
串行传输适合长距离传输,而并行传输适合短距离高速交换。
串并行转换技术可以将串行数据转换为并行数据,或将并行数据转换为串行数据,以满足不同场景下的传输需求。
串行数据传输:将多个数据位按顺序逐个发送,数据位之间有明显的间隔。
并行数据传输:将多个数据位同时发送,每个数据位通过独立的传输线路。
三、实验设备与材料1. 串并行转换模块2. 信号发生器3. 示波器4. 计算机及实验软件四、实验步骤1. 连接实验设备,确保串并行转换模块与信号发生器、示波器等设备连接正确。
2. 在计算机上打开实验软件,设置实验参数,如串行数据输入、并行数据输出等。
3. 启动信号发生器,产生串行数据信号。
4. 将串行数据信号输入到串并行转换模块,观察转换模块的输出信号。
5. 使用示波器观察串行数据信号和并行数据信号的波形,记录数据。
6. 改变实验参数,重复步骤3-5,验证串并行转换的正确性和实用性。
五、实验结果与分析1. 实验过程中,将串行数据信号输入到串并行转换模块,转换模块输出相应的并行数据信号。
2. 通过示波器观察串行数据信号和并行数据信号的波形,发现两者具有相同的数据位和时序。
3. 改变实验参数,如串行数据输入、并行数据输出等,发现串并行转换模块能够适应不同的实验需求。
4. 实验结果表明,串并行转换模块能够实现串行数据到并行数据的转换,以及并行数据到串行数据的转换,验证了实验原理的正确性。
六、实验结论1. 串并行转换技术能够实现串行数据到并行数据的转换,以及并行数据到串行数据的转换,具有实际应用价值。
2. 通过实验验证了串并行转换模块的正确性和实用性,为后续相关实验和研究提供了参考。
3. 在数字通信和数据处理领域,串并行转换技术具有重要的应用前景。
串并转换

实验五串并转换实验一、实验目的1、掌握串并行转换的原理及采用74LS164扩展端口的方法。
2、掌握数码管显示的原理及方法。
3、学习用任意两根I/O口线进行数据传输的方法。
二、实验要求利用实验箱的显示电路,在数码管上循环显示0-9这10个数,每个数显示1秒。
完成后修改程序,仅在一个数码管上显示0-F这16个数(其它三个数码管不显示)。
三、实验原理实验设备中数码管为共阴接法,接线确定了各段从左至右的排列顺序为:abcdefgh。
如果要显示数字1,应该是b c段发光,所以b c段对应的位写1,其它不发光的位写0。
因此1的显示码为60H。
其它显示码可按此规律得出。
实验原理图见图二,串并转换芯片74LS164的A、B端为串行数据输入端,将其接到数据线P1.0上,CLK为时钟端接到时钟线P1.1上,Q0~Q7为并行输出端接数码管。
在P1.1产生的时钟脉冲的作用下,数据的显示码从74LS164输入端一位一位的输入,经164转换后,串行数据变为8位并行数据经其输出端Q0~Q7加到数码管上,数码管就能显示相应的数字。
下面是数据60H的传输及显示过程:1、将A中数据的最低位送到串口的数据线P1.0上。
2、在时钟线P1.1上产生一个脉冲。
3、在这个脉冲的作用下,P1.0上的数据被打入164的Q0输出端,原来Q0上的数据移到Q1,Q1的数移到Q2…,完成一位数的传输。
4、第1步到第3步重复8次,这样一个字节的数据就输出完毕,同时74LS164将接收到的串行数据转换成并行数据在数码管上显示出来。
四、实验框图实验框图见图一。
五、实验连线及步骤1、DIN接P1.0,CLK接P1.1,打开实验箱电源,打开串并转换数码管显示模块上的开关。
2、启动KEIL软件界面,根据框图编程。
在初始化框中有两个内容,它们分别是:* 送表指针初值---寄存器MOV R1,#0* 送表首地址---DPTR 图一串并转换程序框图 MOV DPTR,#TAB显示子程序如下,其中R4中的初值为8。
实验九 串、并转换实验

实验九串/并转换实验一、实验目的1. 熟悉并掌握串转并的I/O 口扩展方法2.在单片机的串行口外接一个串入并出8位移位寄存器74LS164,实现串口到并口的转换,数据从RXD端输出,移位脉冲从TXD端输出,波特率固定为单片机工作频率的1/12。
3. 写程序,通过单片机的串行口控制74HC164 的串行输入端口,实现串并转换,LED指示灯轮流点亮。
验证串并转换数据的正确性。
二、电路设计1.从PROTEUS库中选取元件①AT89C51:单片机;②RES:电阻;③74164:8位移位寄存器;④CAP、CAP-ELEC:电容、电解电容;⑤CRYSTAL:晶振;⑥NOT:非门。
2.放置元器件3.放置电源和地4.连线5.元器件属性设置6.电气检测三、源程序设计、生成目标代码文件1.流程图2.源程序设计通过菜单“sourc e→Add/Remove Source Files…”新建源程序文件:DZC9.ASM。
通过菜单“sourc e→DZC9.ASM”,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序。
程序编辑好后,单击按钮存入文件DZC9.ASM。
3.源程序编译汇编、生成目标代码文件通过菜单“sourc e→Build All”编译汇编源程序,生成目标代码文件。
若编译失败,可对程序进行修改调试直至汇编成功。
四、PROTEUS仿真1.加载目标代码文件2.仿真单击按钮,启动仿真。
五、思考题:1.什么叫波特率?它反映的是什么?它与时钟频率是相同的吗?当串行口以每分钟传送3600个字符时,计算其传送波特率。
2.8051单片机的串口有哪几种工作方式?各有什么功能和特点?。
串并转换

实验五串并转换实验一、实验目的1、掌握串并行转换的原理及采用74LS164扩展端口的方法。
2、掌握数码管显示的原理及方法。
3、学习用任意两根I/O口线进行数据传输的方法。
二、实验要求利用实验箱的显示电路,在数码管上循环显示0-9这10个数,每个数显示1秒。
完成后修改程序,仅在一个数码管上显示0-F这16个数(其它三个数码管不显示)。
三、实验原理实验设备中数码管为共阴接法,接线确定了各段从左至右的排列顺序为:abcdefgh。
如果要显示数字1,应该是b c段发光,所以b c段对应的位写1,其它不发光的位写0。
因此1的显示码为60H。
其它显示码可按此规律得出。
实验原理图见图二,串并转换芯片74LS164的A、B端为串行数据输入端,将其接到数据线P1.0上,CLK为时钟端接到时钟线P1.1上,Q0~Q7为并行输出端接数码管。
在P1.1产生的时钟脉冲的作用下,数据的显示码从74LS164输入端一位一位的输入,经164转换后,串行数据变为8位并行数据经其输出端Q0~Q7加到数码管上,数码管就能显示相应的数字。
下面是数据60H的传输及显示过程:1、将A中数据的最低位送到串口的数据线P1.0上。
2、在时钟线P1.1上产生一个脉冲。
3、在这个脉冲的作用下,P1.0上的数据被打入164的Q0输出端,原来Q0上的数据移到Q1,Q1的数移到Q2…,完成一位数的传输。
4、第1步到第3步重复8次,这样一个字节的数据就输出完毕,同时74LS164将接收到的串行数据转换成并行数据在数码管上显示出来。
四、实验框图实验框图见图一。
五、实验连线及步骤1、DIN接P1.0,CLK接P1.1,打开实验箱电源,打开串并转换数码管显示模块上的开关。
2、启动KEIL软件界面,根据框图编程。
在初始化框中有两个内容,它们分别是:* 送表指针初值---寄存器MOV R1,#0* 送表首地址---DPTR 图一串并转换程序框图MOV DPTR,#TAB显示子程序如下,其中R4中的初值为8。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机串并口转换实验 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】
我也是刚入手单片机,今天编了一段小程序,就是关于单片机串口转并口和并口转串口的一个小实验,本程序在PTOTUES中完美运行。
在单片机开发试板上也是完美运行。
今天贴出来供大家分享,看完本历程,有助于提高您对单片机IO口的基本操作,锁存器的用法以及串并转换的使用技能
#include<reg52.h>
本例程的电路连接图如上,在电路中使用了AT89C51单片机一块,74HC595八路串/并转换器,74HC165八路并串转换器和一片74HC573 锁存器。
实验者请按上图连接好实验电路。
#include<reg52.h>
#include< intrins.h >
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
code uint a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
sbit SO=P1^0; //定义165的输出
sbit STCP=P1^1;
sbit DS=P1^2;
sbit SHCP=P1^3;
sbit SHLD=P1^4;
sbit CLK=P1^5;
sbit cs573=P1^6;
/**************************************************/
void delay(ulong X) //延时函数,采用了形参传递函数{
while(X--);
}
/**************************************************/
void LED(); //函数声明
/**************************************************/
void main() //主函数
{
while(1)
{
LED ();
}
}
/****************************************************/
void LED()
{
uint i,j,k;
uchar n,m;
for(i=0;i<8;i++)
{
cs573=1;
P2=a[i]; //往P2口送流水灯字符,因为有8个流水灯,所以i=8循环八次,LED小灯依次被点亮
cs573=0; //把P2口送过来的数据锁存
SHLD=0; //74HC165开始装载数据
delay(10);
SHLD=1;
for(j=0;j<8;j++) //开始八次循环移位
{
n<<=1;
delay(10);
CLK=0;
n|=SO;
delay(10);
CLK=1;
}
P3=n;
m=n;
for(k=0;k<8;k++) //74HC595开始转换数据
{
SHCP=0;
if((m&0x80)==0x80)
DS=1;
else
DS=0;
m<<=1;
SHCP=1;
delay(300);
}
STCP=0;
STCP=1;
delay(30000);
}
}。