模拟计算器十进制整数输入及显示课程设计

合集下载

10进制计数器课程设计

10进制计数器课程设计

10进制计数器课程设计一、课程目标知识目标:1. 学生能理解10进制计数器的基本概念,掌握10进制数的组成和计数规律。

2. 学生能运用10进制计数器进行数值的加减运算,并正确表达计算过程和结果。

3. 学生了解10进制计数器在日常生活和科学技术中的应用。

技能目标:1. 学生能够独立操作10进制计数器,进行简单的数值计算。

2. 学生通过实际操作,培养观察、分析、解决问题的能力。

3. 学生通过小组合作,提高沟通、协作和团队意识。

情感态度价值观目标:1. 学生对10进制计数器产生兴趣,激发学习数学的积极性。

2. 学生在探索过程中,培养耐心、细致、勇于尝试的精神。

3. 学生认识到数学知识在实际生活中的重要性,增强学以致用的意识。

课程性质:本课程属于数学学科,旨在帮助学生掌握10进制计数器的运用,提高数学运算能力和实际应用能力。

学生特点:四年级学生具有一定的数学基础,好奇心强,喜欢动手操作,但注意力集中时间较短。

教学要求:注重理论与实践相结合,以学生为主体,激发学生兴趣,培养动手操作能力和团队协作精神。

通过分解课程目标为具体的学习成果,使学生在愉快的氛围中掌握知识,提高能力。

二、教学内容1. 引入10进制计数器概念,介绍其在数学运算中的应用。

- 教材章节:第三章《数的认识》- 内容:10进制计数器的定义、计数规律、数位顺序表。

2. 学习10进制计数器的操作方法,进行数值的加减运算。

- 教材章节:第四章《简单的数学计算》- 内容:10进制计数器操作方法、数值加减运算、进位与退位。

3. 实践与应用,运用10进制计数器解决实际问题。

- 教材章节:第五章《生活中的数学》- 内容:运用10进制计数器进行购物找零、时间计算等实际问题的解决。

4. 小组合作,探讨10进制计数器在科学技术领域的应用。

- 教材章节:第六章《数学与科技》- 内容:10进制计数器在计算机、电子设备等领域的应用案例。

教学进度安排:第一课时:引入10进制计数器概念,学习计数规律和数位顺序表。

单片机十进制加法计算器设计

单片机十进制加法计算器设计

单片机十进制加法计算器设计设计概述:1.输入部分设计为了实现数字输入功能,可以采用4x4矩阵键盘作为输入设备。

通过扫描键盘矩阵,可以检测用户按下的按键,并将相应的按键字符存储在单片机内部的缓冲区中。

键盘扫描需要使用外部中断或定时器中断,在按键被按下时触发中断程序进行扫描和存储。

2.计算部分设计为了进行数字加法运算,需要在单片机中定义变量来存储输入的数字,并使用适当的算法进行加法运算。

加法运算可以通过逐位相加的方式实现,先对个位数进行加法运算,再对十位数进行加法运算,以此类推,直到最高位数。

3.显示部分设计为了显示运算结果,可以使用数码管来显示数字。

数码管的选型可以选择共阳极或共阴极的数码管,具体选择要根据实际的需求和电路设计来确定。

单片机需要通过IO口控制数码管的显示,将运算结果转化为相应的数码管段码,并通过IO口输出给数码管进行显示。

4.输出部分设计为了实现结果的输出,可以选择将结果通过串口发送给上位机,或者通过并行接口输出给其他设备。

具体的接口选择要根据实际的需求和电路设计来确定。

设计步骤:1.确定硬件平台和单片机型号,根据单片机的外设资源选择合适的输入、输出和显示设备。

2.进行电路设计,包括键盘输入电路、按键检测电路、数码管显示电路和外部接口电路。

3.编写单片机的初始化程序,包括IO口初始化、定时器中断初始化和中断服务程序编写。

4.编写键盘扫描程序,实现对键盘输入的检测和字符存储。

5.编写数字加法运算程序,实现输入数字的加法运算和结果的存储。

6.编写数码管显示程序,将加法运算结果转化为数码管的段码并进行显示。

7.编写输出程序,将结果通过串口或并行接口输出给上位机或其他设备。

8.进行调试和测试,优化程序和电路设计,确保计算器的稳定性和准确性。

9.编写用户界面程序,实现菜单、输入和输出操作的交互。

设计思路:利用单片机的运算和控制能力来实现数字加法的功能,以实现单片机十进制加法计算器的设计。

通过键盘输入,将数字存储在单片机内部的变量中,并采用逐位相加的算法实现数字加法运算。

