电子跑表设计

合集下载

电子跑表设计毕业设计

电子跑表设计毕业设计

电子跑表ABSTRACT:Because of its extremely high performance-price ratio, the single-chip computer (SCC) has been paid great attention to ever since it came out in 1970s of 20th Century, and has gained an extensive applicable field and fast development. Among all kinds of SCCs, 51 SCC is the most typical and representative one. This design, adopting 80C51 chip as the core part with some necessary peripheral circuits, is a simple electronic clock which uses 5V DC as the power supply. In hardware aspect, besides the CPU, four seven-segment LED digi-tubes are used for display, which work in a dynamically scanning display mode and driven by 74SL245 chip. The LEDs can accurately indicate hour and minute and two buttons can be used to adjust the time. While in the software aspect, the programming language is assembly language. The whole electronic clock system has functions of time display, adjustment, stopwatch and reset, etc. This design enables me to have greater insight into the basic circuit of SCC, and the basic methods of timer control and interruption programming, so that is a training of my ability of learning, designing and developing software and hardward.KEY WORDS:80C51 LED digi-tubes Electronic clock Stopwatch摘要:单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

fpga跑表课程设计

fpga跑表课程设计

fpga跑表课程设计一、课程目标知识目标:1. 理解FPGA的基本原理,掌握跑表设计的基础知识;2. 学会使用硬件描述语言(如VHDL/Verilog)进行FPGA设计;3. 掌握跑表设计的时序逻辑和组合逻辑,并能够运用到实际设计中;4. 了解FPGA设计中时钟信号的重要性,学会合理分配时钟资源。

技能目标:1. 能够运用所学知识,独立完成FPGA跑表的设计与仿真;2. 培养学生的实际操作能力,提高问题分析和解决能力;3. 学会使用相关软件工具(如Quartus、Vivado等)进行FPGA设计;4. 培养学生的团队协作能力,提高项目完成效率。

情感态度价值观目标:1. 培养学生对电子设计及FPGA技术的兴趣,激发创新意识;2. 培养学生严谨、认真的学习态度,养成良好的学术道德;3. 引导学生关注社会发展,认识到FPGA技术在现代科技中的重要性;4. 培养学生克服困难的意志,提高面对挑战的自信心。

本课程针对高年级学生,结合学科特点,注重理论与实践相结合。

通过本课程的学习,使学生能够掌握FPGA跑表设计的核心知识,提高实际操作能力,培养学生的创新意识和团队协作精神,为今后从事相关领域工作打下坚实基础。

二、教学内容1. FPGA基础知识:- FPGA原理与结构;- 硬件描述语言基础(VHDL/Verilog);- 常用FPGA开发工具介绍。

2. 跑表设计原理:- 跑表功能需求分析;- 时序逻辑与组合逻辑设计;- 时钟信号分配与设计。

3. FPGA跑表设计实践:- 设计流程与方法;- 代码编写与仿真;- FPGA配置与测试。

4. 教学大纲安排:- 第一周:FPGA原理与硬件描述语言基础;- 第二周:跑表设计原理与时序逻辑设计;- 第三周:组合逻辑设计及时钟信号分配;- 第四周:FPGA跑表设计实践与项目指导;- 第五周:项目验收与评价。

教学内容关联教材章节:- 第一章:FPGA原理与结构;- 第二章:硬件描述语言基础;- 第三章:数字电路设计;- 第四章:FPGA设计实例。

数字跑表设计eda课程设计

数字跑表设计eda课程设计

数字跑表设计eda课程设计摘要:一、引言1.课程背景介绍2.数字跑表设计意义二、数字跑表设计原理1.跑表系统架构2.数字跑表核心模块三、EDA工具介绍1.EDA工具的作用2.EDA工具的选择四、数字跑表设计流程1.设计输入2.设计仿真3.物理布局4.物理验证5.结果分析与优化五、数字跑表设计实践1.设计参数设定2.使用EDA工具进行设计3.设计验证与优化六、数字跑表设计成果与应用1.设计成果展示2.设计实用性分析3.设计前景展望七、总结与展望1.课程学习总结2.数字跑表设计发展趋势正文:一、引言随着科技的飞速发展,电子设计自动化(EDA)技术在电子设计领域中的应用越来越广泛。

