利用拨码开关控制液晶显示器进行

利用拨码开关控制液晶显示器进行
利用拨码开关控制液晶显示器进行

中北大学

课程设计说明书

学生姓名:陈家龙学号: 0806044241

学院: 电子与计算机科学技术学院

专业: 电子科学与技术

题目: 利用拨码开关控制液晶显示器进行

十进制数字显示

指导教师:孟令军职称: 副教授

2011年 6月 25 日

目录

目录 (1)

1、课程设计目的 (1)

2、课程设计内容和要求: (1)

2.1、设计内容 (1)

2.2、设计要求 (1)

3、设计方案及实现情况 (1)

3.1、设计思路 (1)

3.2、工作原理及框图 (1)

3.3、各模块功能描述 (2)

3.4、仿真结果 (6)

3.5、实验箱连线情况 (14)

3.6 实验验证情况 (14)

4、课程设计总结 (17)

5、参考文献 (17)

1、课程设计目的

1.学习操作数字电路设计实验开发系统,掌握液晶显示模块的工作原理及应用。

2.掌握组合逻辑电路、时序逻辑电路的设计方法。

3.学习掌握可编程器件设计的全过程。

2、课程设计内容和要求:

2.1、设计内容

利用拨码开关控制液晶显示器进行十进数字显示,包括拨码开关控制模块、液晶显示模块、以及控制模块。

2.2、设计要求

1.学习掌握拨码开关控制模块、液晶显示模块的工作原理及应用;

2. 熟练掌握VHDL编程语言,编写拨码开关控制模块的控制逻辑;

3. 仿真所编写的程序,模拟验证所编写的模块功能;

4. 下载程序到芯片中,硬件验证所设置的功能,能够实现十进制数字的显示;

5. 整理设计内容,编写设计说明书。

3、设计方案及实现情况

3.1、设计思路

根据题目设计要求,本系统拟采用自顶向下设计方法,顶层采用原理图设计方法,将整个系统分为拨码开关输入(keyswitch)、功能控制(key)、LCD液晶显示(lcddisp)三个模块,通过对各模块编写程序实现模块功能,最后将三个模块进行综合实现整个系统的功能,通过拨码开关控制液晶显示器进行十进数字显示,能实现三位数任意数的显示。显示范围为:000—999。

3.2、工作原理及框图

图1 系统整体设计原理图

系统的输入信号有:拨码开关(数据输入)信号kdatain2[3..0]、kdatain1[3..0]、kdatain0[3..0],系统时钟信号clk,按键控制key[2..0]、液晶显示应答信号busy。

系统的输出信号有:lcd数据输出(data[7..0]),液晶显示数据请求信号req。

系统的工作过程为:在液晶显示应答信号busy(应答信号=1:已收到数据并正在处理中应答信号=0:模块空闲,可接收数据)为高电平时,液晶显示器没有显示;

当液晶显示应答信号busy为低电平,key(2)为低电平、key(0)为高电平时 ,液晶显示器开始显示;拨码开关控制显示的数字,拨码开关进行译码输出,其中kdatain2[3..0]为百位输入、kadatain1[3..0]为十位输入、kdatain0[3..0]为个输入;每次输入一次需要进行刷新,key(1)为刷新控制开关,当重新输入一个数时,把key(1)拨一下(1-0-1),液晶显示器显示新数;当key(2)为高电平时液晶显示器清屏。

3.3、各模块功能描述

(1)拨码开关输入模块(keyswitch)

该拨码开关的工作原理为:拨码开关有两个工作电平状态(高电平1和低电平0),通过控制拨码开关的电平状态,实现译码输入。

Kdatain2[3..0]、kdatain1[3..0]、kdatain0[3..0]分别为百位、十位、个位的4-16译码输入,译码范围均为00110000-00111001,即0-9(ASCII值)。输出为24位的二进制数,实现译码。模块原理图如下:

图2 拨码开关输入模块

(2)LCD显示控制模块(key[2..0])

该模块的作用为控制清屏、显示和数据刷新,控制开关为3个拨码开关,通过控制程序对LCD的显示状态进行控制。

控制原理如下:

1.清屏和显示: key(1)为高电平时,key(2)为高电平时;实现清屏(即LCD不显示)、key (2)为电平时,LCD可以显示数据;

2.数据刷新:当需要输入一个新数据时,LCD需要进行刷新才能显示新数据;控制原理为:当LCD的状态为显示状态时(key(2)为低电平,key(0)为高电平),key(1)为数据刷新控制键,当需要刷新数据时需要进行一次电平的跳变,即让key(1)从原来的高电平状态变为低

电平,再变回原理的高电平,实现数据的刷新。

该控制模块和LCD模块集成为一个模块原理图如下:

图3 LCD显示控制模块

(3)LCD显示模块(lcddisp)

OCMJ中文模块系列液晶显示器内含GB 2312 16*16点阵国标一级简体汉字和ASCII8*8(半高)及8*16(全高)点阵英文字库,用户输入区位码或 ASCII 码即可实现文本显示。

OCMJ中文模块系列液晶显示器也可用作一般的点阵图形显示器之用。提供有位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。完全兼容一般的点阵模块。

OCMJ中文模块系列液晶显示器可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字,广泛用于各种仪器仪表、家用电器上作为显示器件。它的引脚功能如图4所示。

表1 OCMJ12832引脚功能说明

硬件接口:接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY 高电平(BUSY =1)表示 OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ 空闲,等待接收用户命令。发送命令到 OCMJ可在BUSY =0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ 信号(REQ =1)通知OCMJ请求处理当前数据线上的命令或数据。OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,

用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需5个字节,模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长。

用户通过命令调用 OCMJ 系列液晶显示器的各种功能。命令分为操作码及操作数两部分,操作数为十六进制。共分为 3 类10 条。分别是:

一)、字符显示命令:1、显示国标汉字;2、显示8X8 ASCII字符;3、显示8X16ASCII 字符;

二)、图形显示命令:4、显示位点阵;5、显示字节点阵;

三)、屏幕控制命令:6、清屏;7、上移;8、下移;9、左移;10、右移;

1)显示国标汉字

命令格式:F0 XX YY QQ WW

该命令为5字节命令(最大执行时间为1.2毫秒,Ts2=1.2mS),其中

XX:为以汉字为单位的屏幕行坐标值,取值范围00到07、02到09、00到09

YY:为以汉字为单位的屏幕列坐标值,取值范围00到01、02到03、00到04

QQ WW:坐标位置上要显示的GB2132汉字区位码

2)显示8X8ASCII字符

命令格式:F1 XX YY AS

该命令为4字节命令(最大执行时间为0.8毫秒,Ts2=0.8mS),其中

XX:为以ASCII为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13

YY:为以ASCII为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F

AS:坐标位置上要显示的ASCII字符码

3)显示8X16 ASCII字符

命令格式:F9 XX YY AS

该命令为4字节命令(最大执行时间为1.0毫秒,Ts2=1.0mS),其中

XX:为以ASCII为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13

YY:为以ASCII为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F

AS:坐标位置上要显示的ASCII字符码