数字逻辑与数字系统课程设计简单计算器

数字逻辑与数字系统课程设计简单计算器

简单计算器一、设计分析1、功能描述设计一个简单0-9数之间的加、减、乘法运算的计算器,,输入和输出均可以显示在数码管上。

2、实现工具1、用VHDL 语言文本形式输入;2、maxplusII行语言编写时序仿真和综合。

二、设计思想采用自顶向下的设计方式,分层进行设计。

设计分为五个模块进行;计算器模块、八位二进制数转化成8421BCD码模块,四选一数据选择器模块,七段显示译码器模块、模4计数器模块、模8计数器块、3—8译码器块。

顶层设计可以完全独立于目标器件芯片物理结构的硬件描述语言。

使用VHDL模型在所综合级别上对硬件设计进行说明、建模和仿真。

1、顶层原原理框图2、具体实现1、计算器模块、2、八位二进制数转化成8421BCD码模块3、四选一数据选择器模块4、七段显示译码器模块5、模4计数器模块6、模8计数器块7、3—8译码器块三、设计过程1、建立工程建立一个Project,命名为jiandanjisuanqi。

将各个模块生成的文件放在同一个文件夹下。

2、文本输入将各个模块的VHDL代码输入,保存并综合。

3、仿真建立各个模块的gdf图,设置输入波形并仿真。

4、顶层原理图输入利用各个模块生成的sym文件建立顶层原理图,编译并仿真。

5、硬件实现实验室提供的器件为FLEX10K,型号为EPF10K10LC84-4,将文件下载到器件当中,在实验箱中进行模拟。

四、整体框图五、VHDL部分代码及说明1、计算器模块、library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jisuanqi isPort (a,b: in STD_LOGIC_VECTOR (3 downto 0);sel:in STD_LOGIC_VECTOR (1 downto 0); -----加减乘控制端s: out STD_LOGIC_VECTOR (7 downto 0));end jisuanqi;architecture Behavioral of jisuanqi issignal q1 ,q2: STD_LOGIC_VECTOR (3 downto 0);signal q3: STD_LOGIC_VECTOR (7 downto 0);signal q4: STD_LOGIC_VECTOR (1 downto 0);beginq1<=a;q2<=b;q4<=sel;process(q4,q3)begincase q4 iswhen "00" => ----加减乘算法q3<=q1+q2;s<=q3;when "01" =>if(q1>q2)thenq3<= q1-q2;s<=q3;elseq3<=q2-q1;s<=q3;end if;when "10"=>q3<=q1*q2;s<=q3;when "11"=>q3<=q1*q2;s<=q3;when others=>q3<="00000000";s<=q3;end case;end process;end Behavioral;2、八位二进制数转化成8421BCD码模块library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity bcd isPort (s : in STD_LOGIC_VECTOR (7 downto 0);a : out STD_LOGIC_VECTOR (3 downto 0);b : out STD_LOGIC_VECTOR (3 downto 0));end bcd;architecture Behavioral of bcd issignal q0: STD_LOGIC_VECTOR (7 downto 0);signal q1: STD_LOGIC_VECTOR (3 downto 0);signal q2: STD_LOGIC_VECTOR (3 downto 0);beginprocess(s)beginq0<=s;case q0 is ----把八位二进制数转化为8421BCD码when"00000000"=>q1<="0000";q2<="0000";when"00000001"=>q1<="0000";q2<="0001";when"00000010"=>q1<="0000";q2<="0010";when"00000011"=>…………………………….3、四选一数据选择器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity mux4_1 isport(d0,d1,d2,d3 :in std_logic_vector(3 downto 0);q :out std_logic_vector(3 downto 0);sel :in std_logic_vector(1 downto 0) );end mux4_1;architecture rtl of mux4_1 isbeginprocess(sel)begin ------实现从四个数据中选择一个出来if(sel = "00") thenq<=d0;elsif(sel = "01")thenq<=d1;elsif(sel = "10")thenq<=d2;elsif(sel = "11")thenq<=d3;end if;end process;end rtl;4、七段显示译码器模块library ieee;use ieee.std_logic_1164.all;entity bcd_7dis isport (bcdm: in std_logic_vector(3 downto 0);a,b,c,d,e,f,g : out std_logic);end bcd_7dis;architecture art of bcd_7dis issignal w : std_logic_vector(6 downto 0);beginprocess(bcdm)begina<=w(6);b<=w(5);c<=w(4);d<=w(3);e<=w(2);f<=w(1);g<=w(0);case bcdm is -----实现8421码转化为2进制码的转换when "0000" =>w<="1111110";when "0001" =>w<="0110000";when "0010" =>w<="1101101";when "0011" =>w<="1111001";when "0100" =>w<="0110011";when "0101" =>w<="1011011";when "0110" =>w<="1011111";when "0111" =>w<="1110000";when "1000" =>w<="1111111";when "1001" =>w<="1111011";when "1100" =>w<="0000001";when others =>w<="0000000";end case;end process;end art;5、模4计数器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity mo4 isport(q :out std_logic_vector(1 downto 0);clk :in std_logic);end mo4;architecture rtl of mo4 issignal qcl : std_logic_vector(1 downto 0);beginprocess(clk)begin ----实现模为4的计数if(clk'event and clk = '1')thenif(qcl = "11")thenqcl <= "00";elseqcl <= qcl + '1';end if;end if;q <= qcl;end process;end rtl;6、模8计数器块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count_8 isport( clk:in std_logic;ql :out std_logic_vector(2 downto 0));end count_8;architecture rt1 of count_8 issignal qcl:std_logic_vector(2 downto 0);beginprocess(clk)begin ---- 实现模8的计数if(clk'event and clk='1') thenif (qcl="111") thenqcl<="000";elseqcl<=qcl+'1';end if;end if;ql<=qcl;end process;end rt1;7、3—8译码器块library ieee;use ieee.std_logic_1164.all;entity decode3_8 isport(d :in std_logic_vector(2 downto 0);y :out std_logic_vector(7 downto 0));end decode3_8 ;architecture rt1 of decode3_8 isbeginprocess(d)begincase d is ------实现3对8的译码when "000"=>y<="10000000";when "001"=>y<="01000000";when "010"=>y<="00100000";when "011"=>y<="00010000";when others=>y<="00000000";end case;end process;end rt1;六、各模块仿真结果1、计算器模块2、八位二进制数转化成8421BCD码模块3.、四选一数据选择器模块4、七段显示译码器模块5、模4计数器模块6、模8计数器块7、3—8译码器块8、整体仿真七、管脚锁定及硬件实现1、管脚锁定2、文件下载将文件下载完后在硬件实验箱中进行仿真检查。