数字跑表作为一种实用且具有较高技术含量的电子设备,其设计过程离不开EDA技术的支持。

本课程设计旨在让学生掌握数字跑表的设计方法,熟悉EDA工具的使用,提高实际动手能力和创新能力。

二、数字跑表设计原理数字跑表设计主要包括系统架构设计和核心模块设计两部分。

系统架构设计要求明确整个跑表的组成,包括时钟模块、计数模块、显示模块、控制模块等。

核心模块设计则是针对各个功能模块提出具体的实现方案,如采用何种器件、电路拓扑结构等。

三、EDA工具介绍EDA工具在数字跑表设计过程中发挥着至关重要的作用。

它能帮助设计师快速完成电路设计、仿真、验证及优化等任务。

常见的EDA工具包括原理图编辑器、布图布线工具、仿真器、时序分析工具等。

本课程将使用某款EDA工具进行数字跑表的设计。

四、数字跑表设计流程1.设计输入:根据数字跑表的功能需求,编写设计说明书,明确各个模块的功能、性能参数及接口关系。

2.设计仿真:利用EDA工具进行电路仿真,验证电路的正确性。

3.物理布局:根据电路原理图,进行物理布局设计,考虑器件摆放、连线走向等因素。

4.物理验证:对物理布局进行验证,确保电路符合制程要求。

5.结果分析与优化:分析仿真结果,找出存在的问题,对设计进行优化。

五、数字跑表设计实践1.设计参数设定:根据数字跑表的实际需求,设定各项性能参数,如时钟频率、计数范围等。

电子实验数字跑表

电子实验数字跑表

电子科技大学基于FPGA的数字系统设计——数字跑表的设计学生姓名:学号:指导教师:摘要本文利用XILINX-ISE开发软件和XILINX EDA教学实验开发板实现数字跑表的开始、暂停以及复位等功能。

ISE工程利用VHDL语言编写,单模块包含时钟分频进程、始能及清零进程、时钟数据产生进程、位码产生进程和显示进程;分模块设计包含时钟分频模块、控制模块、计数器模块、显示模块。

计时区间00’00’’00到59’59’’99。