4) 显示位点阵

命令格式:F2 XX YY

该命令为3字节命令(最大执行时间为0.1毫秒,Ts2=0.1mS),其中

XX:为以1*1点阵为单位的屏幕行坐标值,取值范围00到7F、02到9F、00到9F YY:为以1*1点阵为单位的屏幕列坐标值,取值范围00到40、00到40、00到40

5) 显示字节点阵

命令格式:F3 XX YY BT

该命令为4字节命令(最大执行时间为0.1毫秒,Ts2=0.1mS),其中

XX:为以1*8点阵为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13 YY:为以1*1点阵为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F BT:字节像素值,0显示白点,1显示黑点(显示字节为横向)

6)清屏

命令格式:F4

该命令为单字节命令(最大执行时间为11毫秒,Ts2=11mS),其功能为将屏幕清空。7)上移

命令格式:F5

该命令为单字节命令(最大执行时间为25毫秒,Ts2=25mS),其功能为将屏幕向上移一个点阵行。

8)下移

命令格式:F6

该命令为单字节命令(最大执行时间为30毫秒,Ts2=30mS),其功能为将屏幕向下移一个点阵行。

9)左移

命令格式:F7

该命令为单字节命令(最大执行时间为12毫秒,Ts2=12mS),其功能为将屏幕向左移一个点阵行。

10)右移

命令格式:F8

该命令为单字节命令(最大执行时间为12毫秒,Ts2=12mS),其功能为将屏幕向右移一个点阵行。

原理图如下图4,datain[23..0]为24位数据输入,data[7..0]为8为数据输出,busy 为应答信号,req为请求信号,key[2..0]为功能控制输入。

图4 LCD显示模块原理框图

3.4、仿真结果

1、VHDL语言源程序

(1)拨码开关控制模块源程序(keyswitch.vhd)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity keyswitch is

port(

kdatain2,kdatain1,kdatain0: in std_logic_vector(3 downto 0);

dataout: out std_logic_vector(23 downto 0)

);

end keyswitch;

architecture behave of keyswitch is

begin

process(kdatain0)

begin

case kdatain0 is --个位

when "0000"=>dataout(7 downto 0)<="00110000"; --30H 即0

when "0001"=>dataout(7 downto 0)<="00110001"; --31H 即1

when "0010"=>dataout(7 downto 0)<="00110010"; --32H 即2

when "0011"=>dataout(7 downto 0)<="00110011"; --33H 即3

when "0100"=>dataout(7 downto 0)<="00110100"; --34H 即4

when "0101"=>dataout(7 downto 0)<="00110101"; --35H 即5

when "0110"=>dataout(7 downto 0)<="00110110"; --36H 即6

when "0111"=>dataout(7 downto 0)<="00110111"; --37H 即7

when "1000"=>dataout(7 downto 0)<="00111000"; --38H 即8

when others=>dataout(7 downto 0)<="00111001"; --39H 即9 end case;

end process;

process(kdatain1)

begin

case kdatain1 is --十位

when "0000"=>dataout(15 downto 8)<="00110000";

when "0001"=>dataout(15 downto 8)<="00110001";

when "0010"=>dataout(15 downto 8)<="00110010";

when "0011"=>dataout(15 downto 8)<="00110011";

when "0100"=>dataout(15 downto 8)<="00110100";

when "0101"=>dataout(15 downto 8)<="00110101";

when "0110"=>dataout(15 downto 8)<="00110110";

when "0111"=>dataout(15 downto 8)<="00110111";

when "1000"=>dataout(15 downto 8)<="00111000";

when "1001"=>dataout(15 downto 8)<="00111001";

when others=>dataout(15 downto 8)<=null;

end case;

end process;

process(kdatain2)

begin

case kdatain2 is --百位

when "0000"=>dataout(23 downto 16)<="00110000";

when "0001"=>dataout(23 downto 16)<="00110001";

when "0010"=>dataout(23 downto 16)<="00110010";

when "0011"=>dataout(23 downto 16)<="00110011";

when "0100"=>dataout(23 downto 16)<="00110100";

when "0101"=>dataout(23 downto 16)<="00110101";

when "0110"=>dataout(23 downto 16)<="00110110";

when "0111"=>dataout(23 downto 16)<="00110111";

when "1000"=>dataout(23 downto 16)<="00111000";

when "1001"=>dataout(23 downto 16)<="00111001";

when others=>dataout(23 downto 16)<=null;

end case;

end process;

end behave;

(2) LCD显示模块源程序(lcddisp.vhd)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity lcddisp is

port ( clk : in std_logic;

busy : in std_logic; --应答信号

req : out std_logic; --请求信号

key : in std_logic_vector(2 downto 0); --控制端

data : out std_logic_vector(7 downto 0); --8位数据端

datain : in std_logic_vector(23 downto 0)); --拨码开关输入end lcddisp;

architecture behave of lcddisp is

type state is (s0, s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,

s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24,s25,

s26,s27,s28,s29,s30,s31,s32,s33,s34,s35,s36,s37,s38,s39,

s40,s41,s42,s43,s44,s45,s46,s47,s48,s49,s50,s51,s52);

signal sta1,sta2 : state :=s0;

signal req1,req2 : std_logic :='0';

signal data1,data2 : std_logic_vector(7 downto 0);

begin

process(clk,key) --进程选择

begin

case key is

when "001" =>

data<=data1;

when "011" =>

data<=data1;

req<=req1;

when "101"=>

data<=data2;

req<=req2;

when others=>

data<="00000000";

end case;

end process;

process(clk,key(0),key(1))

begin

if key(0) = '0'then

sta1<=s0;

req1<='0';

elsif key(1) = '1' then

if clk'event and clk='1' then

case sta1 is --写个位数

when s0=>

data1<="11110001"; --F1,开始写入8X8显示

sta1 <= s1;

when s1=>

sta1 <= s52;

data1<="11110001";

when s52=>

sta1 <= s2;

data1<="11110001";

req1<='1';

sta1 <= s3;

when s3=>

req1<='0';

sta1<=s4;

when s4=>

data1<="00000100"; --04,写入横坐标

sta1 <= s5;

when s5=>

sta1 <= s6;

when s6=>

req1<='1';

sta1 <= s7;

when s7=>

req1<='0';

sta1<=s8;

when s8=>

data1<="00000000"; --00,写入纵坐标

sta1 <= s9;

when s9=>

sta1 <= s10;

when s10=>

sta1 <= s11;

req1<='1';

when s11=>

req1<='0';

sta1<=s12;

when s12=>

data1<=datain(7 downto 0);

sta1 <= s13;

when s13=>

sta1 <= s14;

when s14=>

req1 <='1';

sta1 <= s15;

when s15=>

req1<='0';

sta1<=s16;

when s16=> --写十位数

sta1<=s17;

when s17=>

data1<="11110001"; -- F1,开始写入8X8显示sta1 <= s18;

sta1 <= s19;

data1<="11110001";

when s19=>

sta1 <= s20;

data1<="11110001";

when s20=>

req1<='1';

sta1 <= s21;

when s21=>

req1<='0';