数字逻辑电路课程课程设计--简易加减计算器

数字逻辑电路课程课程设计--简易加减计算器

摘要本次课程设计的任务是设计一个具有加减运算功能的简易计算器,并通过合适的方式来显示最后的计算结果。

此次设计电路的完成主要是利用简单的数字电路和电路逻辑运算来进行的。

简易加减计算器电路主要是对数据的输入与显示,数据的加减运算,数据的输出与显示三个主要的方面来设计研究完成的。

在输入电路的部分,我们通过开关的闭合与断开来实现数据的输入,开关闭合接入高电平“1”,断开接入低电平“0”。

而输入的数据将通过显示译码管以十进制的形式显示出来。

由于输入二进制的位数较多,我们采用个位十位分别输入的方式来简化电路。

加减运算电路则主要通过加法器来实现的。

设计电路时,我们将个位和个位、十位和十位分别接入一片加法器。

在进行加法运算时我们所选择的加法器是完全符合要求的,但是在进行减法运算时加法器就不能满足我们的设计要求了。

因此我们将减法转换为加法进行运算,运算时采用补码的形式。

在进行减法时通过异或门将减数的原码全部转换为补码,输入加法器中进行相加。

最后将进位信号加到十位的运算电路上就实现了加减法的运算电路。

在显示电路中,由加法器输出的数据是二进制码。

这些码可能表示超过十的数字,所以显示译码管就不能正确的显示出数字了。

此时要将二进制转化成BCD码,再将BCD 码送到显示译码管中就可以将计算所得的数字显示出来了。

概述1.1设计题目:简易加减计算器1.2设计任务和要求:1)用于两位以下十进制数的加减运算。

2)以合适的方式显示输入数据及计算结果。

1.3设计方案比较:方案一:输入十进制的数字,再通过编码器对十进制的数字进行编码,输出二进制的数据。

运用显示译码器对输入的数字以十进制的形式进行显示。

在进行加减计算的时候将二进制数字运用数模转换,然后再进行相加减。

然后将这些模拟信号再次转换成数字信号转换成数字信号,再将数字信号输入到显示译码管中来显示数剧。

这个方案中要进行数模转换和模数转换所需要的电路器件有些复杂,并且转换的时候需要很长的时间,而且转换以后数值的精度不高。

课程设计-十进制加法计算器设计

课程设计-十进制加法计算器设计

课程设计(论文)任务书电气学院电力系统专业12(1 )班一、课程设计(论文)题目:十进制加法计算器设计二、课程设计(论文)工作自2015年1 月12 日起至2015 年1月16 日止。

