单片机-串并转换
实验十一、并串转换

实验十一、并串转换(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数码管的显示原理和接线方法。
实验五 串并转换实验

实验五串并转换实验
一、实验目的
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、在实验总结中,写清实验现象,分析实验现象产生原因、存在问题,给出解决方案。
在调试过程中遇到的问题,如何解决的,注意事项等相关内容。
说明:设计电路图按下图设计。
串并转换

实验五串并转换实验一、实验目的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。
单片机对串行A_D转换器ADC0832的C51编程

北京 :北京航空航天大学出版社 , 2004: 345 ~346.
3. 2 单片机串行口方式 0与 ADC0832 的接口 单片机串行工作方式时 , 串行口 是作为同步移 位寄存器使用 。这时以 RXD 端作为 数据移位的入 口和出口 ,而由 T XD 端提供移位时钟脉冲 。
图 3 STC89C51 串行口方式 0 时与 ADC 0832 的 接口
图 3 为单片机串 行口方式 0 与 ADC0832 的接 口 , 单片机 P1. 4 接 ADC0832的 CS, TXD (接 0832 的 CLK)作为时钟信号输出端 , RXD (接 0832 的 DO 和 D I) 作为启动位 、 配置位的发送端以及 A /D 转换后 输出数据的接收端 。由于 ADC0832 在 CS变低后的 前 3个周期内 , DO 端为高阻态 ; 转换开始后 , D I线禁 止 , 因此 , D I端和 DO 端可连接在一起 。 ADC0832的时钟频率最高为 400kHz, 单片机晶 振可选用 4M Hz, 在 TXD 的输出频率为 4MHz/ 12 = 333. 3kHz, 符合要求 。 ADC0832输出的串行数据共 15位 ,由两段 8 位 数据组成 , 前一段是最高 位在先 , 后一段是最 高在 后 , 两段数据的最低位共用 。只有在时钟的下降沿 , ADC0832的串行数据才移出一位 。由单片机控制时 钟信 号的 发送 , 并 由 TXD 发 出 , 以 达到 控 制 ADC 0832输出数据位的目的。为了得到一列完整的 8 位 数据 ,单片机分两次采集含有不同位的数据 , 再合成 一列完整的 8 位数据 。 (源程序略 ) 参考文献
VHDL并串转换

VHDL并串转换并串转换⼀、电路功能:本电路能实现FPGA与单⽚机的部分接⼝功能,使单⽚机与FPGA 能进⾏简单通信的功能,即单⽚机通过ale、wr、P0、P2管脚与FPGA 相连接,通过这⼏个控制引脚,指导FPGA进⾏并串转换。
同时,在FPGA上⾃带有clr与clk,实现对系统的清零复位,保证串⾏输出有条进⾏。
⼆、电路设计思路:(1)单⽚机是⼀个拥有多扩展模块的芯⽚,所以,⾸先我们要设计地址总线。
本题中设地址为FAH,当ale来⼀个上升沿时,我们要锁存当前P0⼝的地址,然后再将此地址与FAH⽐较。
若⽐较结果相等,则写有效(把wr赋给FPGA的内部信号wr_en)否则写⽆效(把1赋给wr_en),其中wr_en为0有效。
(2)设计数据总线当选择该芯⽚时,若单⽚机发⼀个写有效来,则将P2和P0⼝的数据读⼊FPGA内部数据锁存器.当数据读⼊后,同时,内部应该产⽣⼀个读⼊完成型号a,以便通知FPGA进⾏并串转换。
(3)并串转换当a有效时,开始进⾏并串转换,并输出串⼝按时钟clk将数据⼀个⼀个输出,当并串转换结束后,应当产⽣⼀个结束控制标志(本电路中将ld反馈回电路做结束标志),使a⽆效,停⽌停⽌并串转换。
三、电路原理框图如下:四、具体程序与原理图:(1)地址锁存器library ieee;use ieee.std_logic_1164.all;entity latch_add isport ( ale,clr:in std_logic;P0:in std_logic_vector(7 downto 0);add:out std_logic_vector(7 downto 0));end latch_add;architecture art of latch_add isbeginprocess(clr,ale)beginif(clr='1') thenadd<="00000000";elsif(ale'event and ale='1') then --锁存地址add<=P0;end if;end process;end art;(2)⽐较器library ieee;use ieee.std_logic_1164.all;entity en isport( wr,clr:in std_logic;add:in std_logic_vector(7 downto 0);wr_en:out std_logic);end en;architecture art of en isbeginprocess(add,wr,clr)beginif (clr='1') thenwr_en<='1';elsif(add="11111010") thenwr_en<=wr; --写允许elsewr_en<='1'; --写禁⽌end if;end process;end art;(3)数据锁存library ieee;use ieee.std_logic_1164.all;entity latch_data isport( wr_en,b,clr:in std_logic;P1,P2:in std_logic_vector(7 downto 0);datain:out std_logic_vector(15 downto 0);a:out std_logic); --a是允许并串转换end latch_data;architecture art of latch_data isbeginprocess(wr_en,clr)beginif(clr='1') thena<='0';elsif(wr_en'event and wr_en='0') then --数据读⼊FPGA datain<=P2&P1; a<='1'; --a为1,开始并串转换end if; if(b='1') then --将ld接⼊b端⼝,为并串结束标志a<='0'; --a为0,结束并串转换end if;end process;end art;(4)并串转换library ieee;use ieee.std_logic_1164.all;entity bing_chuan isport( a,clk,clr: in std_logic;datain1:in std_logic_vector(15 downto 0);ld,s_clk,s_data: out std_logic);end bing_chuan;architecture art of bing_chuan issignal b:std_logic; -- b为产⽣输出同步时钟s_clk的控制信号begin process(a,clk)variable I: integer;beginif(clr='1') thenI:=16;ld<='0';elsif( clk'event and clk='1') thenb<=a;if(a='1') thenif(I=0) thenI:=16; ld<='1';s_data<='0';b<='0';elses_data<=datain1(I-1);I:=I-1;end if;else ld<='0';end if;end if;end process ;s_clk<=clk when b='1' else --b为1,产⽣输出同步时钟'0';end art;五、并串转换原理图:仿真结果:六、结果分析仿真如上图,我们可以看出,当ale来上升沿时,FPGA读⼊P0⼝的地址11111010,此地址与设置地址FAH相同,所以写有效(wr_en<=wr)。
51单片机 串行数模转换TLC5615

#include <reg52.h>#include <math.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char#define INBUF_LEN 6 //数据长度unsigned char inbuf1[INBUF_LEN]={'0','0','0','0','0','0'};//发送缓冲区unsigned char code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管显示0~Funsigned char code dis_8[12]={'0','1','2','3','4','5','6','7','8','9',' ','-'};sbit CS=P2^5; //定义片选信号IO口sbit SCLK=P2^4; //定义时钟信号IO口sbit DIN=P2^3; //定义数据输入IO口uint temp;void init_serialcomm( void ){SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvrT2CON=0x30;TH2=0x00;TL2=0x00;RCAP2H=0xFF;RCAP2L=0xDC;TR2=1;}//向串口发送一个字符void send_char_com( unsigned char ch){SBUF=ch;while (TI== 0 );TI= 0 ;}//向串口发送一个字符串,strlen 为该字符串长度void send_string_com( unsigned char *str, unsigned int strlen){unsigned int k= 0 ;do{send_char_com(*(str + k));k++;} while (k < strlen);}void delay(uint k) //延时函数{uint i,j;for(i=0;i<k;i++){for(j=0;j<121;j++){;}}}//实现DA转换void DAConvert(uint Data){uchar i;Data<<=6;CS=0;SCLK=0;for (i=0;i<12;i++){DIN=(bit)(Data&0x8000);SCLK=1;Data<<=1;SCLK=0;}CS=1;SCLK=0;for (i=0;i<12;i++);}//定时器0中断处理中键扫描和显示void KeyAndDis_Time0(void) interrupt 1 using 2 {TH0=0xdc;TL0=0x00;//设定时值为10msP0= table[ temp/1000];P2=0x03;delay(2);P0= table[ (temp%1000)/100];P2=0x02;delay(2);P0= table[ (temp%100)/10];P2=0x01;delay(2);P0= table[ temp%10];P2=0x00;delay(2);}//主程序main(){uint i;init_serialcomm(); //初始化串口EA = 1; //允许CPU中断ET0 = 1; //定时器0中断打开TMOD = 0x01; //设定时器0为模式1,16位模式TH0=0xdc;TL0=0x00; //设定时值为10msTR0 = 1;while(1){for(i=0;i<1023;i+=2){DAConvert(i);//启动转换temp=i;inbuf1[0]=dis_8[temp/1000];inbuf1[1]=dis_8[(temp%1000)/100];inbuf1[2]=dis_8[(temp%100)/10];inbuf1[3]=dis_8[temp%10];inbuf1[4]=0x0d;inbuf1[5]=0x0a;send_string_com(inbuf1,INBUF_LEN);//串口输出到上位机delay(10);}for(i=1023;i>2;i-=2){ DAConvert(i);//启动转换temp=i;inbuf1[0]=dis_8[temp/1000];inbuf1[1]=dis_8[(temp%1000)/100];inbuf1[2]=dis_8[(temp%100)/10];inbuf1[3]=dis_8[temp%10];inbuf1[4]=0x0d;inbuf1[5]=0x0a;send_string_com(inbuf1,INBUF_LEN);delay(10);}}}。
一个系统中多单片机之间的数据交换C

一个系统中多单片机之间的数据交换Data Exchange Among Multiple Single Chip Computer in One Sy tem张念鲁(北京联合大学生物化学工程学院,北京100023)摘要介绍了在一个监测或监控系统中使用多个单片机时,单片机之间的数据交换方法。
重点阐述了双单片机之间数据交换的双向平行、单向平行、串行、并转串或串转平等数据交换方式,并从硬件和软件两个方面分析了保证数据交换准确性而采取的抗干扰措施。
关键词系统多单片机数据交换方法Abstract The method of data exchange among multiple single chip computers in one measuring or monitoring system is introduced.The Schemes of data ex-change between two single chip computers,e.g.,bi-directional parallel,single directional parallel,seriral,parallel to serial,or serial to parallel,etc.are de-scribed emphatically.The measures of anti-interference to ensure precise data exchange are analyzed from both hardware and software aspects.Keywords System Multiple single chip computers Data exchange Method0引言由于单片机具有价格便宜、功能齐全、体积小、使用起来灵活方便、智能性强等优点,所以在一个监测或监控及仪表系统中越来越多地使用多个单片机。