课余设计的单模块源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating---- any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity paobiao isPort ( clkin : in STD_LOGIC;enable : in STD_LOGIC;clear : in STD_LOGIC;seg : out STD_LOGIC_VECTOR (7 downto 0);wei : out STD_LOGIC_VECTOR (2 downto 0);enout : out STD_LOGIC);end paobiao;architecture Behavioral of paobiao issignal cnt100: integer range 1 to 240000;signal cnt1k: integer range 1 to 24000;signal clk100: std_logic:='0';signal clk1k : std_logic:='0';signal en: std_logic:='0';signal d1: integer range 0 to 5:=0;signal d2: integer range 0 to 9:=0;signal d3: integer range 0 to 5:=0;signal d4: integer range 0 to 9:=0;signal d5: integer range 0 to 9:=0;signal d6: integer range 0 to 9:=0;signal num: integer range 1 to 6:=1;beginenout<='0';process(clkin)beginif clkin'event and clkin='1' thenif cnt100=240000 thencnt100<=1;clk100<=not clk100;elsecnt100<=cnt100+1;end if;if cnt1k=24000 thencnt1k<=1;clk1k<=not clk1k;elsecnt1k<=cnt1k+1;end if;end if;end process;process(enable,clear)beginif clear='0' thenen<='0';elseif enable'event and enable='1' thenen<=not en;end if;end if;end process;process(clear,d1,d2,d3,d4,d5,d6)beginif clear='0' thend1<=0;d2<=0;d3<=0;d4<=0;d5<=0;d6<=0;-- en<=0;elseif en='1' and clk100'event and clk100='1' then if d6=9 thend6<=0;if d5=9 thend5<=0;if d4=9 thend4<=0;if d3=5 thend3<=0;if d2=9 thend2<=0;if d1=5 thend1<=0;elsed1<=d1+1;end if;elsed2<=d2+1;end if;elsed3<=d3+1;end if;elsed4<=d4+1;end if;elsed5<=d5+1;end if;elsed6<=d6+1;end if;end if;end if;end process;process(num)beginif clk1k'event and clk1k='1' thenif num=6 thennum<=1;elsenum<=num+1;end if;end if;end process;process(num)variable data: integer range 0 to 9;begincase num iswhen 1 => wei<="111";data:=d1;when 2 => wei<="110";data:=d2;when 3 => wei<="100";data:=d3;when 4 => wei<="011";data:=d4;when 5 => wei<="001";data:=d5;when 6 => wei<="000";data:=d6;end case;case data iswhen 0 => seg<="00000011";when 1 => seg<="10011111";when 2 => seg<="00100101";when 3 => seg<="00001101";when 4 => seg<="10011001";when 5 => seg<="01001001";when 6 => seg<="01000001";when 7 => seg<="00011111";when 8 => seg<="00000001";when 9 => seg<="00001001";end case;end process;end Behavioral;管脚分配NET "clkin" LOC = T8;NET "enout" LOC = D7;NET "seg<0>" LOC = C11;NET "seg<1>" LOC = A11;NET "seg<2>" LOC = B12;NET "seg<3>" LOC = A12;NET "seg<4>" LOC = C12;NET "seg<5>" LOC = C13;NET "seg<6>" LOC = A13;NET "seg<7>" LOC = B14;NET "wei<0>" LOC = F8;NET "wei<1>" LOC = D8;NET "wei<2>" LOC = E7;NET "clear" LOC = E4;NET "enable" LOC = G6;课时设计一、系统总体设计指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD七段数码管显示读数。

数字跑表设计.

数字跑表设计.

学号:课程设计题目数字跑表设计学院自动化学院专业班级姓名指导教师年月日课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 数字跑表设计初始条件:1.运用所学的模拟电路和数字电路等知识;2.用到的元件:实验板、电源、连接导线、74系列芯片、555芯片或微处理器等。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.设计一个具有、‘分’、‘秒’、‘1/100秒’的十进制数字显示的计时器。

2.要有外部开关,控制计数器的直接清零、启动和暂停/连续计时功能;3.严格按照课程设计说明书要求撰写课程设计说明书。

时间安排:第1天下达课程设计任务书,根据任务书查找资料;第2~4天进行方案论证,软件模拟仿真并确定设计方案;第5天提交电路图,经审查后领取元器件;第6~8天组装电路并调试,检查错误并提出问题;第9~11天结果分析整理,撰写课程设计报告,验收调试结果;第12~14天补充完成课程设计报告和答辩。

指导教师签名:年月日系主任(或责任教师)签名:年月日目录引言 (1)1设计意义及要求 (2)1.1设计意义 (2)1.2设计要求 (2)2方案设计 (3)2.1设计思路 (3)2.2 方案设计 (4)2.2.1设计方案一(个人方案)电路图 (4)2.2.2设计方案二(小组方案)电路图简单说明 (5)2.3方案比较 (6)3部分电路设计 (7)3.1计数单元 (7)3.2开始和暂停单元 (11)3.3清零功能单元 (12)3.4脉冲输出电路 (14)3.5译码及显示电路 (15)4调试与检测 (18)4.1调试中故障及解决办法 (18)4.2 调试与运行结果 (18)5仿真操作步骤及使用说明 (19)结束语 (20)参考文献 (21)附录1 (22)附录2 (23)本科生课程设计成绩评定表........................ 错误!未定义书签。

引言过去的三个世纪,我们经历了第一次工业革命,人类开始进入蒸气时代,第二次工业革命,人类开始进入电气时代并在信息革命资讯革命中达到顶峰。