三、课程设计(论文) 地点: 电气学院机房10-303四、课程设计(论文)容要求:1.课程设计的目的(1)综合运用单片机原理及应用相关课程的理论知识和实际应用知识,进行单片机应用系统电路及程序设计,从而使这些知识得到进一步的巩固,加深和发展;(2)熟悉和掌握单片机控制系统的设计方法,汇编语言程序设计及proteus 软件的使用;(3)通过查阅图书资料、以及书写课程设计报告可提高综合应用设计能力,培养独立分析问题和解决问题的能力。

2.课程设计的容及任务课程设计容:利用单片机及一些外围电路设计一个简易的十进制加法计算器,硬件电路设计大概主要包括:键盘电路,显示电路以及复位电路和晶振电路。

软件方面的设计主要包括:LED显示程序设计、数值送显示缓存程序设计、读键子程序设计、运算程序的设计。

课程设计任务:设计一个键盘显示装置,键盘上除了定义0~9共10个数字键外,还要相应的功能健,其它键不定义无响应。

利用此系统可分别输入十进制被加数和加数,实现两个数相加并将结果以十进制形式显示出来。

3.课程设计说明书编写要求(1)设计说明书用A4纸统一规格,论述清晰,字迹端正,应用资料应说明出处。

(2)说明书容应包括(装订次序):题目、目录、正文、设计总结、参考文献等。

应阐述整个设计容,要重点突出,图文并茂,文字通畅。

(3)报告容应包括方案分析;方案对比;整体设计论述;硬件设计(电路接线,元器件说明,硬件资源分配);软件设计(软件流程,编程思想,程序注释,)调试结果;收获与体会;附录(设计代码放在附录部分,必须加上合理的注释)(4)学生签名:2015年1月16 日课程设计(论文)评审意见(1)总体方案的选择是否正确;正确()、较正确()、基本正确()(2)程序仿真能满足基本要求;满足()、较满足()、基本满足()(3)设计功能是否完善;完善()、较完善()、基本完善()(4)元器件选择是否合理;合理()、较合理()、基本合理()(5)动手实践能力;强()、较强()、一般()(6)学习态度;好()、良好()、一般()(7)基础知识掌握程度;好()、良好()、一般()(8)回答问题是否正确;正确()、较正确()、基本正确()、不正确()(9)程序代码是否具有创新性;全部()、部分()、无()(10)书写整洁、条理清楚、格式规;规()、较规()、一般()总评成绩优()、良()、中()、及格()、不及格()评阅人:年月日摘要随着社会科技的发展和进步,计算器因其功能强大而早已成为人们日常生活中必不可少的工具,最简单的计算器就能实现简单的加减乘除运算,这让人们免去了复杂的计算过程,大大提高了工作效率。

简易加减计算器设计(数电)

简易加减计算器设计(数电)

电子技术课程设计电气与信息工程学院建筑电气与智能化专业题目:简易加减计算器设计姓名:徐雪娇学号:094412110指导教师:祁林简易加减计算器设计一、设计目的1、在前导验证性认知实验基础上,进行更高层次的命题设计实验.2、在教师指导下独立查阅资料、设计、特定功能的电子电路。

3、培养利用数字电路知识,解决电子线路中常见实际问题的能力.4、积累电子制作经验,巩固基础、培养技能、追求创新、走向实用。

5、培养严肃认真的工作作风和严谨的科学态度。

二、设计要求1、用于两位一下十进制的加减运算。

2、以合适方式显示输入数据及计算结果。

三、总体设计第一步置入两个四位二进制数。

例如(1001)2,(0011)2和(0101)2,(1000)2,同时在两个七段译码显示器上显示出对应的十进制数9,3和5,8。

第二步通过开关选择加(减)运算方式;第三步若选择加运算方式所置数送入加法运算电路进行运算;同理若选择减运算方式,则所置数送入减法运算电路运算;第四步前面所得结果通过另外两个七段译码器显示。

即:方案一通过开关J1-J8接不同的高低电平来控制输入端所置的两个一位十进制数,译码显示器U10和U13分别显示所置入的两个数。

数A直接置入四位超前进位加法器74LS283的A4-A1端,74LS283的B4-B1端接四个2输入异或门。

四个2输入异或门的一输入端同时接到开关S1上,另一输入端分别接开关J5-J8,通过开关J5-J8控制数B的输入。

当开关S1接低电平时,B与0异或的结果为B,通过加法器74LS283完成两个数A和B的相加。

当开关J1接高电平时,B与1异或的结果为B非,置入的数B在74LS283的输入端为B的反码,且74LS283的进位信号C0为1,其完成S=A+B(反码)+1,实际上其计算的结果为S=A-B完成减法运算。