sta1<=s22;

when s22=>

data1<="00000011"; --03,写入横坐标sta1 <= s23;

when s23=>

sta1 <= s24;

when s24=>

req1<='1';

sta1 <= s25;

when s25=>

req1<='0';

sta1<=s26;

when s26=>

data1<="00000000"; --00,写入纵坐标sta1 <= s27;

when s27=>

sta1 <= s28;

when s28=>

sta1 <= s29;

req1<='1';

when s29=>

req1<='0';

sta1<=s30;

when s30=>

data1<=datain(15 downto 8);

sta1 <= s31;

when s31=>

sta1 <= s32;

when s32=>

req1 <='1';

sta1 <= s33;

when s33=>

sta1<=s34;

when s34=>

data1<="11110001"; -- F1,开始写入8X8显示sta1 <= s35;

when s35=>

sta1 <= s36;

data1<="11110001";

when s36=>

sta1 <= s37;

data1<="11110001";

when s37=>

req1<='1';

sta1 <= s38;

when s38=>

req1<='0';

sta1<=s39;

when s39=>

data1<="00000010"; --02,写入横坐标

sta1 <= s40;

when s40=>

sta1 <= s41;

when s41=>

req1<='1';

sta1 <= s42;

when s42=>

req1<='0';

sta1<=s43;

when s43=>

data1<="00000000"; --00,写入纵坐标

sta1 <= s44;

when s44=>

sta1 <= s45;

when s45=>

sta1 <= s46;

req1<='1';

when s46=>

req1<='0';

sta1<=s47;

when s47=>

data1<=datain(23 downto 16);

sta1 <= s48;

when s48=>

sta1 <= s49;

when s49=>

req1 <='1';

sta1 <= s50;

when s50=>

req1<='0';

sta1<=s51;

when others=>

sta1<=s51;

end case;

end if;

else

sta1<=s0;

end if;

end process;

process(clk,key(0),key(2)) --清屏程序begin

if key(0) = '0'then

sta2<=s0;

req2<='0';

elsif key(2) = '1' then

if clk'event and clk='1' then

case sta2 is

when s0=>

data2<="11110100"; --F4,清屏命令

sta2 <= s1;

when s1=>

sta2 <= s2;

when s2=>

req2<='1';

sta2 <= s3;

when s3=>

req2<='0';

sta2<=s4;

when others=>

sta2<=s4;

end case;

end if;

else

sta2<=s0;

end if;

end process;

end behave;

2.仿真结果

(1)拨码开关输入模块的仿真图

图5 拨码开关仿真图(2)LCD显示模块的仿真图

图6 LCD显示模块仿真图(3)整体模块仿真图

图7 整体输出仿真图

3.5、实验箱连线情况

图8 实验箱总连线

实验箱连线如图8所示,CLK外接1Mhz晶振,当控制开关key[2..0]有效时,即key(2)=0、key(0)=1时,十二个拨码开关控制三位十进制数字显示,显示000-999之间的任意十进制数;当key(1)=1时,key(2)=1实现LCD显示清屏。

用12个拨码开关控制3为数的输入,3个拨码开关控制LCD的显示、刷新与清屏。将程序下载到实验箱上,经检查连线无误后,开启电源,实现实验的验证与仿真。

3.6 实验验证情况

LCD显示器的显示情况为:在有效数值范围内显示000-999之间的任意数,超出这个范围时显示“???”,用开关key[2..0]实现LCD显示、清屏和刷新。

显示结果如下图所示

图 9 显示000-003

图10 显示004-007

图11 显示008-100

图12 显示任意3位数和溢出空值

4、课程设计总结

经过为期四周的课程设计,我对VHDL语言有了更加深刻的认识。VHDL是超高速集成电路的硬件描述语言,它能够描述硬件的结构、行为与功能。另外,VHDL具有并发性,采用自上而下的结构式设计方法,适合大型设计工程的分工合作。在编写程序的时候,我才发现能看懂程序和能自己写程序是两个完全不同的概念,自己一开始写程序时,即便是一个很简单的功能模块,在编译时也可能产生很多错误,在不断的改错过程中,自己对VHDL语言的语法结构有了深刻的理解,对编译过程中常见的错误也有了全面的认识。通过这四周的课程设计,我在熟悉了EDA-V实验箱的操作同时,也学到了很多在学习课本知识时所体会不到的东西。

最初拿到课程设计任务书时,感觉每个模块都在做实验时用过,心想只要把各个模块组合到一起就可以实现系统功能了,但结果其实不然;在用VHDL语言进行系统设计的过程中,时序问题需要我们特别关注,否则在实验箱上进行验证时不会输出正确的结果。

完成此次设计后,我不仅能对Quartus II开发仿真软件熟练操作,能达到学以致用,同时还掌握了LCD显示器的工作原理。经过这一过程,我发现平常的学习在注重理论知识的掌握同时,要加强实验环节,只有通过不断地实践,我们才能把知识掌握的更牢固,理解的更透彻。

5、参考文献

1.任勇峰,庄新敏.VHDL与硬件实现速成. 北京:国防工业出版社,2005

2. 周润景,图雅,张丽敏.基于QuartusII的FPGA/CPLD数字系统设计实例. 北京:电子工

业出版社,2007

2.求是科技.CPLD/FPGA应用开发技术与工程实践.北京:人民邮电出版社,2005

3.罗苑棠.CPLD/FPGA常用模块与综合系统设计实例精讲.北京:电子工业出版社,2007 4. 侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计. 西安:西安电子科技大学出版

社,2010

在EC10上实现四位BCD拨码开关数据输入

在EC10上实现四位BCD拨码开关设定值输入 概要: 本文使用EC10的源型输入功能,利用四个输入口和四个输出口来实现一组四位拨码开关设定值的读入,并且可以在此基础上实现更多位拨码开关设定值的读入,还可在这个程序编制过程中体会到如何在PLC控制系统中节省输入口的一些技巧。 关键词:BCD码、拨码开关、PLC、源型输入、漏型输入 一、拨码开关简介 如果PLC控制系统中的某些控制参数或数据经常需要人工修改,可使用拨码开关与PLC进行连接,在PLC外部进行数据设定或修改。如下图所示的四位一组的拨码开关,每一位拨码开关可以输入十进制的0-9,或者是十六进制的0-A。 BCD拨码开关是十进制输入,BCD码(即2-10十进制)输出,又称为8421拨码开关。每位BCD拨码开关可输入1位10进制数,4片BCD拨码开关拼接可得4位10进制输入拨码组。每个BCD拨码开关后面有5个接点,其中C为输入控制线,另外4根是BCD 码输出信号线。拨盘拨到不同的位置时,输入控制线C分别与4根BCD码输出线中的某根或某几根接通。其接通的BCD码输出线状态正好与拨盘指示的10进制数相一致,符合2-10进制编码关系。 拨码开关外形图拨码开关接线端子图 二、PLC的源型输入 EC10系列PLC提供给用户进行输入方式的选择,端子排上的S/S端子用来选择信号的输入方式,可以设置成源型输入方式或漏型输入方式。将S/S端子与+24V端子相连,即设置为漏型输入方式,可以连接NPN型传感器,PLC的+24V端子和COM端子配合,提供给输入元件24V直流电源;将S/S端子和COM端子相连,即设置为源型输入方式,可以连