eda数字跑表课程设计

eda数字跑表课程设计

eda数字跑表课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握数字跑表的工作原理;2. 学生能掌握数字跑表设计中所涉及的电子元件、电路图及编程知识;3. 学生能了解数字跑表在实际应用中的功能与作用。

技能目标:1. 学生能运用所学知识,设计并搭建简单的数字跑表电路;2. 学生能通过编程实现对数字跑表的调试与优化;3. 学生能运用团队协作、问题解决和创新能力,完成数字跑表的设计与制作。

情感态度价值观目标:1. 学生培养对电子科技的兴趣和热情,增强实践操作的信心;2. 学生培养团队协作精神,提高沟通与表达能力;3. 学生认识到科技对社会发展的作用,树立创新意识,增强社会责任感。

课程性质:本课程为实践性、综合性课程,结合理论知识与实际操作,培养学生的动手能力、创新能力和团队合作能力。

学生特点:六年级学生具有一定的电子知识基础和编程能力,对新鲜事物充满好奇心,善于合作与探究。

教学要求:教师需引导学生掌握EDA数字跑表的基本知识,注重实践操作,鼓励学生创新与思考,提高学生的问题解决能力。

在教学过程中,关注学生的个体差异,给予个性化指导,确保课程目标的达成。

通过本课程的学习,使学生能够将所学知识应用于实际生活中,提高综合素质。

二、教学内容1. 电子设计自动化(EDA)基础理论:- EDA概念及其发展历程;- 数字跑表的基本原理与功能。

2. 数字跑表电路设计:- 常用电子元件的特性与选型;- 电路图绘制及仿真;- 数字跑表电路搭建与调试。

3. 编程与控制:- 编程环境及编程语言介绍;- 数字跑表程序设计;- 程序调试与优化。

4. 实践操作与团队协作:- 分组进行数字跑表设计与制作;- 团队合作、问题解决与创新能力培养;- 实践成果展示与评价。

教材章节关联:本教学内容与教材中“电子设计自动化”、“数字电路设计”和“编程控制”等章节相关。

具体内容包括:- 电子设计自动化:第1章;- 数字电路设计:第3章;- 编程控制:第5章。

数字跑表的设计与仿真

数字跑表的设计与仿真

EAST CHINA INSTITUTE OF TECHNOLOGY EDA设计与应用课程设计:数字跑表的设计与仿真学院:机械与电子工程学院专业:电子科学与技术班级:1221402学号:201220140223姓名:杨卡2014年11月一、实验目的:1)进一步学习更复杂的EDA项目设计,更熟练地掌握VHDL语言设计。

2)学习动态数码管的VHDL编程。

3)更加熟练计时显示、进位和校时的编程方法。

二、实验要求:1)设计一个具有、‘分'、‘秒'、‘ 1/100 秒'的十进制数字显示的数字跑表。

2)要有外部开关,控制计数器的直接清零、启动和暂停/ 连续计时功能。

三、实验内容:1)数字跑表功能:计时精度10ms,计时范围为59分59.99秒。

设置两种模式,模式一:对单个人计数,能实现暂停、显示及清零功能,并在数码管上实时显示;模式2:实现对多个人的同时计时,在数码管上实时显示,并能在液晶显示屏上回显出 6 个时间,可控制显示。

2)数字跑表分模块设计:数字跑表设置如下的子模块。

分频模块;模式 1 控制模块;模式 2 控制模块;计时模块;数码管译码模块;液晶译码模块;液晶显示模块。

百分秒、秒和分等信号即采用BCD译码计数方式,根据上述设计要求,用Verilog 对数字跑表的描述如下。

仍然采用引脚属性定义语句进行引脚的锁定。

四、设计程序(此处只写出与课本中不同的部分)为了便于显示,百分秒、秒和分钟信号皆采用BCD码计数方式,并直接输出到6 个数码管显示出来。