由于译码显示器只能显示0-9,所以当A+B>9时不能显示,我们在此用另一片芯片74LS283完成二进制码与8421BCD码的转换,即S>9(1001)时加上6(0110)2,产生的进位信号送入译码器U12来显示结果的十位,U11 2显示结果的个位。

简易计算器的设计

学号:课程设计题目简易计算器的设计学院自动化专业电气工程及其自动化班级姓名指导教师2014 年1月9日课程设计任务书学生姓名:专业班级:指导教师:工作单位:自动化学院题目: 简易计算器的设计初始条件:用8086CPU、8255A并行通信接口、七段LED数码管接口、小键盘控制电路接口、外围电路芯片及元器件实现一个简易计算器,完成相应的程序编写。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)可进行2位十进制的加减乘除法运算。

(2)键盘输入数据,同时LED数码管显示,模拟计算器的工作。

(3)键盘上要求有0~9数字键,+、-、×、÷、=功能键,清除键C。

(4)撰写课程设计说明书。

内容包括:摘要、目录、正文、参考文献、附录(程序清单)。

正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。

时间安排:12月26日----- 12月 28 日查阅资料及方案设计12月29日----- 1 月 2 日编程1 月 3日----- 1 月 7日调试程序1 月 8日----- 1 月 9日撰写课程设计报告指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)1设计的任务及要求 (2)2方案的设计 (3)2.1方案设计论证 (3)2.2方案概述与原理硬件电路图 (3)3系统模块与功能 (5)3.18086CPU芯片 (5)3.2 8255A 并行通信接口芯片 (5)3.3 译码电路 (6)3.4 小键盘电路 (6)3.5 四位七段 LED 数码管显示电路 (7)4软件设计框图与程序 (8)4.1计算器系统程序总体流程图 (8)4.2 模块程序流程图与程序 (8)4.2.1流程图 (8)4.2.2键盘扫描流程图 (9)4.3输入运算 (10)4.3.1输入运算的流程图 (10)4.3.2输入运算程序 (10)4.4显示部分 (11)4.4.1显示部分流程图 (11)4.4.2显示部分程序 (12)5系统仿真 (14)6小结与体会 (15)参考文献 (16)附录:设计源程序 (17)本科生课程设计成绩评定表摘要这次微机原理的课程设计的题目是简易计算器的设计,设计一个可以实现2位十进制加减乘除运算功能的电路,并用LED显示出来。

十进制加法计数器课程设计

实验十九 计数、译码、显示电路一、实验目的1、掌握中规模集成计数器74LS90的逻辑功能。

2、学习使用74LS48、BCD译码器和共阴极七段显示器。

3、熟悉用示波器测试计数器输出波形的方法。

二、 实验原理计数、译码、显示电路是由计数器、译码器和显示器三部分电路组成的,下面分别加以介绍。

1、计数器:计数器是一种中规模集成电路,其种类有很多。

如果按各触发器翻转的次序分类,计数器可分为同步计数器和异步计数器两种;如果按照计数数字的增减可分为加法计数器、减法计数器和可逆计数器三种;如果按计数器进位规律可分为二进制计数器、十进制计数器、可编程N进制计数器等多种产品。

常用计数器均有典型产品,不须自己设计,只要合理选用即可。

本实验选用74LS90二—五进制计数器,其功能如下表所示。

6263(1) R 0(1)和R 0(2)为直接复位端,R 9(1)和R 9(2)为直接置位端,可以预置数字“9”(Q D = Q A = 1,Q B = Q C = 0)。

(2) A 为二分频计数器的输入,Q A 的输出频率为CP A 的1/2。

B 为五进制计数器的输入,把Q A 输出作为五进制计数器B 的输入,即构成8421BCD 码十进制计数器。

2、 译码器:这里所说的译码器是将二进制数译成十进制数的器件。

我们选用的74LS48是BCD 码七段译码器兼驱动器。

其外引线排列图和功能表如下所示。

1234567891011121314GNDVCC 74LS48B1615CLTBI/RBORBIDAgabcdef十进制数 或功能输 入LT RBI D C B A 0123H H H H H X X X L L L L L L L H L L H L L L H H BI/RBO H H H H 输 出a b c d e f g H H H H H H L L H H L L L L H H L H H L H H H H H L L H 字 型注4567H H H H X X X X L H L L L H L H L H H L L H H H H H H H L H H L L H H H L H H L H H L L H H H H H H H H L L L L H H H X X X H L L L H L L H H L H L H H H H H H H H H H H H H L L H H L L L H H L H L L H H L L H 891011H X H L H H H H H H X X X H H L L H H L H H H H L H H H L H L L L H H H L L H L H H L L L H H H H L L L L L L L 12131415H X H H H H H 1BI RBI LTX H LX XL X X X X X X X XL L L L L L HL L L L L L L L L L L L L L H H H H H H H2 34(1) 要求输出数字0~15时,“灭灯输入”(BI )必须开路或保持高电平。

