hello(数码管滚动显示hello样例程序)

合集下载

在屏幕上显示Hello

在屏幕上显示Hello

而 fahr=100; 表示100存入fahr变量的存储单元 即 fahr 100
6
注:
C语言中的变量与数学上的符号含义不同 例 x=x+1 数学上无意义 C语言表示把x变量存储单元的值取出加1, 然后再保存到x变量存储单元中 变量必须先定义,后使用。定义位置在程序的开始
应该先赋值,后引用 #include <stdio.h> void main( ) { int celsius, fahr; fahr=100; celsius=5*(fahr-32)/9; printf("fahr=%d,celsius=%d\n",fahr,celsius); }
2
printf("要显示的文字");
§2.2 求华氏温度100°F对应的摄氏温度 例2-3 求华氏温度100°F 对应的摄氏温度计算公式 5 c = ( F − 32) 其中C为摄氏温度,F为华氏温度 9 2.2.1 程序解析 #include <stdio.h> void main( ) { int celsius, fahr; /*变量定义*/ fahr=100; /*常量赋值于变量*/ celsius=5*(fahr-32)/9; /*表达式赋值于变量*/ printf("fahr=%d,celsius=%d\n",fahr,celsius); /*输出结果*/ } 程序中涉及语法点: 程序中涉及语法点: 常量、 常量、变量和数据类型 输出: fahr=100, celsius=37 运算符、 运算符、表达式 3 输出变量的值
第2章 用C语言编写程序
用算例尽快进入编程 学习方法:阅读、模仿、改写->编写 §2.1 在屏幕上显示Hello World 例2-1 在屏幕上显示一个短句: Hello World /* 显示“Hello World!” */ 注释文本 #include <stdio.h> 预编译 程序中涉及语法点: printf由库函数stdio.h解释 void main( ) 主函数 其参数:"字符串",显示字符串 { \n 换行符 printf("Hello World! \n"); 函数后的“;”表示函数语句 } 要求在屏幕上显示文字: printf("要显示的文字"); 调用输出函数

51单片机数码管循环显示0~9程序说明

51单片机数码管循环显示0~9程序说明

数码管循环显示0~9程序说明功能说明:用一位数码管循环显示数字0~9,数字间隔时间为0.2秒。

一、电路图数码管循环显示0~9电路图二、所用电子元器件A T89C51:单片机;7SEG—COM—AN—GRN:带公共端共阳七段绿色数码管;CAP、CAP—ELEC:电容、电解电容;CRYSTAL:晶振。

三、程序汇编语言编写的数码管循环显示0~9源程序代码如下:START:MOV DPTR,#TABLEMOV R0,#00HLOOP: MOV A,R0MOVC A,@A+DPTRMOV P0,AACALL DLY1SINC R0CJNE R0,#10,LOOPJMP STARTDLY1S:MOV R5,#10HD1: MOV R6,#100HD2: MOV R7,#100HDJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETTABLE:DB 0C0H,0F9H,0A4H,0B0HDB 99H, 92H, 82H, 0F8HDB 80H, 90H, 88H, 83HDB 0C6H,0A1H,86H, 8EHENDProtetus 安装说明使用说明1.先安装Setup71.exe,提示选择Setup Type时默认选择即可;若提示No LICENCE 选择安装文件中"crack"-->MAXIM_LICENCE.lxk,打开安装。

2.安装完成后将crack-->文件夹BIN 和文件夹MODELS 下的文件复制到安装目录相应的文件夹内覆盖。

3.安装proteus.7.x-patch,选择patch,提示can not find the file. search the file,选择yes即可;然后选择bin文件中的ares.exe ;在选择models 中的avr.dll安装完毕退出即可。

注:***"Keil驱动"中的程序为Proteus与Keil联调的驱动。

实验二用8个七段数码管实现“HELLO”的循环显示 实验报告

实验二用8个七段数码管实现“HELLO”的循环显示 实验报告

实验二用8个七段数码管实现“HELLO”的循环显示实验报告专业班级:2011级计算机1班学号:1137030 姓名:赵艺湾实验地点:理工楼901 实验时间:2012.9.26实验二用8个七段数码管实现“HELLO”的循环显示一、实验目的1、了解显示译码器的结构和理解其工作原理。

