电子技术课程设计-可编程时钟控制器


    电子技术课程设计可编程时钟控制器 目录 设计功能要求 3 方案分析选择与系统框图 4 模块功能分析 6 仿真\下载结果 9 主要经验 10 操作指南 11 相关代码 12 设计功能要求 一.设计任务 数字钟不仅可以通过数字直观地显示日历,时间,用音乐及语言报时,还可以定时发出各种声,光,电信号,以及启动各种设备实现实时控制,时间顺序控制.如作息时间自动打铃,家电设备自动定时启动/停止,生产过程顺序控制等,用途很广.本课题的要求是: 1/设计一个具有时,分,秒计时,6位数字显示的时钟电路. 2/具有快速校准时,分的校时功能. 3/具有仿电台的自动整点报时功能或者发出与整点数目相等的音响声. 4/具有一定的扩展功能 二.设计要求 1/分析设计任务,拟定多种设计方案,根据当时的制作条件选择其中一种方案绘制系统框图和设计流程. 2/设计各部分单元电路或编写VHDL描述程序,计算元器件参数,确定元器件型号和数量,提出元件清单. 3/安装调试硬件电路或制作CPLD/FPGA为基础的专用集成芯片ASIC. 4/对制作的电路进行功能测试,分析各项技术指标,或对VHDL描述进行功能仿真,对ASIC作硬件测试或脱机运行. 5/总结设计各环节的资料,整理打印出设计报告(含原理电路,仿真波形).交验并演示设计制作的电路装置. 方案分析选择与系统框图 方案分析选择 1/使用的是开发板,故选择编写VHDL描述程序,并结合AltiumDesigner中提供的元件绘制原理图,下载到开发板上. 2/开发板上的资源包括:LCD显示屏,蜂鸣器,键盘,拨盘开关,各种频率的方波信号,各种对外接口,LED灯等. 根据板上资源和需要实现的功能,我选择了使用以下板上资源,并实现以下功能: LCD显示屏---用于显示时分秒计时 蜂鸣器---用于整点报时与闹铃功能 拨盘开关---用于时间设定,闹铃设定与声音开关 方波信号---经过分频后作为时钟信号输入和蜂鸣器发声 系统原理框图 整点报时模块 声音模块 蜂鸣器 存储器模块 控制模块 拨盘开关 信号发生器 时钟显示模块 LCD显示屏 计时模块 硬件原理图 模块功能分析 计时模块 计时模块具有时,分,秒的计时功能,每收到一个时钟信号,秒个位计算加一,在各个位加满时,重新置零,并向下一位进一.同时,输出端口会把秒个位,秒十位,分个位,分十位,时个位,时十位的8位数字信号输出到各个模块. 显示模块 LCD显示模块需要将显示代码与位置代码输入控制模块并给与脉冲,就会在相应的位置显示相应的字符,为了使得显示没有滞后,因此给较高的脉冲频率.因为我们要显示时分秒一共6位数字,因此需要写一个LCD扫描输出模块,时刻显示变化的时间. LCD扫描输出需要把计时模块输出的8位BCD码加上48转化为ASC2码.并且在时分秒之间加入冒号区分. 存储器模块 存储器模块的地址信号为计时模块的分个位,分十位,时个位,时十位有效位,写入的信号由拨盘开关sw4控制,输出的信号到声音模块的使能.写入开关由拨盘开关sw3控制.在需要闹铃的时间写入一,那么就会读出一,对声音模块使能,使其发声. 整点报时模块 整点报时模块的输入取上图的几个关键数据,当这些数据都为1时,此时为整点报时的时间,则对声音模块使能,使其发声. 声音模块 声音模块包括音调选择以及开关整点报时与闹铃的模块.用来实现不同的要求与功能. 仿真\下载结果 计时模块仿真图 下载结果 第一次下载的时候,因为很多地方都不知道,不是没接好线就是没有改名字,造成编译正常但是无法下载的结果.后来通过自己的摸索与请教他人,终于实现了下载.但是下载后又发现了许多意想不到的错误.用了很长的时间,我才把这些都弄清楚并且解决掉.最后终于实现了自己的预定功能. 主要经验 在电子技术课程设计之前,我先做了单片机课程设计.做单片机课程设计的时候,是一边拿着板子一边不断下载测试,一点点完善程序的,但是当我做电子技术课程设计时,因为板子不在身边,所以自己在寝室写的程序无法验证.因此在这些地方浪费了很多时间,直到我在实验室待了两天时间,才把问题解决掉.所以我明白,做这种设计,必须不断的实践测试,才能知道自己不足在哪里,才知道设计有什么不完善的地方.无论做什么事,如果你手边有实验的条件,那么做什么事,学习什么东西都可以事半功倍. 还有,经验很重要.如果是一开始什么都没有做过,那么各种各样的问题会接踵而来,而且你不知道从何解决.但是当你有了经验后,就可以很快知道究竟在什么地方出现了问题.在开始阶段,如果有一个老师,那一定是无比幸运的事情.他能够告诉你你需要知道什么,能够告诉你如何发现错误,那样就节省了很多自己摸索的时间. 最后一点,要知道规则,如果连语言规则和软件规则都不知道,那么怎么能好好地设计呢?靠自己的摸索想要摸索规则不是不可以,但是也会花太多的时间.所以如果在开始阶段能够看几本基础的书,不需要记住,只要有印象,那么以后在碰到问题的时候就知道在哪里可以找到解决方法,就可以容易地学习好这个课程. 总结起来,电子技术课程设计的学习,如果有3点条件,就可以比较简单的入门了. 1/看关于语言规则,软件操作的书.熟悉基础. 2/多做实验,从实验中获得丰富的经验. 3/多向别人请教. 操作指南 本设计使用拨盘开关作为控制输入. sw0为LCD灯开关,打上为关,打下为开. sw1为闹铃开关,打上为关,打下开. sw2为整点报时开关, 打上为关,打下开. sw3为闹铃写入开关,打上为关,打下为RAM写入模式,此时可以利用sw4设定闹铃. sw4为闹铃设定开关,在sw3为写入时有效,打上为取消闹铃,打下为设定闹铃. sw5为时调整,打上为关,打下为开始时调整,此时分秒均置为零,时以每秒1的速度增加. sw6为分十位调整, 打上为关,打下为开始分十位调整,此时分个位和秒均置为零,分十位以每秒1的速度增加. sw7为分十位调整, 打上为关,打下为开始分个位调整,此时秒均置为零,分个位以每秒1的速度增加. 提醒,调整时间时,应按一下顺序调整.时-分十位-分个位 相关代码 整点报时音调选择模块 chose.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity chose is port ( en,chosein,clkin1,clkin2: in std_logic; clkout: out std_logic ); end chose; architecture change of chose is begin process(clkin1,clkin2,en,chosein) begin if en='1' then if chosein='1' then clkout<=clkin1; else clkout<=clkin2; end if; else clkout<='1'; end if; end process; end change; 计时模块 counter.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity counter is port ( clk,changemint,changemino,changeh: in std_logic; so,st,mino,mint,ho,ht: buffer std_logic_vector(7 downto 0) ); end counter; architecture add of counter is begin process(clk,so,st,mino,mint,ho,ht,changemint,changemino,changeh) begin if rising_edge(clk) then so<=so+1; if so=x“09“ then st<=st+1; so<=x“00“; end if; if (st=x“05“ and so=x“09“) or changemino='1' then mino<=mino+1; st<=x“00“; so<=x“00“; end if; if (mino=x“09“ and st=x“05“ and so=x“09“) or changemint='1'or (changemino='1' and mino=x“09“) then mint<=mint+1; mino<=x“00“; st<=x“00“; so<=x“00“; end if; if (mint=x“05“ and mino=x“09“ and st=x“05“ and so=x“09“) or changeh='1' or (changemint='1' and mint=x“05“) or (changemino='1' and mino=x“09“ and mint=x“5“) then ho<=ho+1; mint<=x“00“; mino<=x“00“; st<=x“00“; so<=x“00“; end if; if( ho=x“09“ and mint=x“05“ and mino=x“09“ and st=x“05“ and so=x“09“) or (changeh='1' and ho=x“09“) then ht<=ht+1; ho<=x“00“; mino<=x“00“; st<=x“00“; so<=x“00“; mint<=x“00“; end if; if(ht=x“02“ and ho=x“03“ and mint=x“05“ and mino=x“09“ and st=x“05“ and so=x“09“) or (changeh='1' and ht=x“02“ and ho=x“03“) then ht<=x“00“; ho<=x“00“; mino<=x“00“; st<=x“00“; so<=x“00“; end if; end if; end process; end add; 声音开关模块 onoff.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity onoff is port ( en,clkin: in std_logic; clkout: out std_logic ); end onoff; architecture en of onoff is begin process(clkin,en) begin if en='1' then clkout<=clkin; else clkout<='1'; end if; end process; end en; 闹铃音乐模块 ring.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity ring is port ( clkin1,clkin2,clkin3,clkin4,clk,en: in std_logic; clkout: out std_logic ); end ring; architecture change of ring is signal num : integer; begin process(clk,num,clkin1,clkin2,clkin3,clkin4,en) begin if en='1' then if rising_edge(clk) then num<=num+1; end if; if num=9 then num<=0; end if; if num=1 then clkout<=clkin1; elsif num=2 then clkout<=clkin2; elsif num=3 then clkout<=clkin3; elsif num=4 then clkout<=clkin4; elsif num=5 then clkout<=clkin4; elsif num=6 then clkout<=clkin3; elsif num=7 then clkout<=clkin2; elsif num=8 then clkout<=clkin1; end if; else clkout<='1'; end if; end process; end change; 显示扫屏模块 show.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity show is port ( clk: in std_logic; data1,data2,data3,data4,data5,data6: in std_logic_vector(7 downto 0); add: out std_logic_vector(3 downto 0); dataout: out std_logic_vector(7 downto 0) ); end show; architecture change of show is signal num : integer; begin process(clk,data1,data2,data3,data4,data5,data6,num) begin if rising_edge(clk) then num<=num+1; if num=7 then num<=0; end if; end if; if num=0 then add<=x“1“; dataout<=data1+x“30“; elsif num=1 then add<=x“2“; dataout<=data2+x“30“; elsif num=2 then add<=x“3“; dataout<=x“3a“; elsif num=3 then add<=x“4“; dataout<=data3+x“30“; elsif num=4 then add<=x“5“; dataout<=data4+x“30“; elsif num=5 then add<=x“6“; dataout<=x“3a“; elsif num=6 then add<=x“7“; dataout<=data5+x“30“; elsif num=7 then add<=x“8“; dataout<=data6+x“30“; end if; end process; end change; 整点报时声音使能模块 sound.vhd library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity sound is port ( timein: in std_logic_vector(7 downto 0); enout: out std_logic ); end sound; architecture en of sound is begin process(timein) begin if timein=x“ff“ then enout<='1'; else enout<='0'; end if; end process; end en; 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    EDA课程设计时钟

    EDA课程设计姓名: 学号:班级:自动化设计题目多功能数字钟电路设计设计任务及要求多功能数字钟应该具有的功能有:显示时—分—秒、小时和分钟可调等基本功能。整个钟表的工作应该是在1Hz信号的作用...

    2周前   
    170    0

    电子技术课程设计智能洗衣机控制器

    电子技术基础课程设计——智能洗衣机控制器目录一、课程设计的目的二、课程设计的课题与要求 1. 课程设计的课题 2. 课程设计的要求三、设计思路与过程 ...

    3个月前   
    127    0

    可编程控制器PLC实习报告

      可编程控制器PLC实习报告 目录 第一章  改造设计方案……………………………………………………………………………2 一、改造方案介绍………………………………………………………...

    11年前   
    18640    0

    数电课程设计数字电子时钟的实现

    课 程 设 计 报 告设计题目:数字电子时钟的设计与实现班 级:学 号:姓 名: 指导教师:设计时间:摘 要钟表的数字化给人们生产生活带来了极大的方便,大大的扩展了原先钟表...

    1年前   
    1096    0

    数电课程设计报告 音乐彩灯控制器

     电子技术课程设计 题目名称: 音乐彩灯控制器 1. 设计任务和要求 (1) ...

    1年前   
    600    0

    单片机课程设计作息时间控制器的设计报告

    XX大学单片机课程设计报告作息时间控制器设计姓 名: 学 号: 专业班级: 自动化班 指...

    3周前   
    113    0

    学生电子技术课程设计实习报告—实习报告

    学生电子技术课程设计实习报告—实习报告  实习题目:晶体管超外差收音机(原理、装配、调试)  学生姓名  学号:=======  指导教师:  专业班级:光电子技术科学  提交日期:2008年...

    7年前   
    136    0

    国开(中央电大)专科《可编程控制器应用》机考题库

    1.ORN指令的作用是( )。[答案]B.用于单个常闭触点与上面的触点并联连接2.OR指令的作用-------[答案]常开触点与上面3.PLC的计数器是------[答案]D.软件实现的计...

    1个月前   
    122    0

    电大本科机电控制与可编程序控制器技术期末复习试题及参考答案

    机电控制与可编程序控制器模拟试题及答案       一、填空1、接触器的触点分为  和  ,  用来通断大电流的主电路,  用于通断小电流的控制电路。 (主触点 辅助触点 主触点 辅助...

    6天前   
    95    0

    国开(中央电大)专科《可编程控制器应用》机考题库

    1.ORN指令的作用是( )。[答案]B.用于单个常闭触点与上面的触点并联连接2.OR指令的作用-------[答案]常开触点与上面3.PLC的计数器是------[答案]D.软件实现的计...

    6个月前   
    697    0

    国开(中央电大)专科《可编程控制器应用》网上形考、机考试题及答案

    国开(中央电大)专科《可编程控制器应用》网上形考、机考试题及答案

    6个月前   
    1291    1

    国开(中央电大)专科《可编程控制器应用》机考题库及答案

    一、单项选择题1.ORN指令的作用是( )。B.用于单个常闭触点与上面的触点并联连接2.OR指令的作用-------常开触点与上面3.PLC的计数器是------D.软件实现的计数单元4....

    1个月前   
    216    0

    基于单片机的时钟设计

    随着时间的推移,事物的发展越来越趋向于高科技,单片机的出现,受到了社会各界的广泛关注,这是由于单片机具备丰富的功能。单片机的特点为:尺寸小,价格低,抗干扰强,开发容易等。运用的范围也很广,如检测...

    4个月前   
    148    0

    电子技术教案

    第 1、2 课时课题半导体特性、PN结、二极管课型教学目的了解半导体的特性和PN结的形成与特性掌握二极管、稳压管的特性重点难点PN结的形成与特性二极管的伏安特性教 学 过 程一、 半...

    1个月前   
    77    0

    关于时钟系统在交换系统中的应用

    关于时钟系统在交换系统中的应用  时钟系统在交换系统中的应用如下文  1、节点、中继交换提供一定质量的定时信号;  2、上级局时钟进行同步,保证局间的数据传输的可靠性,正确性。  基于以上原因...

    5年前   
    70    0

    桌面时钟设计与实现实习报告

    XX大学信息工程学院桌面时钟设计与实现实习报告桌面时钟设计与实现学 号 姓 名 专业班级 指导教师 实践日期2014年1月6日-2014年1月17日目 录一、综合训练目的与要求 1...

    4个月前   
    225    0

    2017年拓展游戏:扮时钟

    拓展游戏:扮时钟  参与人数:3个人一组  时间:5分钟  场地:不限  道具:白板或墙壁,笔  游戏规则:  1、培训师在白板或墙壁上画一个大的时钟模型,分别将时钟的刻度标示出来。  2、培...

    4年前   
    95    0

    大班数学活动认识时钟的教案汇编

    大班数学活动:认识时钟的教案 数学教案  【数学教案】   活动目标   1、使幼儿认识时钟,能叫出名称,基本掌握钟面的主要结构。   2、使幼儿知道时针、分针及它们之间的运转关系,...

    1年前   
    511    0

    EPG服务器时钟同步说明

    EPG服务器时钟同步说明  1、利用一台HP 140G3服务器(服务器位置更改,需要石尚坤更新设备记录)作为四达EPG服务器的时钟同步服务器端。服务器标签: EPG时钟同步,服务器IP:1...

    8年前   
    11544    0

    三相桥式全控整流电路电力电子技术课程设计说明书

    电力电子技术课程设计说明书 三相桥式全控整流电路 系 、 部: 电气与信息工程系 专 业: 自动化 ...

    2个月前   
    156    0

    文档贡献者

    文***品

    贡献于2021-01-12

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档