单片机十进制加法计算器设计

单片机十进制加法计算器设计单片机是一种微型计算机,它包含了CPU、RAM、ROM、I/O接口等基本组件,用于控制电子器件的运行。

在本文中,我们将设计一个十进制加法计算器,使用单片机来实现。

设计理念和思路如下:1.输入和输出:-输入:我们将使用开发板上的按钮作为输入,来输入两个十进制数。

-输出:我们将使用开发板上的数码管显示器作为输出,来显示计算结果。

2.算法:-我们将使用最常见的十进制加法算法来实现加法功能。

-首先,将两个十进制数的个位数相加,并将结果存储在一个变量中。

-接下来,将两个十进制数的十位数相加,并将结果与上一步的结果相加,再将结果存储在同一变量中。

-以此类推,直到将所有位数相加完毕。

3.硬件连接:-我们将使用数码管显示器来显示计算结果。

数码管需要与单片机的I/O接口相连接。

-开发板上的按钮将作为输入,通过单片机的GPIO接口进行控制。

4.软件实现:-我们将使用C语言编写单片机程序,使用单片机的GPIO接口进行输入和输出控制。

-首先,初始化I/O接口,配置按钮为输入,配置数码管为输出。

-然后,通过查询按钮状态,获取输入的两个十进制数。

-接下来,进行加法计算,并将结果显示在数码管上。

下面是一个示例的C语言程序,用于实现十进制加法计算器:```#include <reg51.h>sbit Button1 = P1^0; // 定义按钮1连接的引脚sbit Button2 = P1^1; // 定义按钮2连接的引脚sbit Seg1 = P2^0; // 定义数码管显示第1位的引脚sbit Seg2 = P2^1; // 定义数码管显示第2位的引脚...sbit Seg7 = P2^6; // 定义数码管显示第7位的引脚void Delay(unsigned int t) //延时函数unsigned int i, j;for(i=0;i<t;i++)for(j=0;j<123;j++);void Display(unsigned int num) //数码管显示函数//将每个位的数字显示在相应的数码管上...Seg7 = num / 1 % 10;unsigned int Add(unsigned int a, unsigned int b) //加法计算函数unsigned int sum = a + b;return sum;void mainwhile(1)//查询按钮状态,获取输入的两个十进制数unsigned int num1 = Button1;unsigned int num2 = Button2;//进行加法计算unsigned int result = Add(num1, num2);//显示计算结果在数码管上Display(result);}```这是一个简单的十进制加法计算器的设计和实现过程。

实验报告(十进制计数器)

实验四:十进制计数器实验报告
实验日期:2014.4.15 学生姓名:陆小辉(学号:1228402025) 指导老师:黄秋萍 计数器是数字系统中使用最多的时序逻辑电路,其应用非常广泛。

计数器不仅能应用于对时钟脉冲计数,而且应用于定势、分频、产生节拍脉冲和脉冲序列以及进行数字运算等。

一、设计要求:
设计十进制计数器,完成相应功能。

可预置数、可加/减。

二、设计代码如下:
input clk,ldn,clean,enp,ent; input[3:0] i; output [3:0]q; output rco; reg rco; reg [3:0] q; always@(posedge clk or negedge clean) begin if (~clean) begin q=0;rco=0;end else begin casex ({ldn,enp,ent}) 3'b0xx:q=i; 3'b101:if (q>0) q=q-1;else q=9;
3'b110:if (q<9) q=q+1;else begin q=0;rco=1;end default:q=q; endcase end end endmodule
四、仿真波形如下:
续图。

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