2、学习在QuartusⅡ9.0封装和使用自己设计的电路。

3、学习对复杂电路分类简化进行设计。

二、实验内容在实验一的基础上,把5个字符扩展到8个(包括空白字符)。

要求8个数码管(HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,HEX1,HEX0)的显示与三个控制开关SW17,SW16,SW15的对应关系如下:其中“HELO空白”5个字符的编码及其与开关的对应关系如下表所示:三、实验仪器及设备:一、PC机二、QuartusⅡ9.0 三、DE2-70 四、显示器四、实验步骤1. 参考设计框图如下:2. 七段HELLO字符译码器参见实验一的设计。

3. 五选一选择器的设计框图如下:其真值表为:可用多个2选一选择器实现:2选1封装2选1内部电路5选15选1内部电路4. 8个不同的选择译码器sed7sed6sed5sed4sed3sed2sed1sed05. 将各部分按照参考设计框图连接即可。

五、实验心得通过本次用8个七段数码管实现“HELLO”的循环显示的实验,了解了QuartusⅡ9.0中自己设计电路的封装和使用;加深了对组合逻辑电路设计的了解;学习了选择器的工作原理。

六、实验结论可以通过不同的方法实现“HELLO”的循环显示,但要设计8个不同的选择器来实现对五种信号“H”、“E”、“L”、“O”、“空白”的选择。

七、实验思考题思考:实验中遇到的主要问题是什么?答:对电路整体结构、工作原理不理解;不知道选择器的工作原理。

通过实验你对组合电路的设计有何体会?答:我觉得电路设计需要认真的态度、严谨的思维。

要先弄清楚整个设计思路,为什么这么设计,再开始着手。

数码管显示程序(汇编语言)

数码管显示程序(汇编语言)

实验三数码显示一、实验目的了解LED数码管动态显示的工作原理及编程方法。

二、实验内容编制程序,使数码管显示“DJ--88”字样。

