vhdl实现脉冲按键电话按键显示电路_嗯哼AD钙的博客-程序员秘密

技术标签: vhdl  

在这里插入图片描述
顶层文件telphone.vhd

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY telphone IS 
 PORT(DIN1: IN STD_LOGIC_VECTOR(6 DOWNTO 0);
	clk3:in std_logic;
	CLK1,CLEAR,DIAL,RE_DIAL,delete:IN STD_LOGIC;
	KEYOUT:OUT STD_LOGIC;
	SEG71:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
	SEG8:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
	timebegin:in std_logic;
	botong:out std_logic;
	reset1:in std_logic
 );
 END ENTITY;
 
 ARCHITECTURE ART OF telphone IS
COMPONENT SET_NUM IS 
 PORT(DIN:IN STD_LOGIC_VECTOR(6 DOWNTO 0);
	  clk3:in std_logic;
	  CLK,CLEAR,DIAL,RE_DIAL,delete:IN STD_LOGIC;
	  KEYOUT:OUT STD_LOGIC;
	  SET:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
	  SEG8:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
	  timebegin:in std_logic;
	  botong:out std_logic;
	  reset1:in std_logic
  );
END COMPONENT;

COMPONENT DISPLAY IS
PORT(BCD1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
SEG7:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END COMPONENT;

SIGNAL SET_1:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
U1:SET_NUM PORT MAP(DIN1,clk3,CLK1,CLEAR,DIAL,RE_DIAL,delete,KEYOUT,SET_1,SEG8,timebegin,botong,reset1);
U2:DISPLAY PORT MAP(SET_1,SEG71);
END ART;

DISPLAY.vhd

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY DISPLAY IS
 PORT(
 BCD1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
 SEG7:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
 END ENTITY;
 
 ARCHITECTURE ONE OF DISPLAY IS
 BEGIN
 PROCESS(BCD1) IS
 BEGIN 
  CASE BCD1 IS
	WHEN"0000"=>SEG7<="00111111";
	WHEN"0001"=>SEG7<="00000110";
	WHEN"0010"=>SEG7<="01011011";
	WHEN"0011"=>SEG7<="01001111";
	WHEN"0100"=>SEG7<="01100110";
	WHEN"0101"=>SEG7<="01101101";
	WHEN"0110"=>SEG7<="01111101";
	WHEN"0111"=>SEG7<="00000111";
	WHEN"1000"=>SEG7<="01111111";
	WHEN"1001"=>SEG7<="01101111";
	when"1010"=>seg7<="10000000";--小数点
	when"1011"=>seg7<="00000000";--全灭
	WHEN OTHERS=>SEG7<="00000000";
  END CASE;
END PROCESS;
END ONE;

SET_NUM.vhd

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY SET_NUM IS
  PORT(DIN:IN STD_LOGIC_VECTOR(6 DOWNTO 0);
  clk3:in std_logic;
  CLK,CLEAR,DIAL,RE_DIAL,delete:IN STD_LOGIC;
  KEYOUT:OUT STD_LOGIC;
  SET:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
  SEG8:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  testpins:out std_logic;
  timebegin:in std_logic;
  botong:out std_logic;
  reset1:in std_logic
  );
  END SET_NUM;
  
 ARCHITECTURE ONE OF SET_NUM IS


 SUBTYPE TEN IS STD_LOGIC_VECTOR(3 DOWNTO 0);
 SIGNAL BCD:TEN;
 TYPE NUMBER1 IS ARRAY(7 DOWNTO 0)OF STD_LOGIC_VECTOR(3 DOWNTO 0);
 SIGNAL NUMBER:STD_LOGIC_VECTOR(31 DOWNTO 0):="00000000000000000000000000000000";
 SIGNAL KEY,KEY1,KEY2,CLK1,DIAL1,RE_DIAL1:STD_LOGIC:='0';
 SIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0):="0000";
 SIGNAL COUNT1:STD_LOGIC_VECTOR(3 DOWNTO 0);
 SIGNAL COUNT2:STD_LOGIC_VECTOR(2 DOWNTO 0);
 SIGNAL DIN1:STD_LOGIC_VECTOR(6 DOWNTO 0);
 SIGNAL LOCK:STD_LOGIC_VECTOR(31 DOWNTO 0); 
 signal count3,count4,count5,count6,count7,count8,count9,count10,count11:integer;
 signal clktimes:STD_LOGIC_VECTOR(22 DOWNTO 0):="00000000000000000000000";
 signal second,min:integer range 0 to 59:=0;
 signal hour:integer range 0 to 24:=0;
 signal storage:std_logic:='0';
 signal botong1:std_logic:='0';
 signal wanbi:std_logic:='0';
 signal shanshuo:std_logic;
 signal jieshu:std_logic:='0';
 signal count12:std_logic_vector(3 downto 0):="1010";
 signal weijieting:std_logic:='0';  
 

 BEGIN
 process(clk3)--clk3连接pin125 频率为100000HZ
    begin
		if (clk3'event and clk3='1') then--拨通信号灯的判断
			if wanbi='1' and jieshu='0'  then
				botong1<='1';
			elsif dial='1' and wanbi='1' and shanshuo='0' and jieshu='0' then
				botong1<='0';
			elsif jieshu='1' and shanshuo='0' and wanbi='1' then--10s内未接通自动挂断  
				botong1<='0';
			elsif  wanbi='0' then
				botong1<='0';  
			elsif timebegin='0' and dial='1' and jieshu='1'  then--对方挂断
				botong1<='0';
			elsif timebegin='1' and dial='0' and jieshu='1'  then--我方挂断
				botong1<='0';
			elsif timebegin='0' and dial='0' and jieshu='1' then
                 botong1<='0';
			elsif jieshu='1' and shanshuo='1' and wanbi='1'  then--10s内接通指示灯闪烁
				if count3<100000 then
					count3<=count3+1;
				else 
					count3<=0;
					botong1<=not botong1;
				end if;	
			end if;
		end if;
        
	if (clk3'event and clk3='1') then--双方都挂断重置
        if reset1='1' then
			shanshuo<='0';
		end if;
	end if;
	
	if (clk3'event and clk3='1') then--判断对方是否应答
		if jieshu='1' then
			if weijieting='1' then 
				shanshuo<='0';--
			else 
				shanshuo<='1';
			end if;
		end if;
    end if;
 --以下为7个按键消抖
    if(clk3'event and clk3='1') then
		if(DIN(0)='0') then
			count4<=count4+1;
			if(count4=2000) then
				DIN1(0)<='1';
			else
				DIN1(0)<='0';
			end if;
		else
			count4<=0;
		end if;
    end if;
    
    if(clk3'event and clk3='1') then 
		if(DIN(1)='0') then
			count5<=count5+1;
			if(count5=2000) then
				DIN1(1)<='1';
			else
				DIN1(1)<='0';
			end if;
		else
			count5<=0;
		end if;
    end if;
    
    if(clk3'event and clk3='1') then 
		if(DIN(2)='0') then
			count6<=count6+1;
			if(count6=2000) then
				DIN1(2)<='1';
			else
				DIN1(2)<='0';
			end if;
		else
			count6<=0;
		end if;
    end if;
    
    if(clk3'event and clk3='1') then 
		if(DIN(3)='0') then
			count7<=count7+1;
			if(count7=2000) then
				DIN1(3)<='1';
			else
				DIN1(3)<='0';
			end if;
		else
			count7<=0;
		end if;
    end if;
    
    if(clk3'event and clk3='1') then 
		if(DIN(4)='0') then
			count8<=count8+1;
			if(count8=2000) then
				DIN1(4)<='1';
			else
				DIN1(4)<='0';
			end if;
		else
			count8<=0;
		end if;
    end if;
    
    if(clk3'event and clk3='1') then 
		if(DIN(5)='0') then
			count9<=count9+1;
			if(count9=2000) then
				DIN1(5)<='1';
			else
				DIN1(5)<='0';
			end if;
		else
			count9<=0;
		end if;
    end if;
    
    if(clk3'event and clk3='1') then 
		if(DIN(6)='0') then
			count10<=count10+1;
			if(count10=2000) then
				DIN1(6)<='1';
			else
				DIN1(6)<='0';
			end if;
		else
			count10<=0;
		end if;
    end if;
    
    
    if(clk3'event and clk3='1') then 
		if(RE_DIAL='0') then
			count11<=count11+1;
			if(count11=2000) then
				RE_DIAL1<='1';
			else
				RE_DIAL1<='0';
			end if;
		else
			count11<=0;
		end if;
    end if; 
    end process;
         
 

 PROCESS(CLK) IS
 BEGIN
 IF RISING_EDGE(CLK) THEN--上升沿触发
 DIAL1<=DIAL;--拨号键赋值给DIAL1
 botong<=botong1;--botong1赋值给拨通指示灯
 END IF;
 END PROCESS;

 KEY<=(DIN1(0) OR DIN1(1) OR DIN1(2) OR DIN1(3) OR DIN1(4) OR DIN1(5) OR DIN1(6));--一旦有键按下则KEY为1

 PROCESS(CLK,wanbi) IS --clk连接pin55 频率为6000000HZ
 variable count1:integer range 0 to 20000;
 variable count2:integer range 0 to 2000;
 variable suo:boolean:=false;
 BEGIN
	   IF FALLING_EDGE(CLK) THEN --下降沿有效\十秒倒计时  
		 if reset1='1' then--双方都挂断重置
			jieshu<='0';
			count12<="1010";
			weijieting<='0';			
		 end if;
		if timebegin='0' then
			if wanbi='1' then
				if (not suo) then
					if count12="0000" then
						suo:=true;
						jieshu<='1';
						weijieting<='1';
					else 
						count1:=count1+1;
							if count1=20000 then
								count1:=0;
								count2:=count2+1;
								if count2=300 then  --300为1秒
									count2:=0;
									count12<=count12-1;
								end if;
							end if;
					end if;
				end if;
			end if;
		 else 
		   jieshu<='1';
		 end if;
		
		if  CLEAR='0' AND RE_DIAL1='0' and timebegin='0' and delete='0'and dial='0' then--初始状态
			KEY1<='1';
			min<=0;
			second<=0;
		elsif CLEAR='0' AND RE_DIAL1='0' and timebegin='0' and delete='0'and dial='1' THEN--拨号键按下,数字输入,从低位向高位显示
			KEY1<=KEY;
			KEY2<='0';
			min<=0;
			second<=0;
		ELSIF CLEAR='1' AND RE_DIAL1='0' and timebegin='0'and delete='0' and dial='1'THEN--删除键按下,数字从低位删除
			KEY1<=CLEAR;
			KEY2<=clear;
		ELSIF CLEAR='0' AND RE_DIAL1='0' and timebegin='0'and delete='1' and dial='1'THEN--清除键按下,清楚数码管显示
			KEY1<=delete;
			KEY2<=delete;
		elsif  CLEAR='0' AND RE_DIAL1='0' and timebegin='1' and delete='0' and dial='1'  then--对方应答,开始计时
			if clktimes="10110111000110110000000" then
				key1<='1';
				clktimes<="00000000000000000000000";
				if second=59 then
					if min<60 then
						min<=min+1;
					end if;
				second<=0;
				else
					second<=second+1;
				end if;
			else 
				key1<='0';
				clktimes<=clktimes+1;
			end if;
		ELSif clear='0' and RE_DIAL1='1' and timebegin='0' and delete='0' and dial='1' then --拿起话筒,重拨键按下
			KEY1<=RE_DIAL1;
		END IF;
	end if;
 END PROCESS;

 PROCESS(DIN1) IS--如果按键有变化
 BEGIN
 IF    DIN1(6)='1' THEN BCD<="0110";
 ELSIF DIN1(5)='1' THEN BCD<="0101";
 ELSIF DIN1(4)='1' THEN BCD<="0100";
 ELSIF DIN1(3)='1' THEN BCD<="0011";
 ELSIF DIN1(2)='1' THEN BCD<="0010";
 ELSIF DIN1(1)='1' THEN BCD<="0001";
 ELSIF DIN1(0)='1' THEN BCD<="0000";
 ELSE BCD<="0000";--0123456对应的BCD码
 END IF;
 END PROCESS;

KEYOUT<=KEY2;--删除键或清除键按下指示灯亮灭
PROCESS(KEY1)IS
variable m,m2:integer;
BEGIN
 if RISING_EDGE(KEY1) THEN--key1上升沿检测
                         
	if reset1='1' then--双方都挂断重置
		wanbi<='0';
	elsif CLEAR='0' AND RE_DIAL1='0' and timebegin='0' and delete='0'and dial='0' THEN--初始状态
		NUMBER(31 DOWNTO 0)<="10111011101110111011101110111011";
	elsif CLEAR='0' AND RE_DIAL1='0' and timebegin='0' and delete='0'and dial='1' THEN--输入数字,实现数字从低位向高位移动
		NUMBER(31 DOWNTO 28)<=NUMBER(27 DOWNTO 24);
		NUMBER(27 DOWNTO 24)<=NUMBER(23 DOWNTO 20);
		NUMBER(23 DOWNTO 20)<=NUMBER(19 DOWNTO 16);
		NUMBER(19 DOWNTO 16)<=NUMBER(15 DOWNTO 12);
		NUMBER(15 DOWNTO 12)<=NUMBER(11 DOWNTO 8);
		NUMBER(11 DOWNTO 8)<=NUMBER(7 DOWNTO 4);
		NUMBER(7 DOWNTO 4)<=NUMBER(3 DOWNTO 0); 
		NUMBER(3 DOWNTO 0)<=BCD;
		if number(27 downto 24)/="1011" then--判断八位数字是否输入完毕
				LOCK(31 DOWNTO 28)<=NUMBER(31 DOWNTO 28);
				LOCK(27 DOWNTO 24)<=NUMBER(27 DOWNTO 24);
				LOCK(23 DOWNTO 20)<=NUMBER(23 DOWNTO 20);
				LOCK(19 DOWNTO 16)<=NUMBER(19 DOWNTO 16);
				LOCK(15 DOWNTO 12)<=NUMBER(15 DOWNTO 12);
				LOCK(11 DOWNTO 8)<=NUMBER(11 DOWNTO 8);
				LOCK(7 DOWNTO 4)<=NUMBER(7 DOWNTO 4);
				LOCK(3 DOWNTO 0)<=NUMBER(3 DOWNTO 0);
			    wanbi<='1';			 
		end if;
	ELSIF CLEAR='1' AND RE_DIAL1='0' and timebegin='0' and delete='0' and dial='1'THEN --按下删除键,数字从高位向低位移动
	NUMBER(31 DOWNTO 28)<="1011";
	NUMBER(27 DOWNTO 24)<=NUMBER(31 DOWNTO 28);
	NUMBER(23 DOWNTO 20)<=NUMBER(27 DOWNTO 24);
	NUMBER(19 DOWNTO 16)<=NUMBER(23 DOWNTO 20);
	NUMBER(15 DOWNTO 12)<=NUMBER(19 DOWNTO 16);
	NUMBER(11 DOWNTO 8)<=NUMBER(15 DOWNTO 12);
	NUMBER(7 DOWNTO 4)<=NUMBER(11 DOWNTO 8);
	NUMBER(3 DOWNTO 0)<=NUMBER(7 DOWNTO 4);
	ELSIF CLEAR='0' AND RE_DIAL1='0' and timebegin='0' and delete='1' and dial='1' THEN--清除键按下,清楚数码管显示
		number(31 downto 0)<="10111011101110111011101110111011";
	elsif  CLEAR='0' AND RE_DIAL1='0' and timebegin='1' and delete='0' and dial='1'  then----对方应答,开始计时
		number(31 downto 24)<="00000000";
		number(23 downto 20)<="1010";
		m:=min rem 10;
		number(19 downto 16)<=conv_std_logic_vector((min-m)/10,4);
		number(15 downto 12)<=conv_std_logic_vector(m,4);
		  number(11 downto 8)<="1010";
		m2:=second rem 10;
		NUMBER(7 DOWNTO 4)<=conv_std_logic_vector((second-m2)/10,4);
		NUMBER(3 DOWNTO 0)<=conv_std_logic_vector(m2,4);
	ELSif clear='0' and RE_DIAL1='1' and timebegin='0' and delete='0'and dial='1' then  ----重拨键按下
		NUMBER(31 DOWNTO 28)<=LOCK(31 DOWNTO 28);
		NUMBER(27 DOWNTO 24)<=LOCK(27 DOWNTO 24);
		NUMBER(23 DOWNTO 20)<=LOCK(23 DOWNTO 20);
		NUMBER(19 DOWNTO 16)<=LOCK(19 DOWNTO 16);
		NUMBER(15 DOWNTO 12)<=LOCK(15 DOWNTO 12);
		NUMBER(11 DOWNTO 8)<=LOCK(11 DOWNTO 8);
		NUMBER(7 DOWNTO 4)<=LOCK(7 DOWNTO 4);
		NUMBER(3 DOWNTO 0)<=LOCK(3 DOWNTO 0);
		wanbi<='1';
   end if;
end if;
END PROCESS;
   
   PROCESS(CLK) IS--为动态扫描数码管提供频率
   BEGIN
    IF RISING_EDGE(CLK) THEN
		COUNT<=COUNT+1;
    END IF;
    END PROCESS;
    
   PROCESS(COUNT)IS--动态扫描数码管
   BEGIN 
	CASE COUNT IS--片选,选择数码管
	   WHEN"0001"=>SET<=NUMBER(31 DOWNTO 28);SEG8<="01111111";
	   WHEN"0011"=>SET<=NUMBER(27 DOWNTO 24);SEG8<="10111111";
	   WHEN"0101"=>SET<=NUMBER(23 DOWNTO 20);SEG8<="11011111" ;
	   WHEN"0111"=>SET<=NUMBER(19 DOWNTO 16);SEG8<="11101111" ;
	   WHEN"1001"=>SET<=NUMBER(15 DOWNTO 12);SEG8<="11110111" ;
	   WHEN"1011"=>SET<=NUMBER(11 DOWNTO 8);SEG8<="11111011" ;
	   WHEN"1101"=>SET<=NUMBER(7 DOWNTO 4);SEG8<="11111101" ;
	   WHEN"1111"=>SET<=NUMBER(3 DOWNTO 0);SEG8<="11111110" ;  
	   WHEN OTHERS=>NULL;
   END CASE;
   END PROCESS; 
END ONE;

板载为EPF10K20TC144-3
pins:
在这里插入图片描述

bug:
1.重置需要拨动reset1开关,置于1,再拨动dial置为1,在置为0,关闭reset即可拨动dial按键拨打电话
2.重置后10s倒计时失效
3.重拨键少一位

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_50786207/article/details/116864952

智能推荐

前端面试 - 收藏集 - 掘金_weixin_34029949的博客-程序员秘密

一道常被人轻视的前端 JS 面试题 - 前端 - 掘金目录前言第一问第二问变量声明提升函数表达式第三问第四问第五问第六问构造函数的返回值第七问最后前言 年前刚刚离职了,分享下我曾经出过的一道面试题,此题是我出的一套前端面试题中的最后一题,用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中...前端开发面试题 ...

手术分级标准目录2020_权威发布 | 地理资源领域高质量科技期刊分级目录(2020年)..._weixin_39575410的博客-程序员秘密

为落实中国科协、中宣部、教育部、科技部联合印发的《关于深化改革培育世界一流科技期刊的意见》精神,推动建设与世界科技强国相适应的科技期刊评价体系,按照中国科协通知要求,遵照价值导向、同行评议、等效使用的原则,中国地理学会和中国自然资源学会联合完成了地理资源领域高质量科技期刊分级目录的遴选工作。经过期刊筛选、定量评价、定性评价、同行专家评议、专家审定、常务理事会审议等程序,形成了地理资源领域...

java 的qq 语音文件怎么打开,用手机java的QQ可以和电脑上的QQ进行语音通话吗?_weixin_39568653的博客-程序员秘密

用手机java的QQ可以和电脑上的QQ进行语音通话吗?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!用手机java的QQ可以和电脑上的QQ进行语音通话吗?楼上二位别误导提问者楼主: 不可以的,目前所有手机QQ版本,包括JAVA symbian wm 都是不支持语音通话的只是支持录音 --发送, 相当于发送语音文件.qq...

10种软件开发中 over-engineering 的错误套路_over engineer_火山石的博客-程序员秘密

别把「不要过度使用 Generic」误解成「不用 Generic」,也别把「不要写一些不必要的 Wrapper」误解成「不写任何 Wrapper」。我只是在讲 over-engineering 这个事,只是在提倡不搞野路子编程。套路1:攻城狮自认为比业务人员聪明攻城狮觉得自己最聪明,因为东西是他们写出来的嘛!然而这经常就是 over-engineering 的根源。

怎么关闭苹果手机自动扣费_这些手机功能不关闭,可能会被“自动扣费”_weixin_39564527的博客-程序员秘密

本想开一个月的某网盘VIP,却自动续费了一年试用了一款订餐App,忘记取消订阅,自动支付了好几个月在某应用商城订购了一款APP的vip,忘记取消,自动续费了小主们是否也经常遇到以上情况“不记得自己曾经订了哪些自动续费的APP”那怎么取消“自动扣费”呢?稍等,这就给小主支招啦!微信扣费步骤一:打开微信—【我】—【支付】—右上角【…】—扣费服务—即可查看已开通的自动扣费服务步骤二:在【扣费服...

图胜求贤令(年薪10万聘PHP工程师、产品经理)_weixin_34184158的博客-程序员秘密

图胜求贤令(年薪10万聘PHP工程师、产品经理) 图胜求贤令(年薪10万聘PHP工程师、产品经理) 10年来,互联网行业是世界上发展最快的行业,人们通过互联网创业刷新了无数的记录,颠覆了无数旧的规则,互联网时代已经到来,世界每天都在建立着新的秩序,同时互联网也创造了无数的神话,互联网使人们的想法、努力、行动迅速得到...

随便推点

Oozie-简介及部署_oozie workflow sla_青岛欢迎您的博客-程序员秘密

1、Oozie简介1.1、Oozie简介现实业务中处理数据时不可能只包含一个MR操作,一般都是多个MR,并且中间还可能包含多个Java或HDFS,甚至是shell的操作,利用Oozie可以完成这些任务。实际上Oozie不是仅用来配置多个MR工作流的,它可以是各种程序夹杂在一起的工作流,比如执行一个MR1后,接着执行一个java脚本,再执行一个shell脚本,接着是Hive脚本,然后又是...

x86的pae, pse和x86-64_shaozhiyuan的博客-程序员秘密

   虽然经典的IA32架构为PC提供了高达4GB的存储空间,可是随着计算规模以及相应存储规模的扩大,4GB的空间有时也会显得不足。在这种情况下,Intel在IA32的基础上推出了页地址扩展(PAE,PageAddress Extension),页面大小扩展(PSE,大概是Page SizeExtension的简称)。其后,为了满足更高的要求,Intel开始了IA64(号称安腾)架

shp地图如何导入奥维地图手机_如何将平面坐标点导入到奥维互动地图_weixin_39595931的博客-程序员秘密

奥维互动地图对测量、勘察等工作者来说是一款十分方便的软件,利用奥维互动地图可以记录和分享位置、轨迹等,特别是结合了卫星地图以及路网信息后可以很方便的通过导航来寻找一个位置。今天分享一下如何将平面坐标点批量的导入到奥维互动地图中。在奥维中,可导入北京54、西安80、CGCS2000等平面坐标。具体操作步骤如下:一、PC端导入坐标文件1.在导入之前,首先应将奥维的坐标系统设置为相对应的平面坐标系,否则...

微信小程序之实现页面自动刷新(B页面向云数据库添加完数据后自动返回A页面并且刷新显示刚添加的数据、wx.reLaunch())_小程序页面自动刷新_我叫狸匪的博客-程序员秘密

B页面向云数据库添加完数据后自动返回A页面并且刷新显示刚添加的数据 今天忙了一天总算是没有白忙活,所做的一个微信小程序是交易平台,在发布完产品后想要跳转到商品首页,但是由于首页是一个tabBar,所以wx.navigateTo()API并不可行 要想实现自动刷新,不如先实现手动下拉刷新,很简单 A页面操作①先开启手动下拉刷新功能,在json文件中添加声明:②然后在js文件...

js实现继承的几种方式_js继承实现_胡杨泪的博客-程序员秘密

http://www.jb51.net/article/44875.htm一,js中对象继承js中有三种继承方式1.js原型(prototype)实现继承复制代码 代码如下:          function Person(name,age){          this.name=name;          this.age=age;

X86,X86_32,X86_64_未名编程的博客-程序员秘密

X86_32通常写成X86,是指X86CPU系列,32位系统。X86_64指X86CPU系列,64位系统。

推荐文章

热门文章

相关标签