根据上述设计要求,用Verilog HDL 语言对数字跑表描述如下。

/* 信号定义:CLK: CLR: PAUSE: MSH,MSL:时钟信号;异步复位信号;暂停信号;百分秒的高位和低位;SH,SL :秒的高位和低位;MH,ML:分钟的高位和低位。

*/module paobiao(CLK,CLR,PAUSE,MSH,MSL,SH,SL,MH,ML); input CLK,CLR,PAUSE; output[3:0] MSH,MSL,SH,SL,MH,ML; reg[3:0] MSH,MSL,SH,SL,MH,ML;reg cn1,cn2; //cn1 为百分秒向秒进位,cn2 为秒向分进位//**************** 百分秒计数进程,每计满100,cn1 产生一个进位*******always @(posedge CLK or posedge CLR)begin if(CLR) begin {MSH,MSL}<=8'h00; cn1<=0;end // 异步复位else if(!PAUSE) //PAUSE 为0 时正常计数,为1 时暂停计数begin if (MSL==9) begin MSL<=0;if (MSH==9) begin MSH<=0;cn1<=1;endelse MSH<=MSH+1;endelse begin MSL<=MSL+1;cn1<=0;endendend秒计数进程,每计满60,cn2 产生一个进位********* always @(posedge cn1 or posedge CLR)begin if(CLR) begin {SH,SL}<=8'h00;cn2<=0; end // 异步复位else if(SL==9)begin SL<=0;if (SH==5) begin SH<=0;cn2<=1; end else SH<=SH+1;endelse begin SL<=SL+1;cn2<=0;end end //****************** 分钟计数进程,每计满60,系统自动清零********* always @(posedge cn2 or posedge CLR) begin if(CLR) begin {MH,ML}<=8'h00;end // 异步复位else if (ML==9) begin ML<=0;if(MH==5) MH<=0;else MH<=MH+1;endelse ML<=ML+1;endendmodule五、心得体会:此次课程设计,从程序设计到仿真,我经历了一个困难重重,愈挫愈勇的过程。

EDA数字跑表课程设计代码

EDA数字跑表课程设计代码

EDA数字跑表课程设计代码一、课程目标知识目标:1. 理解EDA工具的基本原理和使用方法;2. 掌握数字跑表的基本功能及其设计原理;3. 学会使用硬件描述语言(如Verilog)编写简单的数字跑表代码;4. 了解数字电路设计中时序逻辑的应用。

技能目标:1. 能够运用EDA工具进行数字跑表的原理图绘制与仿真;2. 能够独立编写并进行数字跑表的代码调试;3. 培养学生动手实践能力,提高问题解决和团队合作能力;4. 学会查阅相关资料,提高自主学习能力。

情感态度价值观目标:1. 培养学生对电子设计自动化(EDA)技术的兴趣和热情;2. 培养学生严谨的科学态度,注重实验数据和实验结果的准确性;3. 增强学生的团队协作意识,培养良好的沟通与表达能力;4. 培养学生面对挑战时的自信心和积极心态,激发创新意识。

本课程针对高年级学生,结合课程性质、学生特点和教学要求,明确以上课程目标。

通过本课程的学习,学生将掌握EDA数字跑表的设计方法,提高实践操作能力,培养良好的学习态度和团队协作精神,为后续相关课程学习打下坚实基础。

1. EDA工具简介:介绍EDA工具的基本概念、发展历程和作用;- 教材章节:第1章 EDA技术概述2. 数字跑表设计原理:- 教材章节:第2章 数字电路设计基础- 内容:时钟信号、计数器、译码器等基本组成部分及其工作原理;3. 硬件描述语言Verilog基础:- 教材章节:第3章 硬件描述语言Verilog HDL- 内容:Verilog语法、数据类型、运算符、模块结构及常用语句;4. 数字跑表代码编写与调试:- 教材章节:第4章 数字电路设计实例- 内容:根据设计原理编写数字跑表代码,利用EDA工具进行仿真与调试;5. 数字跑表综合应用:- 教材章节:第5章 数字电路系统设计- 内容:将所学知识应用于实际项目中,进行数字跑表的原理图绘制、代码编写、仿真验证及硬件测试。