三、实验程序框图四、实验步骤联机模式:(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S6.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。

(2)数码管显示“DJ--88”字样。

脱机模式:1、在P.态下,按SCAL键,输入2DF0,按EXEC键。

2、数码管显示“DJ--88”字样。

五、实验程序清单CODE SEGMENT ;S6.ASM display "DJ--88"ASSUME CS:CODEORG 2DF0HSTART: JMP START0PA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口BUF DB ?,?,?,?,?,?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F0H START0: CALL BUF1CON1: CALL DISPJMP CON1DISP: MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALMOV CL,0DFH ;显示子程序 ,5msMOV BX,OFFSET BUFDIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,00A0HLOOP $POP CXCMP CL,0FEH ;01HJZ LX1MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALINC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,0DHMOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,08HMOV BUF+5,08HRETCODE ENDSEND START。

数码管驱动程序实例

数码管驱动程序实例

数码管驱动程序实例介绍数码管是一种常见的显示设备,通常用于显示数字和部分字母。

为了控制数码管的显示内容,我们需要编写一段驱动程序来控制数码管的工作。

本文将介绍一个数码管驱动程序的实例,包括硬件连接、代码编写和运行效果展示。

通过学习这个实例,你将了解到如何使用Arduino来驱动数码管进行数字显示。

硬件连接首先,我们需要准备以下硬件组件:•Arduino开发板•数码管(常见的有共阳极和共阴极两种类型)接下来,按照以下步骤进行硬件连接:1.将Arduino开发板与电脑连接,并打开Arduino IDE。

2.将数码管的引脚与Arduino开发板上的数字引脚相连。

具体连接方式取决于你使用的数码管类型,请参考相关资料或数据手册。

3.使用面包板或杜邦线等工具完成引脚连接。

代码编写完成硬件连接后,我们可以开始编写代码了。

以下是一个简单的数码管驱动程序示例:// 引入库#include <SevSeg.h>// 创建一个SevSeg对象并指定引脚SevSeg sevseg;void setup() {// 初始化数码管sevseg.begin(COMMON_CATHODE, 4, 3, 2, 1, 0, 6, 7, 5, 8);}void loop() {// 显示数字0-9for (int i = 0; i < 10; i++) {sevseg.setNumber(i);sevseg.refreshDisplay();delay(1000);}}代码解析:1.首先,我们引入了一个名为SevSeg的库,该库提供了控制数码管的函数和方法。

2.在setup()函数中,我们初始化了一个SevSeg对象,并指定了数码管的引脚连接方式。

这里使用的是共阳极数码管,如果你使用的是共阴极数码管,则需要将COMMON_CATHODE改为COMMON_ANODE。

3.在loop()函数中,我们通过一个循环来显示数字0-9。

八位数码管滚动显示案例设计说明

八位数码管滚动显示案例设计说明

“八位数码管滚动显示”程序设计说明1程序设计思路8位数码管动态扫描是经典的测试数码管是否正常工作和学习使用数码管显示的案例,首先要理解段选和位选概念,段选是选择一个数码管上哪个发光二极管发光,而位选则是选择八个数码管中哪个数码管来显示。

8位数码管动态扫描电路连接示意图2关键代码设计说明2.1公共变量定义及说明sbit Sel0=P2^0;//sbit Sel1=P2^1;//sbit Sel2=P2^2;//位选的三个引脚控制位uchar show_w1;uchar show_w2;uchar show_w3;uchar show_w4;uchar show_w5;uchar show_w6;uchar show_w7;uchar show_w8;//show_wi(i=1,2,3,4,……,8)分别是对应左到右的各个数码管上的显示的数字uchar flag;//分频作用,同时用作位选下标uchar count;//分频作用的变量uchar duanxuan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x40,0x00}; //段选,显示0-fuchar weixuan[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; //位选,选择是0-7中的一个数码管2.2 Init():完成初始化配置;(1)P0和P2口需要设置成推挽模式输出,以驱动LED数码管正常显示。

P2M1=0x00; P2M0=0xff; P0M1=0x00; P0M0=0xff;(2)TMOD=0x01; //定时器0采用模式1(3)打开中断并允许定时器0中断EA=1;//打开总中断ET0=1;//允许定时器0中断TR0=1;//启动定时器0(4)设置定时器初始值TH0=(65535-1000)/256; TL0=(65535-1000)%256;(5)设置位选位flag初始值为0;(6)为每个数码管要显示的内容赋初值show_w1=0;show_w2=1;show_w3=2;show_w4=3;show_w5=4;show_w6=5;show_w 7=6;show_w8=7;2.3void timer0() interrupt 1当定时器0初始值不断加一最终溢出时激发的处理方法。

单片机课设数码管显示滚动控制

单片机课设数码管显示滚动控制

《单片机设计与实训》设计报告题目:数码管滚动显示控制姓名:王伟杰班级:自动化四班学号: 2014550430指导老师:张莹提交日期: 2016年10月29日目录一、设计题目与要求 (3)1.1设计题目 (3)1.2设计要求 (3)二、系统方案设计 (3)2.1硬件电路设计 (3)1.单片机最小系统简介 (3)2.数码管显示电路 (6)2.3硬件选型及说明 (6)1. ST89C51单片机 (6)2.四位一体七段共阴极显示数码管 (8)三、系统原理图设计与仿真 (9)3.1系统仿真图 (9)3.2系统仿真结果 (10)四、程序设计 (11)4.1程序设计 (11)4.2程序流程图 (12)五、系统调试 (14)5.1系统硬件调试 (14)5.2系统软件调试 (14)六、总结与体会 (14)附录一 (16)附录二 (17)附录三 (27)一、设计题目与要求单片机课程设计是一门实践课程,要求学生具有制作调试单片机最小系统及外设的能力,能够掌握单片机内部资源的使用。

单片机课程设计内容包括硬件设计、制作及软件编写、调试,学生在熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境Keil C51编程调试,并使用STC ISP调试工具采用串口下载方式联调制作的单片机最小系统。

单片机课程设计题目包含基本部分及扩展部分,基本部分即单片机最小系统部分,扩展部分是对单片机内部资源及外部IO 口的功能扩展,使制作的单片机系统具有一定的功能。

1.1设计题目数码管滚动显示控制1.2设计要求自制一个单片机最小系统,包括串口下载、复位电路,采用两个四位一体数码管作为显示器件,通过按钮选择实现四种滚动显示模式,例如从左至右,从右至左,内缩,外扩等,滚动信息可以是数字或有意义的英文字符。

二、系统方案设计2.1硬件电路设计本设计的硬件电路主要包括的模块有:单片机最小系统、七段数码管显示模块、1.单片机最小系统简介单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。

数码管的动态显示设计与研究

数码管的动态显示设计与研究

单片机课程设计报告指导老师:张橙班级:自动化072姓名:廖岩学号: 07401100221日期: 2013年1月6日数码管的动态显示设计与研究一:概述动态显示主要就是利用人眼的视觉感来设计的,一般来说如果显示的频率过慢,则会有断断续续的显示;如果显示的频率加快,则人眼就分辨不出这种视觉残余!随着现代科学技术的不断地进步,人们已经走入了信息的高速时代。

科学的力量日益强大,技术的更新的速度也更加加快了。

计算机走进了千家万户,其中,单片机是一种应用十分广泛的单心片微型计算机,在我国的普及应用已有若干年,上至航天飞机,下至电动玩具,都能见到它的身影。

单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。

事实上单片机是世界上数量最多的计算机。

现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。

手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。

而个人电脑中也会有为数不少的单片机在工作。

汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。

而本次单片机数码管动态显示设计中采用AT89C52。

AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。

RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。

vcc(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。

P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

实验二用8个七段数码管实现“HELLO”的循环显示(1)

实验二用8个七段数码管实现“HELLO”的循环显示(1)

实验二实验二用8个七段数码管实现“HELLO”的循环显示专业班级:计算机学号:1037062 姓名:其力格尔实验地点:理工楼9层实验时间:2010-11-3用8个七段数码管实现“HELLO”的循环显示在实验一的基础上,把5个字符扩展到8个(包括空白字符)。

要求8个数码管(HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,HEX1,HEX0)的显示与三个控制开关SW17,SW16,SW15的对应关系如下:SW17 SW16 SW15 HEX7 HEX6 HEX5 HEX4 HEX3 HEX2 HEX1 HEX00 0 0 H E L L O0 0 1 H E L L O0 1 0 H E L L O0 1 1 H E L L O1 0 0 E L L O H1 0 1 L L O H E1 1 0 L O H E L1 1 1 O H E L L参考设计框图如下:其中“HELO空白”5个字符的编码及其与开关的对应关系如下表所示:开关位置编码字符SW14,SW13,SW12 000 HSW11,SW10,SW9001 ESW8,SW7,SW6010 LSW5,SW4,SW3011 OSW2,SW1,SW0100 空白七段HELLO字符译码器参见实验一的设计。

五选一选择器的设计框图如下:其真值表为:S2 S1 S0 C(C2C1C0)0 0 0 D00 0 1 D10 1 0 D20 1 1 D31 0 0 D41 0 1 D41 1 0 D41 1 1 D4可用多个2选一选择器实现:或参照选择器的设计方法自己重新设计。

需要设计8个不同的选择译码器。

选择译码器7的设计方法如下:SW17 SW16SW15HEX7 S2 S1S0输入信号输出信号0 0 0 空白 1 0 0 0 0 1 空白 1 0 0 0 1 0 空白 1 0 0 0 1 1 H 0 0 0 1 0 0 E 0 0 1 1 0 1 L 0 1 0 1 1 0 L 0 1 0 111O11由真值表得出:其中S2,S1已经过化简。

微机原理数码显示hello

微机原理数码显示hello

实验二数码显示一、实验目的了解LED数码管动态显示的工作原理及编程方法。

二、实验内容编制程序,使数码管显示“HELLO”字样。

三、实验程序框图四、实验过程1、启动运行DICE-8086K软件,屏幕显示DICE-8086K软件的工作窗口,底边状态栏由“下位机没有连接….”变成“连接上下位机”,说明联机成功,否则会弹出对话框提示:“下位机没有连接…”。

单击工具栏上的“重新连接”按钮可以联机,一定要保证上下位机联机成功。

将试验箱上的通讯开关打到最下端86/88档。

2.进入DICE-8086K软件后,默认会打开一个编辑窗口Editor,此时可在此编辑、输入源程序。

输入的源程序如下:CODE SEGMENTASSUME CS:CODESTART: JMP TODA TA DB 89H,86H,0C7H,0C7H,0C0HTO:LEA SI,DA TAMOV BL,11101111BNEXT: MOV DX,0FF20HMOV AL,BLOUT DX,ALROR BL,1CMP AL,10111111BJZ TOMOV DX,0FF21HMOV AL,[SI]OUT DX,ALINC SICALL DELAYJMP NEXTDELAY PROCMOV CL,0FFHX1:DEC CLJNZ X1DELAY ENDPHLTCODE ENDSEND START保存编写好的程序,保存的文件名后缀为.ASM ,保存后,单击工具栏上的编译装载图标,几秒钟后会弹出“编译成功”对话框,单击“OK”,再等几秒钟会弹出“装载成功”对话框,单击“OK”即编译装载完毕。

3、观察试验箱上的数码管显示是否为HELLO,若不是则需检查程序是否出错。

五、实验总结1、学会了数码管的控制方法,以及DICE-8086K软件的使用方式。

2、学会了延时汇编程序的一般书写以及调用。

单片机课程设计-8位8段LED数码管动态扫描显示

单片机课程设计-8位8段LED数码管动态扫描显示

华南理工大学广州汽车学院单片机课程设计题目:8位8段LED数码管动态扫描专业:电子信息工程班级:09电信(1)班姓名:付锦辉学号:200930062745一、内容要求:在8位8段LED数码管显示“8.8.8.8.8.8.8.8.”持续500ms,之后灭显示器200ms;然后显示“WELCOM-1”(由于8位8段LED数码管显示不能显示字母W 和M,所以改为显示“HELLO-93”)二、目的和意义1、掌握数码管动态扫描显示原理及实现方法。

2、掌握动态扫描显示电路驱动程序的编写方法。

三、总体方案设计思路LED数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,再选通相应的数码管后,即显示字段上得到显示字形码。

这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。

动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。

其接口电路是把所有显示器的8个笔画段A-DP同名端并联在一起,而每个显示器的公共极COM各自独立地接受I/O线控制,CPU向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。

而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。

再轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是一组稳定的显示数据,不会有闪烁感。

采用总线驱动器74HC245提供LED数码管的段驱动,输出高电平时点亮相应段;采用集电极开路的BCD-十进制译码器/驱动器完成LED数码管位驱动,输出低电平时选通相应位。

P2口每个口线输出灌电流不足以驱动一个数码管显示器的位-公共极,所依通过集电极开路的BCD-十进制译码器/驱动器7445驱动,即节约P2口线,又增加驱动能力。

显示HELLO

显示HELLO

集美大学诚毅学院实验报告课程________日期____年__月_日班级______学号______姓名______一实验名称:多路选择器二实验目的:三实验内容:实验2-4:用七段数码管显示字符“HELLO”显示HELLOLIBRARY ieee; ------七段译码器文件USE ieee.std_logic_1164.all;ENTITY hello ISPORT ( SW : IN STD_LOGIC_VECTOR(2 DOWNTO 0);HEX0: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END hello;ARCHITECTURE Behavior OF hello ISBEGINPROCESS(SW)beginCASE SW ISWHEN "000" => HEX0<="0001001"; -- HWHEN "001" => HEX0<="0000110"; --EWHEN "010" => HEX0<="1000111"; --LWHEN "011" => HEX0<="1000000"; --OWHEN others => HEX0<="1111111";END CASE;END PROCESS;END Behavior;五位字符HELLO循环显示,子模块hello代码如上LIBRARY ieee; ——————顶层程文件USE ieee.std_logic_1164.all;ENTITY ex1_part5 ISPORT ( Sw: IN STD_LOGIC_VECTOR(17 DOWNTO 0);HEX0,HEX1,HEX2,HEX3,HEX4: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END ex1_part5;ARCHITECTURE Behavior OF ex1_part5 IScomponent helloPORT ( SW: IN STD_LOGIC_VECTOR(2 DOWNTO 0);HEX0: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END component;component mux_3bit_5tolPORT ( S,U,V,W,X,Y: IN STD_LOGIC_VECTOR(2 DOWNTO 0);M: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END component;SIGNAL M0,M1,M2,M3,M4: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINS0: mux_3bit_5tol PORT MAP (SW(17 DOWNTO 15),SW(14 DOWNTO 12),SW(11 DOWNTO 9),SW(8 DOWNTO 6),SW(5 DOWNTO 3),SW(2 DOWNTO 0),M4);N0: hello PORT MAP (M4,HEX4);S1: mux_3bit_5tol PORT MAP (SW(17 DOWNTO 15),SW(11 DOWNTO 9),SW(8 DOWNTO 6),SW(5 DOWNTO 3),SW(2 DOWNTO 0),SW(14 DOWNTO 12),M3);N1: hello PORT MAP (M3,HEX3);S2: mux_3bit_5tol PORT MAP ( SW(17 DOWNTO 15),SW(8 DOWNTO 6),SW(5 DOWNTO 3),SW(2 DOWNTO 0),SW(14 DOWNTO 12),SW(11 DOWNTO 9),M2); N2: hello PORT MAP (M2,HEX2);S3: mux_3bit_5tol PORT MAP (SW(17 DOWNTO 15),SW(5 DOWNTO 3),SW(2 DOWNTO 0), SW(14 DOWNTO 12),SW(11 DOWNTO 9),SW(8 DOWNTO 6),M1);N3: hello PORT MAP (M1,HEX1);S4: mux_3bit_5tol PORT MAP (SW(17 DOWNTO 15),SW(2 DOWNTO 0),SW(14 DOWNTO 12),SW(11 DOWNTO 9),SW(8 DOWNTO 6),SW(5 DOWNTO 3),M0);N4: hello PORT MAP (M0,HEX0);END Behavior;LIBRARY ieee; 底层三位五选一多路选择器文件USE ieee.std_logic_1164.all;ENTITY mux_3bit_5tol ISPORT ( S,U,V,W,X,Y: IN STD_LOGIC_VECTOR(2 DOWNTO 0);M: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END mux_3bit_5tol;ARCHITECTURE Behavior OF mux_3bit_5tol ISBEGINPROCESS(S)beginCASE S ISWHEN "000" => M<=U;WHEN "001" => M<=V;WHEN "010" => M<=W;WHEN "011" => M<=X;WHEN "100" => M<=Y;WHEN others => M<="111";END CASE;END PROCESS;END Behavior;8个字符循环显示LIBRARY ieee; 顶层文件USE ieee.std_logic_1164.all;ENTITY ex8_part5 ISPORT ( SW: IN STD_LOGIC_VECTOR(17 DOWNTO 0);HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ex8_part5;ARCHITECTURE Behavior OF ex8_part5 IScomponent helloPORT ( SW: IN STD_LOGIC_VECTOR(2 DOWNTO 0);HEX0: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END component;component mux_3bit_8tolPORT ( S,X0,X1,X2,X3,X4,X5,X6,X7: IN STD_LOGIC_VECTOR(2 DOWNTO 0);M: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END component;SIGNAL M0,M1,M2,M3,M4,M5,M6,M7: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINS0: mux_3bit_8tol PORT MAP (SW(17 DOWNTO 15),"111","111","111",SW(14 DOWNTO 12),SW(11 DOWNTO 9),SW(8 DOWNTO 6),SW(5 DOWNTO 3),SW(2 DOWNTO 0),M7);N0: hello PORT MAP (M7,HEX7);S1: mux_3bit_8tol PORT MAP (SW(17 DOWNTO 15),"111","111",SW(14 DOWNTO 12),SW(11 DOWNTO 9),SW(8 DOWNTO 6),SW(5 DOWNTO 3),SW(2 DOWNTO 0),"111",M6);N1: hello PORT MAP (M6,HEX6);S2: mux_3bit_8tol PORT MAP (SW(17 DOWNTO 15),"111",SW(14 DOWNTO 12),SW(11 DOWNTO 9),SW(8 DOWNTO 6),SW(5 DOWNTO 3),SW(2 DOWNTO 0),"111","111",M5);N2: hello PORT MAP (M5,HEX5);S3: mux_3bit_8tol PORT MAP (SW(17 DOWNTO 15),SW(14 DOWNTO 12),SW(11 DOWNTO 9),SW(8 DOWNTO 6),SW(5 DOWNTO 3),SW(2 DOWNTO 0), "111","111","111",M4); N3: hello PORT MAP (M4,HEX4);S4: mux_3bit_8tol PORT MAP (SW(17 DOWNTO 15),SW(11 DOWNTO 9),SW(8 DOWNTO 6),SW(5 DOWNTO 3),SW(2 DOWNTO 0),"111","111","111",SW(14 DOWNTO 12),M3);N4: hello PORT MAP (M3,HEX3);S5: mux_3bit_8tol PORT MAP (SW(17 DOWNTO 15),SW(8 DOWNTO 6),SW(5 DOWNTO 3),SW(2 DOWNTO 0),"111","111","111",SW(14 DOWNTO 12),SW(11 DOWNTO 9),M2);N5: hello PORT MAP (M2,HEX2);S6: mux_3bit_8tol PORT MAP (SW(17 DOWNTO 15),SW(5 DOWNTO 3),SW(2 DOWNTO 0),"111","111","111",SW(14 DOWNTO 12),SW(11 DOWNTO 9),SW(8 DOWNTO 6),M1); N6: hello PORT MAP (M1,HEX1);S7: mux_3bit_8tol PORT MAP (SW(17 DOWNTO 15),SW(2 DOWNTO 0),"111","111","111", SW(14 DOWNTO 12),SW(11 DOWNTO 9),SW(8 DOWNTO 6),SW(5 DOWNTO 3),M0);N7: hello PORT MAP (M0,HEX0);END Behavior;LIBRARY ieee; 底层三位8选一多路选择器文件USE ieee.std_logic_1164.all;ENTITY mux_3bit_8tol ISPORT ( S,X0,X1,X2,X3,X4,X5,X6,X7: IN STD_LOGIC_VECTOR(2 DOWNTO 0);M: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END mux_3bit_8tol;ARCHITECTURE Behavior OF mux_3bit_8tol ISBEGINPROCESS(S)beginCASE S ISWHEN "000" => M<=X0;WHEN "001" => M<=X1;WHEN "010" => M<=X2;WHEN "011" => M<=X3;WHEN "100" => M<=X4;WHEN "101" => M<=X5;WHEN "110" => M<=X6;WHEN "111" => M<=X7;WHEN OTHERS =>NULL;END CASE;END PROCESS; END Behavior;。

单片机显示HELLO

单片机显示HELLO
if(t0%4==0)//让流水隔200ms山说//if(t0==2)//此时不能计数t0是否为五秒钟
{//{
P1=~P1;
if(t0==100)//判断计时达到5s没有,达到进入语句
{
TR0=0;//关闭定时器0 //t0=0;
P1=0xff;//关灯
flage1=1;//定义控制说马关的变量进入主函数
}//P1=~P1;
}//}
}
}
void time1 () interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
t1++;
if(t1==2)//检验是否0.1秒,如果是进入语句
{
t1=0;//清零
bai=shu/100;
shi=shu%100/10;
{
init();
while(1)
{if(flage1!=1)//如果真即不为1为0,则说明程序没有进入到二极管闪烁定时,则执行第一个display
display(7,6,5,bai,shi,ge);
else//否则,即为1,则说明程序已经进入到二极管闪烁且定时间已经到达,执行第二个display显示HELLO
//如果不是1是0[也就说t1中没有进入到if(398)以下的语句],执行大括号里面语句,则流水继续?
//如果是1,即为假,进入else语句,
{
if(t0==10)
{
t0=0;
temp=_crol_(temp,1);
P1=temp;
}
}
else//即执行了t1里面的flage语句了,此时进入此语句
{
uchar code table[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0x11,0xc1,0x63,0x85,0x61,0x71,0x91,0x61,0xe3,0x03,0xff};
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档