接PNP 型传感器,这时外部输入元件将使用外部辅助电源。 EC20出厂设置为漏型输入,但可通过改焊PLC 内部接口板上的JP0、JP1、JP2三个跳线(0欧姆SMT 电阻)来实现源型输入,参照板上的丝印说明(√表示焊接,×表示断开): JP0 JP1 JP2 源型输入方式 √ × × 漏型输入方式(出厂设置) × √ √ 在主模块中,所以的输入端口只能采用同一种输入方式(源型或漏型),如果EC20需要采用源型输入方式,请在订货时咨询供应商,不要擅自改动,以免造成损坏。 在本文中,要利用四个PLC 输入端口实现四位拨码开关设定值的读入,因此将使用四个PLC 输出口来分别控制四位拨码开关的依次读入,所以对于PLC 输入口而言,是采用源型输入方式。 下图为源型输入方式的EC10主模块输入端口内部等效电路图 三、设备及连线 设备器材说明:EC10-1614BTA 1台 四位拨码开关 1只 二极管IN4001 16只 PLC 接线图: 各种信号输入设备

拨码开关选择屏幕说明

拨码开关选择屏幕说明 (ON 是0 , OFF 是 1) 1 2 3 4 Panel 1 1 1 1 STD_1366_768_Voltage① 1 1 1 STD_1366_768_PWM② 1 0 1 1 STD_1920_1080_8Bit_Voltage③ 0 1 1 STD_1920_1080_8Bit_PWM④ 1 1 0 1 STD_1920_1080_10Bit_Voltage⑤ 1 0 1 STD_1920_1080_10Bit_PWM⑥ 1 0 0 1 TBD 0 0 1 TBD 1 1 1 0 TBD 1 1 0 TBD 1 0 1 0 TBD 0 1 0 TBD 1 1 0 0 TBD

1 0 0 TBD 1 0 0 0 TBD 0 0 0 0 TBD ① STD_1366_768_Voltage 表示我们支持标准的1366X768分辨率的屏,不分具体的三星的还是LG,或者其他品牌的,只要是分辨率1366X768的都支持,并且是通过电压控制背光亮度的. ② STD_1366_768_PWM 表示我们支持标准的1366X768分辨率的屏,不分具体的三星的还是LG,或者其他品牌的,只要是分辨率1366X768的都支持,并且是通过PWM 控制背光亮度的. ③ STD_1920_1080_8Bit_Voltage 表示我们支持标准的1920X1080分辨率的屏,并且输出是 8BIT 的 RGB 数据,不分具体的三星的还是 LG,或者其他品牌的,只要是分辨率 1920X1080的都支持,并且是通过电压控制背光亮度的. ④ STD_1920_1080_8Bit_PWM 表示我们支持标准的1920X1080分辨率的屏, 并且输出是8BIT 的RGB 数据,不分具体的三星的还是LG,或者其他品牌的,只要是分辨率1920X1080的都支持,并且是通过PWM 控制背光亮度的. ⑤ STD_1920_1080_10Bit_Voltage 表示我们支持标准的1920X1080分辨率的屏, 并且输出是10BIT 的RGB 数据,不分具体的三星的还是LG,或者其他品牌的,只要是分辨率1920X1080的都支持,并且是通过电压控制背光亮度的. ⑥ STD_1920_1080_10Bit_PWM 表示我们支持标准的1920X1080分辨率的屏, 并且输出是10BIT 的RGB 数据,不分具体的三星的还是LG,或者其他品牌的,只要是分辨率1920X1080的都支持,并且是通过PWM 控制背光亮度的. ⑦ TBD 的都是预留给以后其他分辨率的屏.

828D调试流程

828D调试流程 一、上电前检查 1. 查线:包括反馈、动力、24V电源,地线。 2. 查拨码开关,MCP(7,9,10)和PP72/48(1,4,9,10)。 二、上电调试 1. 检查版本 2. 初始设定:语言,口令,日期时间,选项,MD12986,RCS连接 3. 检查PLC I/O是否正确,包括急停、硬限位… 4. 检查手轮接线(DB2700.DBB12) 5. 下载PLC 6. 检查急停功能是否正常 7. 驱动调试:拓扑识别,分配轴,修改拓扑比较等级(p9906),配置供电数据,电网识别(p3410) 8. 调整硬限位 9. NC数据设定:机械参数,轴速度,方向,设置零点,软限位…(参见附表) 10. 刀库调试 11. 辅助功能调试 12. 基本功能备份(BASIC_FUNCTION.ard),驱动要选ASCII格式 13. 考机48小时 三、伺服优化 1. 轴策略选适中 2. 自动优化,导出每个轴的优化结果(.xml)和优化报告(.rtf) 3. 各轴参数整定,策略1101,选择所有轴,包括主轴 4. 圆度测试 四、激光干涉仪测试 1. 螺补 2. 反向间隙 3. 球杆仪测试 五、试切 1. 标准圆,标准方 2. 机床厂自己样件 六、备份 1. 机床测试协议 2. 电柜检查表 3. ard全部备份 4. NC生效数据全部备份:测量系统误差补偿,机床数据,设定数据,刀具/刀库数据… 5. 制造商循环备份,包括换刀子程序L6或者TCHANGE,TCA,CYCPE_MA,MAG_Conf… 6. PLC程序备份.ptp 7. PLC报警文本.ts和.qm,报警帮助文本 8. Easy Extend 9. 用户自定义界面 10. E-log,txt和xml

DSP实验二 拨码开关实验

实验二拨码开关实验 —、实验目的 1.了解DSP开发系统的组成和结构 2.了解IO的基本编程方法 二、实验设备 计算机,CCS3.3版本软件,DSP仿真器,E300实验箱,2812CPU板。 三、实验原理 8位的数字量输入(由拨码开关产生),当拨码打到靠近LED时为低。相反为高。通过 74LS244(可读)缓冲连接到DSP的数据总线的低8位。CPU通过读指令读取到拨码开关产 生的8位输出的数字量,然后CPU通过写指令把读出的8位数字量写入(0x2200)单元内, 使连接到DSP的数据总线的低8位的74LS273的输出端产生高低信号,此时LED灯产生亮灭。 当对应LED灯点亮时说明输出为低,熄灭时为高。 (器件74LS244和74LS273详细的介绍请参看数据手册) 数字量输入输出单元的资源分配如下: 基地址:2000h(当CS1为0时分配有效) 数字量分配空间为数据空间地址:基地 址+0x2200(低8位,只读) 拨码开关扩展工作原理 说明:74LS244片选号、74LS273 片选信号和74LS273复位信号由E300 上CPLD译码产生。 本实验使用DSP数据总线的低8 位。 实验任务一: 1、编写程序完成将拨码开关的信息读入DSP,然后再将该信息回写,控制led灯。调整"数字输入输出单元"的开关K1~K8,观察LED1~LED8灯亮灭的变化。 2、本实验的程序流程框图如下:

3、输入主要程序 #include "DSP281x_Device.h" // DSP281x Headerfile Include File #include "DSP281x_Examples.h" // DSP281x Examples Include File void main(void) { unsigned int temp; temp = 0; DINT; InitSysCtrl(); InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); for(;;) { asm(" nop "); temp = *(int *)0x2200&0x00ff; asm(" nop "); * (int *)0x2200 = temp; asm(" nop "); } } 四、实验步骤(步骤基本与实验一相同) 1. 2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON。 2.E300板上的开关SW4的第二位置ON,其余OFF;SW5开关全部置ON;其余开关全部置OFF。 3.运行Code Composer Studio (CCS)(CCS3.3需要“DEBUG→Connect”) 4. 用“Project\open”打开系统项目文件 路径为“c:\DSP_examep\DSP281X_examples\e300_02_switch\Example_281x_switch.pjt”双击该文件 5、输入主要程序。

拨码开关输入数码管显示实验

综合课程设计实验报告 班级: 姓名: 学号:11 指导老师:

实验名称: 拨码开关输入数码管显示实验 实验要求: 1. 掌握数码管显示原理 2. 掌握拨码开关工作原理 3. 通过FPGA用拨码开关控制数码管显示 实验目标: 4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。 实验设计软件 Quartus II 实验原理 1.数码管显示模块 电路原理图:

如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。 2.拨码开关模块 电路原理图: 拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。 程序代码 module bomakaiguan(out,key_in,clk); assign p='b1111; output[7:0] out=8'b; input[7:0] key_in; input clk; reg[7:0] out; always @(posedge clk) begin case(key_in) 8'b: out=8'b;

S3实验三 按键拨码开关实验指导手册

高性能软件无线电平台 X6-面向高性能SoC验证和科学仿真 主要特性 支持PCI Express? Gen2 ×8 (但IP另配) 搭载DDR3 SDRAM SO-DIMM系统 搭载FMC连接器,可使用大部分Rocket I/O(GTX) 利用FMC可选基板能够对应各种接口 提供PCI Express和DMA等参考设计 无限扩展行业应用

下一代软件无线电平台 微软研究院软件无线电( Sora )是一种新型基于PC 的可编程无线电平台架构。 Sora 结合了可 编程性和通用处理器(GPP )平台的性能和灵活性,同时使用的硬件和软件技术,以满足高性能 的无线通信算法的计算挑战。 Sora 平台提供 Soft WiFi 开源代码。SoftWiFi 目前支持率的802.11a/b/g 全部协议,无缝 地与商业802.11网卡实现互操作,并达到商业网卡相当的性能。 Sora 是第一平台真正的软件 无线电平台,支持用户开发的802.11a/b/g ,如物理层和MAC ,软件完全是标准PC 架构。 典型应用: White Spaces Mobile Phones Public Safety Radio Land Mobile Broadcast TV and FM Radio Satellite navigation Covers 6 Amateur Radio Bands 射频部分主要特性: Dull-duplex Transceiver 50 MHz to 5.8 GHz coverage 50-100mW (17-20dBm) from 50 MHz to 1.2 GHz 30-70mW (15-18dBm) from 1.2 GHz to 2.2 GHz 25+ dB Output power control range under software control Receive Specs: Noise figure of 5-7 dB IIP3 of 5-10 dBm;IIP2 of 40-55 dBm 全频带射频收发模块

fpga 拨码开关控制流水灯方向

module LED ( CLK_50M,RST_N,SW1, LED ); input CLK_50M; input RST_N; input SW1; output LED; reg [26:0] time_cnt; reg [26:0] time_cnt_n; reg [ 7:0] led_out; reg [ 7:0] led_out_n; wire[ 7:0] LED; parameter SET_TIME = 27'd25_000_000; always @ (posedge CLK_50M or negedge RST_N) begin if(!RST_N) time_cnt <= 27'b0; else time_cnt <= time_cnt_n; end always @ (*) begin if(time_cnt == SET_TIME) time_cnt_n = 27'b0; else time_cnt_n = time_cnt + 1'b1; end always @ (posedge CLK_50M or negedge RST_N) begin if(!RST_N) led_out <= 8'b10000000; else led_out <= led_out_n; end always @ (*)

begin if((time_cnt == SET_TIME) & SW1 == 1'b1) led_out_n = {led_out[6:0],led_out[7]}; else if((time_cnt == SET_TIME) & SW1 == 1'b0) led_out_n = {led_out[0],led_out[7:1]}; else led_out_n = led_out; end assign LED = ~led_out; endmodule

Dl1通用型使用说明书

DL1 电梯应急装置安装、调试、使用说明书 广东省佛山市顺德区陈村镇鼎力电源设备厂 2004.06.12 地址:广东省佛山市顺德区陈村镇永兴工业区 电话:(0757)23350222 (0757)23331533转801 传真:(0757)23331533转808 E-mail:sddldy@https://www.360docs.net/doc/8116832295.html,

安装前注意事项 ● 1.为了正确安装、调试和使用DL1型电梯应急装置,请您务必先认真阅读本产品说明书。 ● 2.为了避免造成人员及设备事故,本产品的安装、调试及维修等必须采取以下安全措施:(1).在进行本产品的安装、连接工作之前,心须切断电梯总电源。 (2).电梯设备应接地良好。 (3).请按本说明书中提示或警告小心行事,以防对安装或维修人员造成伤害,同时避免损坏电梯设备。 (4).在接通电源调试之前,心须确保电梯应急装置与电梯电气系统之间连接正确。(5).由于电梯系统中有移动部件,对人员和设备等都会产生危险,因此要求本产品的安装、连接及维修等工作均应该由懂得电梯操作、电梯性能和有关现行电梯行业安全规程的专业人员进行,以便能识别和避免可能发生的危险。 ● 3.本说明书陈述了DL1型电梯应急装置的安装和连接步骤,信号端子说明,调试和使用、 以及出现的故障和排除方法等。对电梯应急装置的安全操作,必须仔细阅读本说明书,才能防止由于方法不当而造成对人员伤害和电梯系统的损坏。 ● 4.若须技术咨询请电话或传真与本厂技术部联系。 电话:(0757)23331533-803 传真:(0757)23331533-808 ● 5.本着遵循企业不断发展的原则,本厂可能未作通知而对产品进行修改。

拨码开关控制流水灯实作报告