教学进度安排:1. EDA工具简介(1课时)2. 数字跑表设计原理(2课时)3. 硬件描述语言Verilog基础(3课时)4. 数字跑表代码编写与调试(4课时)5. 数字跑表综合应用(2课时)1. 讲授法:- 在EDA工具简介、数字跑表设计原理等理论知识点,采用讲授法进行教学,为学生提供清晰的知识框架和理论指导。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1.系统总体方案选择与说明………………………2. 系统结构框图与工作原理………………………3. 各单元硬件设计说明及计算方法………………………4. 软件设计与说明(包括流程图)………………………5. 调试结果与必要的调试说明………………………6. 使用说明………………………………………………7. 课程设计总结与体会………………………8. 参考文献………………………………………………9附录:A:系统原理图………………………………………………B:程序清单………………………………………………一.前言1.设计要求:要求以MCS-51系列单片机为核心设计一个多功电子表,具有电时钟和跑表功能。

做时钟时在4位LED 显示器上显示分、秒,做跑表时显示范围000.0秒~999.9秒并具有跑表启动和跑表复位功能键。

电子时钟的计时范围00分00秒59分-59秒,并在4位LED 显示器上显示;做跑表时显示范围000.0秒-999.9秒,当按下启动按钮跑表开始计时,按下停止按停止计时,当按下复位按钮跑表回零。

2.设计思路1)计时单元由单片机内部的定时器/记数器来实现。

2)时间显示功能通过LED数码管动态扫描来实现。

利用专用键盘/显示器接口芯片8279可实现对键盘/显示器的动态扫描,由于数码管要显示时钟,还要显示跑表,因此,我分别用31H、32 H计时钟,用R5、R6计跑表,当要显示哪一个的时候,就把哪一个地址送到显示地址35 H、36 H 中,达到跑表显示与时钟显示互不影响。

3)表的启动/复位/清零功能由软件来实现。

P1.0接启动键,P1.1接停止键,P1.2接清零键。

4)由于跑表和时钟的中断服务程序有冲突,我们就把跑表的中断服务程序写成另外的子程序了,这样就必须要引入标志位了,我们在此用42H 标志位,用标志位来给跑表计数。

二.系统组成与工作原理1.硬件电路的设计方案根据设计要求和设计思路,硬件电路有两部分组成,即单片机按键电路,LED显示器电路。

图1 为硬件电路设计框图。

图1 硬件电路设计框图2.软件设计方案根据设计要求和设计思路,进行模块设计。

8279的初始化程序模块,时钟记时程序模块,数制转换模块,显示模块,跑表工作模块。

图2为软件设计框图。

图2 电子跑表软件设计的模块3.工作原理说明利用T0定时器定时100ms ,即0.1s ,用R5 R6作为跑表的计算器,用R7作为时钟计数器。

判断SRART键是否按下,若按下,则建立标志F0=1,同时将R5 R6单元清零;否则F0=0。

在T0中断服务中,判断F0,若F0=0,则用软件计数器R7计数;若F0=1,则在R7计数同时,还要用软件R5 R6计数。

中断返回后,判断F0,若F0=0,即作为时钟使用时,则R7=10为一秒,60秒则清零。

若F0=1,即作为跑表使用时,将R5 R6的值进行十进制调整,即为跑表显示值,到9999则R5 R6清零,重新开始计数。

若STOP键按下,则R5 R6停止计数。

在跑表停止状态下,则返回显示当前时间。

三.各单元硬件设计说明及计算方法1.在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可通过软件定时实现。

硬件定时是利用单片机内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU时间,CPU有较高的工作效率。

采用硬件定时和软件定时并用的方式,即用T0出中断功能实现50ms定时,通过软件延时程序实现1s定时。

