串并转换实验 单片机实验报告
- 格式:doc
- 大小:81.00 KB
- 文档页数:3
实验十一、并串转换(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。
实验五串转并与并转串实验一、实验目的1.掌握使用74LS164 扩展输出的方法。
2.掌握使用74LS165 扩展输入的方法。
二、实验内容使用74LS165 扩展输入数据,使用74LS164 扩展输出数据。
74LS165 的并行口接八位逻辑电平输出(开关),CPU 使用P1.0、P1.1 和P1.2 串行读入开关状态;74LS164 的并行口接一只数码管,CPU 使用P1.3 和P1.4 串行输出刚读入的开关状态,使之在数码管上显示出来。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图1)74LS165 为8 位移位寄存器,其引脚功能如下:S/L:移位/置数端,低电平有效。
P0~P7:并行数据输入端。
QH、QH:串行数据输出端。
CLK、CKLINH:时钟信号输入端。
2)74LS164 为串行输入并行输出移位寄存器,其引脚功能如下:A、B:串行输入端;Q0~Q7:并行输出端;MR:清零端,低电平有效;CLK:时钟脉冲输入端,上升沿有效。
3)用P1 端口输出数据时,要编程位移数据,每操作一个数据位,对应一个移位脉冲。
4)本实验需要用到CPU 模块(F3 区)、八位逻辑电平输出模块(E4 区)和静态数码管显示模块(B4 区)。
74LS165 电路原理图参见图5-1,74LS164 电路原理图参见图8-2。
注:74LS164 集成电路芯片在主板反面。
图5-1 74LS165 电路图5-2 74LS164电路五、实验步骤1)系统各跳线器处在初始设置状态。
用导线对应连接八位逻辑电平输出模块的QH165、CLK165、SH/LD 到CPU 模块的P10、P11、P12。
用导线对应连接静态数码管显示模块的DIN、CLK 到CPU 模块的P13、P14。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察数码(八段码)管的亮灭与拨动开关的状态是否一致。
************实验报告
1、实验目的(即实现的知识与技能目标等)
1、了解74LS164芯片的工作原理,以及与单片机的接口方法
2、掌握单片机串行口的工作原理以及编程方法
2、实验任务(即具体设计与实验任务)
补充程序,绘制电路,仿真
修改程序,使两位数码管上显示数字55~00,以递减方式显示3、实验原理(含仿真电路设计原理,软件设计流程图)
4、实验内容和步骤(含设计的程序,实验的过程等)
内容:用74LS164芯片扩展并行输出口,本实验中我们用74LS164扩展两个8位输出口的接口显示电路,两位数码管循环显示00~99之间的数字
步骤:1.在Proteus中绘制实验电路
2.在Keil按实验要求编写编译实验程序,生成HEX目标文件
3.在Proteus仿真图中,双击AT89C51芯片,打开Edit Component,在Program File中选择Keil编译生成的Hex文件,然后点击左下角的运行图标,进行仿真,观察实验结果
5、实验数据、结果及分析讨论(对仿真实验的记录与设计任务对比,从设计上和实验上进行分析)
6、总结(从知识点上和实验实践上的收获进行总结)74LS164.IEC与74LS164引脚相同。
实验五串并转换实验一.实验目的了解单片机串口方式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数码管的显示原理和接线方法。
实验五串并转换实验
一、实验目的
1、熟悉单片机串口方式0;
2、了解移位寄存器74LS164 的使用;
3、熟悉串并转换方法和编程方法。
二、实验设备
1、QTH单片机开发系统。
2、微机。
三、实验原理
1、串口工作方式
2、串并转换原理
3、七段码显示原理
四、实验内容:
1、设计串并转换硬件连接图,要求使用串并转换芯片74LS164 ,利用并行输出控制两个七段码显示器。
(必做)
2、编程实现在显示器上循环输出00~0F 16个十六进制数。
(必做)
3、编程实现在显示器上循环输出00~99数字。
(选做)
五、思考题:
1、设计利用P1.0口扩展并行输出口的硬件电路图,编写相应程序;
2、分析利用I/O口与利用串口扩展输出口的异同。
六、实验报告要求:
1、写清实验目的原理
2、画出电路原理图,给出程序清单,画流程图;
3、在实验总结中,写清实验现象,分析实验现象产生原因、存在问题,给出解决方案。
在调试过程中遇到的问题,如何解决的,注意事项等相关内容。
说明:设计电路图按下图设计。
作业二——串-并转换电路
一.实验内容:
实现一个串-并转换电路,当输入信号A为1时,串行输入D的值,输入4 bit之后,并行输出Z,同时DONT输出为1。
运用状态分析,共三个状态:state0,state1,state2。
设计testbench,检验输出波形。
二.实验代码:
1.修改的core代码如下:
2.设计的testbench代码如下:
其中,输入信号A和D是通过定义寄存器AM和DM,然后寻址获取数值。
a.给复位信号R,时钟信号CLK赋值代码:
b.给输入信号A和D赋值代码:
三.仿真波形
1.总的波形
分析:从这幅图中可以看出,当R=1时,所有的信号复位成0,状态为0,之后当A=1给出ready信号之后,开始串行读数,四个时钟周期后,将数值并行输出到Z,同时DONT变为1,回归状态0。
之后再次等待ready信号A=1,如此循环,实现串-并转换。
波形正确。
2.第一个并行输出放大波形:
分析:从这幅图中可以看出,当时钟上升沿读取到A=1,说明准备好读入D 的数值了,D分别为:1,0,1,1,四个时钟之后,Z并行输出1011,同时DONT输出为1,之后回归到状态0,重新开始准备读数。
3.第二个并行输出波形:
分析:这幅图中,当Z输出1011之后,下一个时钟上升沿,虽然D为1,A 也为1,但是由于此时刚读入状态为0,因此还没有开始读数,而是在下一个时钟沿时开始串行读入D,一次读入D为:0,0,1,1,所以最后输出不是1001,而是0011。
一、实验目的1. 了解串并实验的基本原理和方法。
2. 掌握串行和并行两种数据传输方式的优缺点。
3. 分析串并实验中可能遇到的问题及解决方法。
二、实验原理串并实验是指将数据以串行方式传输,然后再转换成并行方式传输的实验。
在串行传输过程中,数据位按顺序传输,每传输一位数据就需要一个时钟周期;而在并行传输过程中,数据位同时传输,每个数据位对应一个时钟周期。
串行传输的优点是传输距离远,成本较低;缺点是传输速度慢,易受干扰。
并行传输的优点是传输速度快,抗干扰能力强;缺点是传输距离短,成本较高。
三、实验仪器与设备1. 串行通信模块(如:USB转串口模块)2. 并行通信模块(如:I2C模块)3. 实验平台(如:Arduino开发板)4. 电源5. 连接线四、实验步骤1. 准备实验平台,连接串行通信模块和并行通信模块。
2. 编写程序,实现以下功能:a. 串行通信模块发送数据到并行通信模块;b. 并行通信模块接收数据,并将数据转换成串行方式发送回串行通信模块;c. 串行通信模块接收转换后的数据,并显示结果。
3. 上传程序到实验平台,启动实验。
4. 观察串行通信模块和并行通信模块的通信过程,记录实验数据。
5. 分析实验数据,总结串并实验的优缺点。
五、实验结果与分析1. 实验数据:串行通信模块发送数据:10110011并行通信模块接收数据:10110011串行通信模块接收数据:101100112. 分析:实验结果显示,串并实验中,数据在串行和并行传输过程中没有发生错误,证明了串并实验的可行性。
串行传输的优点是传输距离远,成本较低,但传输速度慢,易受干扰。
在实验过程中,我们可以通过优化程序,提高串行传输的速度。
并行传输的优点是传输速度快,抗干扰能力强,但传输距离短,成本较高。
在实验过程中,我们可以通过增加并行通信模块的数量,提高并行传输的速度。
六、实验结论1. 串并实验是可行的,可以实现数据在串行和并行传输之间的转换。
一、实验目的1. 理解串行和并行数据传输的基本概念。
2. 掌握串并行数据转换的方法和原理。
3. 通过实验验证串并行转换的正确性和实用性。
二、实验原理在数字通信和数据处理领域,串行和并行传输方式各有优缺点。
串行传输适合长距离传输,而并行传输适合短距离高速交换。
串并行转换技术可以将串行数据转换为并行数据,或将并行数据转换为串行数据,以满足不同场景下的传输需求。
串行数据传输:将多个数据位按顺序逐个发送,数据位之间有明显的间隔。
并行数据传输:将多个数据位同时发送,每个数据位通过独立的传输线路。
三、实验设备与材料1. 串并行转换模块2. 信号发生器3. 示波器4. 计算机及实验软件四、实验步骤1. 连接实验设备,确保串并行转换模块与信号发生器、示波器等设备连接正确。
2. 在计算机上打开实验软件,设置实验参数,如串行数据输入、并行数据输出等。
3. 启动信号发生器,产生串行数据信号。
4. 将串行数据信号输入到串并行转换模块,观察转换模块的输出信号。
5. 使用示波器观察串行数据信号和并行数据信号的波形,记录数据。
6. 改变实验参数,重复步骤3-5,验证串并行转换的正确性和实用性。
五、实验结果与分析1. 实验过程中,将串行数据信号输入到串并行转换模块,转换模块输出相应的并行数据信号。
2. 通过示波器观察串行数据信号和并行数据信号的波形,发现两者具有相同的数据位和时序。
3. 改变实验参数,如串行数据输入、并行数据输出等,发现串并行转换模块能够适应不同的实验需求。
4. 实验结果表明,串并行转换模块能够实现串行数据到并行数据的转换,以及并行数据到串行数据的转换,验证了实验原理的正确性。
六、实验结论1. 串并行转换技术能够实现串行数据到并行数据的转换,以及并行数据到串行数据的转换,具有实际应用价值。
2. 通过实验验证了串并行转换模块的正确性和实用性,为后续相关实验和研究提供了参考。
3. 在数字通信和数据处理领域,串并行转换技术具有重要的应用前景。
实验九串/并转换实验一、实验目的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单片机的串口有哪几种工作方式?各有什么功能和特点?。
南京信息工程大学实验(实习)报告
实验(实习)名称串并转换实验实验(实习)日期 2012年12月19日得分________指导教师
院电子与信息工程专业电子信息工程年级班次姓名学号
1.实验目的:
(1)掌握8031串行口方式0工作方式及编程方法。
(2)掌握利用串行口扩展I/O通道的方法
2.实验内容:
(1)利用8031串行口和串行输入并行输出移位寄存器74LS164,扩展一个8位输出通道,用于驱动一个数码显示器,在数码显示器上循环显示从8031串行口输出的0—9这10个数字。
(2)实验说明:
串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。
在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/ 12。
由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。
待8位数据输完后,硬件将SCON寄存器的TI位置1,TI必须由软件清零。
3.实验原理:
实验原理图如图一所示:
图一
8031资料和74LS164(8位串入,并出移位寄存器)资料分别如图二和图三所示:
图二
图三
4.实验步骤:
(1)将S/P区 DATA插孔接BUS 3区 P3.0(RXD)插孔。
(2)将S/P区 CLK插孔接BUS 3区 P3.1(TXD)插孔。
(3)将S/P区 CLR插孔接MP区 /SP插孔,上电时对164复位。
(4)在DVCC系统处于仿真1态即“P.”状态下,将地址000B内容改为E1B1,作为定时器0的入口地址。
(5)将状态切换为“P.....”状态,从地址0790H开始连续执行程序。
(6)在扩展的一位数码管上循环显示0—9这10个数字。
5.实验程序:
TIMER EQU 01H
ORG 000BH
AJMP INT_T0
ORG 0790H START: MOV SP,#53H MOV TMOD,#01H
MOV TL0,#00H
MOV TH0,#4BH
MOV R0,#0H
MOV TIMER,#20
MOV SCON,#00H
CLR TI
CLR RI
SETB TR0
SETB ET0
SETB EA
SJMP $
INT_T0: PUSH ACC
PUSH PSW
CLR EA
CLR TR0
MOV TL0,#0H
MOV TH0,#4BH
SETB TR0
DJNZ TIMER,EXIT
MOV TIMER,#20
MOV DPTR,#CDA TA
MOV A,R0
MOVC A,@A+DPTR
CLR TI
CPL A
MOV SBUF,A
INC R0
CJNE R0,#0AH,EXIT
MOV R0,#0H
EXIT: SETB EA
POP PSW
POP ACC
RETI
CDATA: DB
03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,0 9H
END
6.实验结果:
(1)在数码管上循环显示从8031串行口输出的0—9这10个数字。
(2)成功实现串并转换功能。