《拨码开关控制流水灯》实作报告 班级:姓名: 一、任务描述: 利用一只拨码开关控制流水灯的流动方向。拨码开关往上拨动时,流水灯自左往右流动,拨码开关往下拨动时,流水灯自右往左流动。流动速度不限。 往上拨动 往下拨动 二、要完成本次任务,你需要把以下问题搞清楚: 1、硬件连接: 根据任务描述,共需要根导线连接LED灯,根导线连接拨码开关。共需要根导线。 2、程序设计: (1)实验箱上拨码开关往上拨动时输出电平,用数字来表示。往下拨动时输出电平,用数字来表示。 (2)本例程序(需要/不需要)导入头文件? 提示:是否用到了I/O口,P0、P1、P2或P3 )本例程序(需要? 提示:是否需要移位,有要求做流水灯效果吗? )本例程序(需要 (5)本例程序对流水灯流动速度不作要求,(需要/不需要)延时子函数。(6)本例程序(需要/不需要)对某些引脚进行位定义(单独使用)?有的话,是哪些脚? (7)利用(if/while/for)基本语句和逻辑运算符来判断拨码开关当前状态是往上拨动,还是往下拨动;利用(if/while/for)基本语句来反复扫描拨码开关的状态。 (8)流水灯的三要素是:P1=a; yanshi(数值);数值大小决定的led的

a=_cror_(a,1);或=_crol_(a,1); 3、把程序补充完整(假定拨码开关接P2.0脚,LED接P1脚) #include< > //导入头文件,方便寻址// # include< > //导入头文件,便于使用移位指令// #define unsigned int //宏定义,简化程序// void yanshi(uint); //声明子函数// sbit k= ; //位定义单独使用的引脚// uint a=0x ; //设置流水灯初值// void main() //主函数// { (1) //死循环// { if(k= = ) //判断拨码开关状态// { P1= ; //将a值送给P1口// yanshi( ); //延时// a=_crol_(a,1); //a向左移动一位// } if(k= = ) //判断拨码开关状态// { P1= ; //将a值送给P1口// yanshi( ); //延时// a=_cror_(a,1); // a向右移动一位// } } } void yanshi(uint x) //延时子函数// { uint i,j; for(i=x;i>0;i--) for(j= ;j>0;j--); }

拨码开关控制实验电路

拨码开关控制实验电路图 流程图

/* 基本开关控制实验 */ //==宣告区================================= #include //定义8051头文件,引入reg52.h #define SW P2//定义开关接至P2 #define LED P1//定义LED接至P 1 //==主程式================================= main()//主程序开始 { SW=0xff;//规划输入端口 while(1)//无穷循环,程式一直跑 LED=SW;//读取开关(P2)状态,输出到LED(P1) }//主程序结束 思考一下! 在本实验里,有没有“抖动”的困扰? 若希望拨码开关中的S1、S3、S5三个开关都on,则前四个LED 亮;S2 或 S4 或 S6开关 on,则后四个LED 亮;S7及 S8 开关 on,则所有LED全亮,程序应如何编写? 若将拨码开关换成一般家里墙壁上的开关,而LED换成继电器(RELAY),是否可作为家里的负载控制?

按钮ON-OFF控制实验 按钮 ON-OFF 控制实验电路图 流程图如下:

/* 基本按钮 ON-OFF控制实验 */ //==声明区======================================= #include//定义8051头文件,引入reg52.h sbit PB1=P2^0;//声明按钮1接至P2.0 sbit PB2=P2^1;//声明按钮2接至P2.1 sbit LED=P1^0;//声明LED为P1.0 //==主程式======================================= main()//主程序开始 { LED=1;//关闭LED PB1=PB2=1;//规划输入端口 while(1)//无穷循环,程式一直跑

我的51单片机之 拨码开关 的 C语言与汇编的编程

拨码开关实验 一、功能: 拨码开关打上某一位,点亮一只对应的指示灯。 二、电路图: 三、C程序: //************************************************************** //用四只发光二极管指示拨码开关每一位的状态。made by luqichao //************************************************************** #include #include #define LEDCODE P1 sbit B1=P3^2; sbit B2=P3^3; sbit B3=P3^4; sbit B4=P3^5; sbit LD1=P1^0; sbit LD2=P1^1; sbit LD3=P1^2; sbit LD4=P1^3; void main() { P1=0xFF; P3=0xFF; if(B1==0){LD1=0;};//b1 if(B2==0){LD2=0;};//b2 if(B3==0){LD3=0;};//b3 if(B4==0){LD4=0;};//b4 }

四、汇编程序: ;************************************************************** ;用四只发光二极管指示拨码开关每一位的状态。made by luqichao ;************************************************************** ORG0000H AJMP MAIN ORG0030H LEDCODE EQU P1 B1EQU P3.2; B2EQU P3.3; B3EQU P3.4; B4EQU P3.5; LD1EQU P1.0; LD2EQU P1.1; LD3EQU P1.2; LD4EQU P1.3; MAIN: MOV P1,0xFF; MOV P3,0xFF; START: JNB B1,A1; JNB B2,A2; JNB B3,A3; JNB B4,A4; AJMP START; A1:CLR LD1;//b1 AJMP START; A2:CLR LD2;//b2 AJMP START; A3:CLR LD3;//b3 AJMP START; A4:CLR LD4;//b4 AJMP START; END;

利用拨码开关控制米字管进行字母显示

中北大学 课程设计说明书 学生姓名:魏祥学号:0706024140 学院: 电子与计算机科学技术学院 专业: 微电子学专业 题目: 利用拨码开关控制米字管进行字母显示 指导教师:王红亮职称: 讲师 2010年 6月 25日

目录 1.课程设计目的 (2) 2.课程设计内容及要求 (2) 2.1设计内容 (2) 2.2设计要求 (2) 3.设计方案及实现情况 (2) 3.1设计思路 (2) 3.2工作原理及框图 (2) 3.3各模块功能描述 (3) 3.4仿真结果 (4) 3.5试验箱验证情况 (5) 4.课程设计总结 (7) 5.参考文献 (7)

1、课程设计目的 (1).学习操作数字电路设计实验开发系统,掌握米字管的工作原理及应用。 (2).掌握组合逻辑电路、时序逻辑电路的设计方法。 (3).学习掌握可编程器件设计的全过程。 2、课程设计内容和要求: 2.1、设计内容 用VHDL语言编写程序,利用拨码开关控制米字管进行字母显示。 2.2、设计要求 (1).学习掌握拨码开关控制模块、米字管的工作原理及应用; (2). 熟练掌握VHDL编程语言,编写拨码开关控制模块的控制逻辑; (3). 仿真所编写的程序,模拟验证所编写的模块功能; (4). 下载程序到芯片中,硬件验证所设置的功能,能够实现字母显示; (5). 整理设计内容,编写设计说明书。 3、设计方案及实现情况 3.1、设计思路 这个实验是用米字管显示26个英文字母,通过五个拨码开关不同的高低状态表示26种不同的字母显示。 3.2、工作原理及框图 米字管显示字母的原理是将米字管分成16个状态,通过不同的管脚的状态显示其16个不同的模块,再用拨码开关显示其不同模块的亮暗程度,从而达到显示不同字母的功能。当复位信号为高时,二进制显示输出为:"1111111111111111"。当复位信号为低,处于上升沿状态是,二进制分别显示,显示A—Z的二进制代码分别为: "0011000000011010"、"0111100000101001"、"1100111100000000"、"0000001101000010"、"1100111110001000"、"1100001110001000"、"1101111100001000"、"0011001110001000"、"1100110000100001"、"1100010000100001"、"0000000000110101"、"0000111100000000"、"0001001010001001"、"0001101010000001"、"1111111100000000"、"1000001110100000"、"1111111100000100"、"0110000000101101"、"0101100000101000"、"1100000000100001"、"0011111100000000"、"0000000001010000"、"0010000110101000"、"0000000001010110"、"0000000001010001"、"1100110000010010"。当拨码开关显示超过"11001"时,二进制显示输出为

拨码开关程序

$include(c8051f360.inc) DAT BIT P1.0 CLK BIT P1.1 DAT1 BIT P1.4 CLK1 BIT P1.5 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV SFRPAGE,#00H MOV PCA0MD ,#00H //关看门狗 MOV P1,#0FFH MOV 30H,#10 MOV 31H,#10 MOV 32H,#06 MOV 33H,#05 MOV 34H,#04 MOV 35H,#03 MOV 36H,#02 MOV 37H,#01 MOV 38H,#10 MOV 39H,#10 // 显示缓冲单元 LCALL INIT //360系统初始化 CALL DISP// CALL DELAY CALL DELAY A1: CALL KEY_DOOR// CALL DISP CALL DELAY// AJMP A1// //------------------------------------------------------------- INIT: MOV SFRPAGE, #0FH MOV OSCICN , #83H //使能内部高频振荡器,且不分频=24.5MHZ MOV RSTSRC , #40H //使能VDD MOV P1MDOUT, #27H //P1.4(165的输出端)为漏极开路 //P1.5 P1.2 P1.1 P1.0为推挽输出MOV XBR1, #40H //使能交叉开关 MOV SFRPAGE, #00H RET //------------------------------------------------------------ KEY_DOOR: JB P2.0,B1// MOV 32H,#0FFH//拨码开关1闭合(ON)——一号数码管灭

联络开关说明

矿用隔爆型真空馈电开关使用说明书 本系列开关是用于煤矿移动变电站低压侧馈电开关,和煤矿井下配电系统总开关或分支开关。也可作为不频繁起动的电动机控制开关。 本厂生产的馈电开关有采用单片计算机保护系统和电子式保护系统两种。此说明书只适用于电子式保护系统。 一、概述 KBZ- /1140?660矿用隔爆型真空馈电开关是用于煤矿移动变电站低压侧馈电开关,和煤矿井下配电系统总开关或分支开关。也可作为不频繁起动的电动机控制开关。 本厂生产的馈电开关有采用单片计算机保护系统和电子式保护系统两种。此说明书只适用于电子式保护系统。 二、使用环境条件 1、海拔高度不超过1000米; 2、周围环境温度-5~40℃; 3、周围空气相对湿度不超过95%(+25℃); 4、污染等级为3级,安装类别为Ⅲ类; 5、在有甲烷和煤尘爆炸危险的空气中; 6、在没有淋水的地方; 7、无对金属和绝缘体有害的气体; 8、安装倾斜都不大于15度,没有强烈震动场所。 三、基本参数 额定电压1140V或660V 额定电流630A、500A、400A 电源频率50Hz 工作制连续工作制 控制操作电压~48V、~127V 外型尺寸508×780×854 重量300kg 极限通断能力12.5KA(630开关) 9KA(400、500开关) 电寿命3000次 机械寿命10000次 四、结构 1、壳体用钢板焊接加工制成。门为快动平面止口式,利用左侧凸轮手柄提起,转移出止口限位范围,即可将门打开,使用方便。 2、前门上装有电压表、电流表、KΩ表、信号显示窗、复位按扭、过流按扭、漏电按扭。箱体右侧设有合闸按扭、分闸按扭、隔离开关手柄。 3、箱体上部是隔爆型接线腔,有四个主电缆引出口和三个控制电缆引出口。与移动变电站配套运行时,可四路同时输出;作为配电系统总开关或分支开关时,其中一路作为电源输入,其余可同时输出。 4、箱体腔内上部装有真空断路器,它与主回路连接采用三相插接式结构,利用装在腔内上方的杠杆可方便的将断路器沿导轨推入或拉出,使其接入或断开电源和负载。

实验四 指示灯和拨码开关控制

实验四指示灯和拨码开关控制 一、实验目的 1.了解ICETEK-VC5509-A 板在TMS320VC5509DSP 外部扩展存储空间上的扩展。 2. 了解ICETEK-VC5509-A 板上指示灯和拨码开关扩展原理。 3. 学习在C 语言中使用扩展的控制寄存器的方法。 二、实验内容 1.TMS320VC5509DSP 的EMIF 接口 外部存储器接口(EMIF) 是DSP 扩展片外资源的主要接口,它提供了一组控制信号和地 址、数据线,可以扩展各类存储器和寄存器映射的外设。 - ICETEK-VC5509-A 评估板在EMIF 接口上除了扩展了片外SDRAM 外,还扩展了指示灯、 DIP 开关和D/A 设备。具体扩展地址如下: 400800-400802h:D/A 转换控制寄存器 400002h:板上DIP 开关控制寄存器 400001h:板上指示灯控制寄存器 - 与ICETEK-VC5509-A 评估板连接的ICETEK-CTR 显示控制模块也使用扩展空间控制主 要设备: 602800-602800h:读-键盘扫描值,写-液晶控制寄存器 600801-600801h:液晶辅助控制寄存器 602801h、600802h:液晶显示数据寄存器 602802-602802h:发光二极管显示阵列控制寄存器 2.源程序分析 Led.c #include "func.h" // 定义指示灯寄存器地址和寄存器类型 #define LBDS (*((unsigned int *)0x400001)) // 子程序接口 void Delay(unsigned int nDelay); // 延时子程序 main() { unsigned int uLED[4]={1,2,4,8}; // 控制字,逐位置1: 0001B 0010B 0100B 1000B int i;

云台、球机拨码说明书01

吉达球机拨码说明(自动识别协议)ON=开OFF=关 8位码设置7、8位为波特率7位8位波特率 0 0 2400 1 0 4800 0 1 9600 1至6位为地址:拨1—为球机地址1 拨2---为球机地址2 9位码设置:1、3位为波特率1位2位3位波特率 0 0 0 2400 0 0 1 4800 0 1 0 9600 4、5、6、7、8、9位为地址:4 5 6 7 8 9 地址1:OFF OFF OFF OFF OFF ON 地址2:OFF OFF OFF OFF ON OFF 地址3:OFF OFF OFF OFF ON ON 地址4:OFF OFF OFF ON OFF OFF 明日高速球拨码说明(双8位拨码)ON=开OFF=关 双8位码设置 1 2 3 4 5 6 7 8SW1开关 PELCO-P协议ON OFF PELCO-D协议OFF ON LG像机ON OFF OFF OFF SONY像机ON OFF ON OFF 波特率:1200 OFF OFF 2400 ON OFF

4800 OFF ON 8位地址码 1 2 3 4 5 6 7 8 SW2开关地址1 ON OFF OFF OFF OFF OFF OFF OFF 地址2 OF ON OFF OFF OFF OFF OFF OFF 地址3 ON ON OFF OFF OFF OFF OFF OFF 地址4 OFF OFF ON OFF OFF OFF OFF OFF 预置位功能调用: 80 关闭摄象机电子放大 92—93 平衡扫描控制限位 95 进入菜单 96 停止扫描 98 调用预置位 99 自动扫描 C M--590恒速球机拨码设置: 球机地址八位码设置:BK1 1 2 3 4 5 6 7 8 地址1 ON 0FF 0FF 0FF 0FF 0FF 0FF OFF 地址2 OFF ON OFF OFF OFF OFF OFF OFF

DSP拨码开关控制实验报告

DSP控制器原理与应用 实验课名称:DSP控制器原理与应用实验项目名称:拨码开关控制实验专业名称: 班级: 学号: 姓名: 教师姓名: 2016年6月3日

一.实验名称: 拨码开关控制实验 二.实验目的与要求: 1.了解ICETEK–F2812-A评估板在TMS320F2812DSP 外部扩展存储空间上的扩展。 2.了解ICETEK–F2812-A 评估板上拨码开关扩展原理。 3.熟悉在C 语言中使用扩展的控制寄存器的方法。 三.实验内容和步骤: 1 .实验准备 连接实验设备,关闭实验箱上扩展模块和信号源电源开关。 2 .设置Code Composer Studio 3. 3 在硬件仿真(Emulator) 方式下运行 3 .启动Code Composer Studio 3.3,选择菜单Debug→Reset CPU。 4 .打开工程文件 工程文件为:C:\ICETEK\F2812\DSP281x_examples\Lab0302-DIP\DIP.pjt,打开源程序DIP.c 阅读程序,理解程序内容。 5 .编译、下载程序。 6 .运行程序,观察结果。 7 .拨动拨码开关的各位,观察指示灯DS1-DS4 的显示。 8 .退出CCS。 四.实验仪器与设备: 计算机; ICETEK-F2812-A 实验箱。 五.实验原理: 1 .TMS320F2812DSP 的存储器扩展接口 存储器扩展接口是DSP 扩展片外资源的主要接口,它提供了一组控制信号和地址、数据线,可以扩展各类存储器和存储器、寄存器映射的外设。 -ICETEK–F2812-A评估板在扩展接口上除了扩展了片外SRAM外,还扩展了指示灯、DIP 开关和D/A 设备。具体扩展地址如下: C0002-C0003h:D/A 转换控制寄存器

优高小编介绍拨码开关的作用和原理

优高小编介绍拨码开关的作用和原理? 拨码开关(也叫DIP开关,拨动开关,超频开关,地址开关,拨拉开关,数码开关,指拨开关)是一款用来操作控制的地址开关,采用的是0/1的二进制编码原理。那么拨码开关的作用和原理如何呢?下面小编和大家来谈谈。 拨码开关的作用: 1、拨码开关(在许多专业阐述中也叫做DIP开关、拨动开关、超频开关、地址开关、拨拉开关、数码开关、指拨开关等)是一款用来操作控制的地址开关,采用的是0/1的二进制编码原理。拨码开关最早是由日本一家名为OMRON的公司研发出来的,在当时还只是一种没什么人气的但是具有创始性设计的地址开关。但是在之后的几十年的开展过程中,拨码开关随着用处的越来越多也被普遍运用起来,人们

关于这种开关的理解也逐步加深起来,在目前市面上,用量最普遍的拨码开关应该大都是在台湾消费的,毕竟台湾是十分注重电子产业的开展,而且技术性人才也是十分可观的。不过近年来大陆也有很多厂家参加到拔码开关消费的行列当中,并且也都获得了不错的成果。 2、拔码开关主要被普遍运用于数据处置、通讯、遥控和防盗自动警铃系统、风淋室等需求手动程式编制的产品上。也就是拨码开关是需求人为的停止一定的编码后才能够发挥作用。拨码开关作为需求手动操作的一种微型开关,在通讯和安防等设备的产品上应用较多。大局部拨码开关都是采用直插式的设计,在两种状态之间停止变换,然后再依据不同的位组成2的N次方的不同状态,以此来完成其不同的功用。假如要细分的话,还包含有很多种其他的系列,这里引见一个简单详细的系列。 3、拨码开关的每一个键对应的反面上下各有两个引脚,假如拨至ON一侧,则下面的两个引脚会接通;反之则会断开。而四个键之间是独立的,互相没有关联。我们能够设接通为1;断开为0,则有0000到1111一共16种编码,而这些详细的用处要看主板的定义,普通状况下,用法和含义都会标注在电路板上。 拔码开关的原理: 1、你的电路板上,连接P1口的插座旁,因为有二极管隔离,偏置电阻一般是连接低电平,连接有防止输入端悬空的偏置电阻,当BCD拨码开关选中的输出端,将输出高电平,其它输入端仍保持低电

拨码开关控制实验电路图

拨码开关控制实验电路图 拨码开关控制实验电路图 流程图 /* 基本开关控制实验 */ //==宣告区================================= #include //定义8051头文件,引入reg52.h #define SW P2//定义开关接至P2 #define LED P1//定义LED 接至P 1 //==主程式================================= main()//主程序开始 { SW=0xff;//规划输入端口 while(1)//无穷循环, 程式一直跑 LED=SW;//读取开关(P2)状态, 输出到LED(P1) }//主程序结束 思考一下! 在本实验里,有没有“抖动”的困扰? 若希望拨码开关中的S1、S3、S5三个开关都on ,则前四个LED 亮;S2 或 S4 或 S6开关 on,则后四个LED 亮;S7及 S8 开关 on,则所有LED 全亮,程序应如何编写? 若将拨码开关换成一般家里墙壁上的开关,而LED 换成继电器(RELAY ),是否可作为家里的负载控制? 按钮ON-OFF 控制实验 按钮 ON-OFF 控制实验电路图 流程图如下: /* 基本按钮 ON-OFF 控制实验 */ //==声明区======================================= #include//定义8051头文件,引入reg52.h

sbit PB1=P2^0;//声明按钮1接至P2.0 sbit PB2=P2^1;//声明按钮2接至P2.1 sbit LED=P1^0;//声明LED 为P1.0 //==主程式======================================= main()//主程序开始 { LED=1;//关闭LED PB1=PB2=1;//规划输入端口 while(1)//无穷循环, 程式一直跑 { if (PB2==0) LED=1;//若按下PB2,则关闭LED else if (PB1==0) LED=0;//若按下 PB1,则点亮LED }//while循环结束 }//结束程序 思考一下! 在本实验里,有没有“抖动”的困扰?若将按钮开关当成启动电机的 ON-OFF 开关,而 LED 换成继电器(RELAY ),是否可作为电机控制? 若同时按下 PB1 与 PB2按钮会怎样? 按钮切换式控制实验 按钮切换式控制实验电路图 流程图 实验代码: /* 按钮切换式控制实验 */ //==声明区===================================== #include//定义8051头文件,引入reg52.h sbit PB1=P2^0;//声明PB1接至P2.0 sbit LED=P1^0;//声明LED 接至P1.0 void debouncer(void);//声明防弹跳函数 //==主程序===================================== main()//主程式开始 { LED=1;//关闭LED PB1=1;//规划P2.0为输入埠

相关文档
最新文档