.定时器的有关的寄存器有工作方式寄存器TMOD 和控制寄存器TCON。

TMOD用于设置定时器/计数器的工作方式0~3,并确定用于定时还是用于计数。

TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

2.8279是通用的可编程键盘/显示器接口芯片,可实现对键盘/显示器的自动扫描,不仅可以大大节省CPU对键盘/显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,不会出现误动作。

8279具有8个先进先出的的键输入缓冲RAM单元,并提供16字节的缓冲RAM。

8279将段码写入显示缓冲RAM,8279自动对显示器扫描,将其内部显示缓冲RAM中的数据在显示上显示出来。

CUP通过对8279编程(将命令字写入8279)来选择其工作方式,简述如下:1)键盘/显示器方式设置命令字D7 D6 D5 D4 D3 D2 D1 D00 0 0 D D K K K高三位D7D6D5位为特征位000,D4D3两位用来设定显示方式,其定义如下:D4 D3 显示器方式0 0 8个字符显示—左边输入0 1 16个字符显示—左边输入1 0 8个字符显示—右边输入1 1 16个字符显示—右边输入8279最多可用来控制16位LED显示器,当显示位数超过8位时,均需设定为16为字符显示。

显示器的每一位对应一个8位的显示缓冲RAM 单元CPU将显示数据写入缓冲器时有左边输入和右边输入。

左边输入是较简单的方式,地址为1-15的显示缓冲RAM单元分别对应显示器的1(左)位-15(右)位。

CPU依次从0地址或某一个地址开始将段数据写入显示缓冲RAM。

D2D1D0为键盘工作方式选择位,如下表:D2 D1 D0 键盘工作方式0 0 0 编码扫描键盘,双键锁定0 0 1 译码扫描键盘,双键锁定0 1 0 编码扫描键盘,N键依次读出0 1 1 译码扫描键盘,N键依次读出1 0 0 编码扫描传感器矩阵1 0 1 译码扫描传感器矩阵1 1 0 选通输入,编码扫描显示器方式1 1 1 选通输入,译码扫描显示器方式当设定为编码工作方式时,内部计数器作二进制记数,四位二进制计数器的状态扫描线SL0-SL3输出,最多可为键盘/显示器提供16根扫描线(16选1)。

双键锁定,就是当键盘中同时有两个以上的键被按下时,任何一个键的编码信息君不能进入FIFO RAM中,直至仅剩下一键保持闭合时,该键的编码信息方能进入FIFO。

2)写显示缓冲RAM命令字D7 D6 D5 D4 D3 D2 D1 D01 0 0 AI A A A A高三位100为该命令字的特征位,该命令给出了显示缓冲RAM的地址信息,当CPU执行写显示缓冲RAM时,首先用该命令字给出要写入显示缓冲RAM地址,四位二进制代码。

AAAA可用来寻址显示缓冲RAM的16个存储单元。

若AI=1,则CPU在第一次写入时须给出地址外,以后每次写入,地址自动加1,直至所有显示缓冲RAM全部写毕。

3)读显示缓冲RAM命令字D7 D6 D5 D4 D3 D2 D1 D00 1 1 AI A A A A在CPU读显示数据之前先输出读缓冲RAM的命令。

D7D6D5=011该命令字的特征位。

22二进制代码AAAA用寻址显示缓冲RAM的一个缓冲单元。

AI为自动增量标志,若AI=1则CPU每次读出后,地址自动加1。

4)清除命令字D7 D6 D5 D4 D3 D2 D1 D01 1 0 CD CD CD CF CA该命令字用来清除FIFO RAM和显示缓冲RAM。