模拟计算器十进制整数输入及显示课程设计百度文库搜索“模拟计算器数字输入及显示课程设计”并将程序清单中的程序改成以下程序:ORG 0000HLJMP STARTORG 0030HSTART:MOV 30H,#00HMOV 38H,#00HMOV 39H,#00HMOV 3AH,#00HMOV 3BH,#00HMOV 3CH,#00HMOV 3DH,#00HMOV 3EH,#00HMOV 3FH,#00HMOV 40H,#00HMOV 41H,#00HMOV 42H,#00HMOV 43H,#00HMOV 44H,#00HMOV 50H,#0E0HMOV 51H,#0D0HMOV 52H,#0B0HMOV 53H,#70HLOOP3: ACALL DISPLAYMOV R0,#50HMOV R7,#04HLOOP1:MOV A,@R0MOV P3,AMOV A,#0FFHMOV P1,AMOV A,P1ANL A,#0FHMOV R5,ACJNE A,#0FH,LOOP2INC R0DJNZ R7,LOOP1JMP LOOP3LOOP2:MOV R4,#0A0HTFF:ACALL DELAY1mSDJNZ R4,TFFSS: MOV A,#0FFHMOV P1,AMOV A,P1ANL A,#0FHCJNE A,#0FH,SSMOV A,42HCJNE A,#01H,NEXT1MOV 40H,#00HMOV 42H,#00HNEXT1: CJNE @R0,#0E0H,ROW2KEYMOV A,R5ORL A,@R0CJNE A,#0EEH,KEY2MOV A,40HCJNE A,#08H,TW1ACALL WARNNINGJMP LOOP3TW1:INC 40HMOV A,#07HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY2:CJNE A,#0EDH,KEY3MOV A,40HCJNE A,#08H,TW2ACALL WARNNINGJMP LOOP3TW2: INC 40HMOV A,#08HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY3:CJNE A,#0EBH,KEY4MOV A,40HCJNE A,#08H,TW3ACALL WARNNINGJMP LOOP3TW3:MOV A,#09HINC 40HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY4:ACALL JUDEGACALL CHANGEMOV 42H,#01HMOV 41H,#04HJMP LOOP3ROW2KEY:CJNE @R0,#0D0H,ROW3KEYMOV A,R5ORL A,@R0CJNE A,#0DEH,KEY5MOV A,40HCJNE A,#08H,TW4ACALL WARNNINGJMP LOOP3TW4:INC 40HMOV A,#04HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY5:CJNE A,#0DDH,KEY6MOV A,40HCJNE A,#08H,TW5ACALL WARNNINGJMP LOOP3TW5:MOV A,#05HINC 40HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY6:CJNE A,#0DBH,KEY7MOV A,40HCJNE A,#08H,TW6ACALL WARNNINGJMP LOOP3TW6:MOV A,#06HINC 40HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY7:ACALL JUDEGACALL CHANGEMOV 42H,#01HMOV 41H,#03HJMP LOOP3ROW3KEY:CJNE @R0,#0B0H,ROW4KEYMOV A,R5ORL A,@R0CJNE A,#0BEH,KEY8MOV A,40HCJNE A,#08H,TW7ACALL WARNNINGJMP LOOP3TW7:MOV A,#01HINC 40HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY8:CJNE A,#0BDH,KEY9MOV A,40HCJNE A,#08H,TW8ACALL WARNNINGJMP LOOP3TW8:MOV A,#02HINC 40HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY9:CJNE A,#0BBH,KEY10MOV A,40HCJNE A,#08H,TW9ACALL WARNNINGJMP LOOP3TW9: MOV A,#03HINC 40HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY10:ACALL JUDEGACALL CHANGEMOV 42H,#01HMOV 41H,#02HJMP LOOP3ROW4KEY:MOV A,R5ORL A,@R0CJNE A,#7EH,KEY11JMP STARTKEY11:CJNE A,#7DH,KEY12MOV A,40HJZ QQCJNE A,#08H,TW10ACALL WARNNINGJMP LOOP3TW10:MOV A,#00HINC 40HMOV 43H,AACALL MOVEACALL CHANGE11QQ: MOV A,#00HINC 40HMOV 43H,AACALL MOVEACALL CHANGE11JMP LOOP3KEY12:CJNE A,#07BH,KEY13ACALL JUDEGACALL CHANGEMOV 41H,#00HMOV 42H,#01HMOV 3CH,#00HMOV 3DH,#00HJMP LOOP3KEY13:ACALL JUDEGACALL CHANGEMOV 42H,#01HMOV 41H,#01HJMP LOOP3 MOVE:MOV R1,#30HMOV R6,40H DDD: XCH A,@R1NOPNOPNOPNOPINC R1DJNZ R6,DDDRETMAKEADD:MOV A,R0MOV R2,AMOV A,R3MOV R7,ACLR CLOP:MOV A,@R0ADDC A,@R1MOV @R0,AINC R0INC R1DJNZ R7,LOPJNC NEXTINC R3MOV @R0,#01HNEXT:MOV A,R2MOV R0,ARET MAKESUB:CLR 07HMOV A,R0MOV R2,AMOV A,R3MOV R7,ACLR CLOP1:MOV A,@R0SUBB A,@R1 MOV @R0,AINC R0INC R1DJNZ R7,LOP1JNC LOP2SETB 07HLOP2:MOV A,R2MOV R0,ARET MAKEMUL:MOV A,R3MOV B,R7MUL ABXCH A,R7MOV R5,BMOV B,R2MUL ABADD A,R5MOV R4,ACLR AADDC A,BMOV R5,AMOV A,R6MOV B,R3MUL ABADD A,R4XCH A,R6XCH A,BADDC A,R5MOV R5,AMOV F0,CMOV A,R2MUL ABADD A,R5MOV R5,ACLR AMOV ACC.0,CMOV C,F0ADDC A,BMOV R4,ARET MAKEDIV:MOV A,R5CLR CSUBB A,R3MOV A,R4SUBB A,R2JNC DIV11MOV B,#16 DIV22:CLR CMOV A,R7 RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R5RLC AMOV R5,AXCH A,R4RLC AXCH A,R4MOV F0,CCLR CSUBB A,R3MOV R1,AMOV A,R4SUBB A,R2JB F0,DIV33JC DIV44DIV33:MOV R4,AMOV A,R1MOV R5,AINC R7DIV44:DJNZ B,DIV22CLR F0RETDIV11:SETB F0RETCHANGE11:MOV R0,#40HCJNE @R0,#01H,TA1MOV 38H,43HJMP TA2TA1:MOV R3,38HMOV R2,39HMOV R6,#00HMOV R7,#0AHACALL MAKEMULMOV 39H,R6MOV 38H,R7MOV 3AH,R5MOV 3BH,R4MOV R0,#38HMOV R1,#43HMOV R3,#02HACALL MAKEADD TA2: RETCHANGE:MOV 40H,#00HMOV R0,#30HMOV R7,3CHMOV R6,3DHTD1: MOV R5,#00HMOV R4,#00HMOV R2,#00HMOV R3,#0AHINC 40HACALL MAKEDIVMOV A,R5INC R0MOV A,R6CJNE A,#00H,TD1MOV A,R7CJNE A,#00H,TD1RETJUDEG:MOV A,3AHJZ JUD1ACALL ERRORLJMP LOOP3JUD1:MOV R1,#38HMOV A,41HCJNE A,#00H,TBMOV 3CH,@R1INC R1MOV 3DH,@R1JMP TBBTB: CJNE A,#01H,TB1MOV R0,#3CHMOV R3,#02HACALL MAKEADDMOV A,R3CJNE A,#03H,JUD2ACALL ERRORLJMP LOOP3JUD2:JMP TBBTB1:CJNE A,#02H,TB2MOV R0,#3CHMOV R3,#02HACALL MAKESUBJNB 07H,JUD4ACALL ERRORLJMP LOOP3 JUD4:JMP TBBTB2:CJNE A,#03H,TB3MOV R3,3CHMOV R2,3DHMOV R6,39HMOV R7,38HACALL MAKEMULMOV 3DH,R6MOV 3CH,R7MOV 3EH,R5MOV A,R5JZ JUD3ACALL ERRORLJMP LOOP3JUD3: JMP TBBTB3:MOV R7,3CHMOV R6,3DHMOV R5,#00HMOV R4,#00HMOV R2,39HMOV R3,38HACALL MAKEDIVMOV 3CH,R7MOV 3DH,R6JNB F0,TBBACALL ERRORLJMP LOOP3TBB:MOV 38H,#00HMOV 39H,#00HMOV 3AH,#00HMOV 3BH,#00HRET WARNNING: CLR P3.0SETB P3.0MOV R4,#0FFHTFg:ACALL DELAY1mSDJNZ R4,TFgRETERROR:MOV R0,#30HMOV A,#0AHMOV R5,#08HMOV 40H,#08H ET: MOV @R0,AINC R0INC ADJNZ R5,ETRETDISPLAY:MOV DPTR,#TABLE1MOV R0,#30HMOV R1,#80HMOV R5,40HNEXTF:MOV P2,R1MOV A,@R0MOVC A,@A+DPTRMOV P0,AACALL DELAY1mSMOV A,P2RR AMOV R1,AINC R0MOV A,R5JZ AADJNZ R5,NEXTFAA: RETDELAY1mS:MOV R7,#02HDL: MOV R6,#0FFHDL6:DJNZ R6,DL6DJNZ R7,DLRETTABLE1: DB 0C0H, 0F9H, 0A4H, 0B0H, 99HDB 92H, 82H, 0F8H, 80H, 90HDB 0CEH,0C0H,0CEH,0CEH,86H,0FFH,0FFH,0FFH END。

相关文档
最新文档