其中D4D3D2(CD)三位用来设定清除显示缓冲RAM的方式,其定义下:D4 D3 D2 清除显示RAM的方式1 0 X 将显示RAM全部清01 1 0 将显示RAM清成20H1 1 1 将显示RAM全部置10 X X 不清除(CA=0);则D3D2有效5)状态字8279的状态字节用于键输入和选通输入方式中,指出FIFO RAM中的字符的个数是否出错,状态字的格式如下:D7 D6 D5 D4 D3 D2 D1 D0DU S/E O U F N N ND2-D0表示FIFO RAM中数据的个数D3在F=1时,表示FIFO RAM已满(存有8个键入数据)D4在FIFO RAM中没有输入字符时,CPU对FIFO RAM读置“1UD5当FIFO已满,又输入一个字符时发生溢出置“1”OD6的S/E用于传感矩阵输入方式,几个传感器同时闭合时置“1”D7在清除命令执行期间该位为“1”,D7为1时对显示RAM写操作无效6)出入数据格式在键扫描方式中,键输入数据格式如下:D7 D6 D5 D4 D3 D2 D1 D0CNHL SHIFT SCAN SCAN SCAN RETURN RETURN RETURND2-D0指出输入键所在的列号(RL0-7Z状态确定)D5-D3指出输入键所在的行号(扫描记数植)D6控制SHIFT的状态D7控制CNTL的状态在传感器扫描方式或选通输入方式中,输入数据即为RL0-RL7 输入状态D7 D6 D5 D4 D3 D2 D1 D0RL7 RL6 RL5 RL4 RL3 RL2 RL1 RL0由以上可确定8279状态口地址为0FF82H,数据口地址为0FF80H。

四.软件设计与说明(包括流程图)(1)主程序的设计图3 主程序设计框图1)程序的起始地址:MCS-51单片机复位后,(PC)=0000H,而0003H-002BH分别是各中断源的入口地址。

所以,编程时应在0000H处写一条跳转指令。

当CPU接收到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入响应的中断服务程序入口处执行。

2)主程序的初始化:将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作设定。

Z8279 EQU 0FF82H ;8279状态/命令入口地址D8279 EQU 0FF80H ;8279数据口地址LEDMOD EQU 00H ;左边输入八位字符显示LEDFEQ EQU 2FH ;扫描速度LEDCLS EQU 0C1H ;清除显示RAMLEDWR0 EQU 80H ;设定的将要写入的显示RAM地址 ORG 0000HLJMP MAINORG 000BH ;T0中断入口地址LJMP INTT0ORG 0030HMAIN:LCALL INIT8279 ;初始化8279MOV TMOD, #01H ;T0工作方式MOV TH0, #3CH ;T0初值MOV TL0, #0B0HMOV IE,#82H ;开中断MOV R7,#2 ;中断两次MOV 31H,#0 ;放后两位数字MOV 32H,#0 ;放前两位数字MOV 41H,#0 ;用在定时器计中断个数MOV P1,#0FFH ;开放P1口SETB TR0 ;启动定时器LOOP:JNB P1.0,ZHONG ;判开关P1.0信号,时钟与跑表切换。

MOV R5,#0 ;跑表清0MOV R6,#0TING:LCALL PAO ;调跑表子程序JNB P1.1,TING ;判P1.1信号,暂停跑表JNB P1.2,$ ;判P1.2信号,转时钟MOV R5,#0 ;跑表清0MOV R6,#0ZHONG:MOV 35H,31H ;用于时钟记数的31H,32H送入显示地址MOV 36H,32HLCALL DIVID ;时钟显示MOV A,52H ;加小数点(分和秒之间)ADD A,#10MOV 52H,ALCALL DZSPLAYLJMP LOOP ;循环执行主程序RET(2) 8279初始化子程序图4 8279初始化框图INT8279: PUSH DPH ;8279初始化子程序 PUSH DPLPUSH ACCMOV DPTR,#Z8279MOV A,#LEDMOD ;置8279工作方式MOVX @DPTR,AMOV A,#LEDFEQ ;置键盘扫描速率MOVX @DPTR,AMOV A,#LEDCLS ;清除LED显示MOVX @DPTR,APOP ACCPOP DPLPOP DPHRET(3)时钟、跑表计时程序模块的设计1)60分钟与1000秒时间的产生。

相关文档
最新文档