keil51单片机数码管滚的显示
1 LED数字管的原理显示了数字管的光发射原理实际上是LED灯带有七个片段(不包括小数点)或从LED灯到文献中的八个段的结果。八个段落是a,b,c,d,e,f,g,dp(点的代表)。
LED数字管是当前的显示设备,可以在许多情况下看到,例如唤醒的显示,家用电器,电台的显示功能等。
我们看到的数字管的形式为“ 8 ”,数字管分为两种类型:常见阴极和常见阳极。
1 常见阴极:这是一个问题,即以八个步骤建立数字管的阴极(负极),然后将其点亮。
如下图2 所示。
如下图3 所示。
对于数字管普通阴极,只需给出高水平的LED灯,并将相应的代码断裂点亮。
低水平的相应代码破裂将被停用。
以“ 0”的显示为例,您只需要给出一个低“ DP”和“ G”级别的水平。
他。
对于常见阳极的数字管,只需阐明低水平的LED,并将相应的代码破裂点亮。
高水平的相应代码破裂将被停用。
通过以“ 0”为例,您只需要给出高级“ DP”和“ G”才能停用。
在主函数中使用表搜索方法获取位代码和相应的段代码。
显示器的语句(左端显示,类似于公共显示面板)3 打破代码(如上所述):必须打开数字管的哪一部分,举个例子:SI您希望在上面的六个数字管中点亮第一个数字管,并让其显示“ 1 ”,首先确定其位置是第六个。
在八个二进制表示中,最低位从0开始,最高位为7 ,其公鸡代码为:1 1 1 1 1 1 1 1 0(低级别)代码为0x06 下图是代码中断的源代码: #包括#defineucharunsignédchar#defineuintunsigneddedduan = p2 ^6 ; harcodetab [1 8 ] = {0x3 f,0x06 .0x5 b,0x4 f,0x6 6 .0x6 d,0x7 d,0x07 .0x7 f,0x6 6 f,0x7 7 .0x7 c,0x3 9 .0x5 e,0x3 9 .0x5 e,0x7 9 .0,0x7 9 .0 x00.0x4 0}; //阴极阴极数字segming代码表()//主函数{uchark,m,n,bitcode,segcode; 1 ){for(n = 0; n
基于51单片机简易时钟闹钟八位数码管显示Proteus仿真
设计此计划旨在根据5 1 微控制器查看数字时钟和潜水时钟的多功能。主要功能包括显示小时,分钟和秒以及时间和闹钟的设置以及秒和日落时间和闹钟。
该设计使用微控制器中的内部计时器来查看正时函数,并以八位数字管显示了当前时期。
用户可以独立设置时间,分钟和秒,并在设置设置中闪烁数字管。
此外,对用户允许用户成为个人的恐惧。
到达时,蜂鸣器将是每六秒钟的一次戒指。
用户可以手动将闹钟按钮删除到按钮。
仿真过程开始后,数字管显示时间为00:00:00,时间为几秒钟。
按SET键输入设置模式和时钟,分钟和秒闪存比较以指示,当前是相应的参数。
设置完成后,按SET SET足球设置模式和数字管返回正常显示。
用户可以在任务开关按钮中公开对时钟时间的恐惧,并以类似的步骤将闹钟时间放置。
当闹钟时间升起时,蜂鸣器会响起,耳鸣,所有1 个根据6 秒。
闹钟可以停止按按钮。
程序代码使用KEIL4 或KEIL5 来编译程序代码,并配备了代码来理解要理解的代码。
示意图和电路示意图使用该软件进行真实参考。
Proteus模拟与对象不同,包括在操作环境中,调试方法,电路连接方法和活动速度以及功能实现。
设计报告报告包括设计区块,简介,硬件计划,软件设计,模拟调试,摘要和参考文档,总数超过6 .6 00个字。
Design Design Design Design Design Fallation, Program Source Code, Project Report, Schematic Diagram, Eget Relative, Component List, Design Software, EXPLICATIO et Hardware Processus Related Software Renuntiationes Related Related Related Related, Descriptiones Descriptionum Renuntiationes, Descriptiones Related Related, Software Related Related Related, Descriptiones Related Descriptionibus Renuntiationes, Descriptiones Related Related, Communi Descriptionibus Related Related, Descriptiones Related Renuntiationes, Descriptiones Related Descriptionibus Related, etc. 常见的问题和解决方案以提供解决问题的指导,包括模拟图,程序源代码,项目报告,示意图,硬件处理块描述以及链接以及硬件
把keil5程序怎么导入proteus
如何将文件加载到proteus1 上的keil中。然后,用鼠标的左键双击5 1 个微控制器的图标,如图所示。
然后,在出现的窗口中,单击下图中图像中的文件夹图标。
然后找到在计算机文件夹中编译的十六进制文件的导入。
2 在KEIL中进行编译时,在.hex文件格式上定义输出文件。
然后在Proteus中打开CPU的属性,填写十六进制文件和“程序设置”列中的名称(您还可以通过下面的“导航”按钮找到文件并选择它)。
然后运行它。
3 在Proteus中,双击MicroController,出现对话框,单击程序文件文件旁边的文件夹按钮,查找您的十六进制文件,您可以加载它。
4 首先用keil编写程序,双击proteus中的微控制器,然后出现此页面并找到您在对话框中写的程序文件。
5 使用keil在ISIS中生成.hex文件,右-Click AT8 9 C5 1 ,然后单击左侧,然后选择相应组件属性的“ programFile”对话框中添加的.hex文件。
6 安装proteus后,WindowsXproteus生成的十六进制文件的工具 /原材料方法将不会在桌面上生成默认快捷方式。
MicroController C5 1 的学习帮助! 在C或组装语言中,微控制器的编程是可以的,但是我建议使用C更好,模块化管理和编程是实用且非常便携的,并且适合起草大型程序。
作者,您必须首先学习C语言的基础知识,这是8 0%,因为现在每8 /1 6 /3 2 位(5 1 系列,MSP4 3 0系列,ARM系列)使用C语言。
我认为此操作是一种循环的变化,这意味着将最高的P2 放置在最低位,并使其他位一一前进。
uintled [1 ],i; 我已经稍微改变了程序,可以正确定时模拟结果。
voidisplay(ucharshi,ucharge){uintledout [1 ],i; 我已经稍微改变了程序,可以正确定时模拟结果。
如何在proteus8 上导入Keil代码。
用左鼠标按钮双击5 1 微控制器图标。
在出现的窗口中,单击下图中的文件夹图标。
只需找到计算机文件夹中编译的十六进制文件并导入即可。
在Proteus中,在MicroController上双击,出现一个对话框,单击ProgramFile程序旁边的文件夹按钮,查找您的十六进制文件,您可以加载它。
您要下载印刷电路卡吗? Proteus不支持此功能。
以下5 1 是一个示例,1 使用keil4 生成十六进制文件。
2 在proteus中找到相应的微控制器,然后将其放在图像中。
3 和3 双击微控制器,选择以前的十六进制文件的访问路径,然后单击“仿真”按钮。
如何使用记事本使用KEIL在Keil根目录中打开Tools.ini并添加tdrvx = bin \ vdm5 dll(proteusvsmonitor-5 1 driver)在列[C5 1 ]中。
运行KEIL程序来创建一个新项目。
单击按钮在工具栏中,单击“显示的对话框”中的Devert,从右上列的下拉菜单中选择ProteUsvsmMonitor-5 1 Driver,然后单击使用前的小点。
从proteus输入ISIS,单击带有左鼠标按钮的“调试”菜单,然后选择“用户集成的ebugermonitor”。
之后,可以实现Keilc和Proteus连接的调试。
修改keil安装目录的\ c5 1 \ bin目录下的工具。
单片机控制多位数码管的电子时钟程序
使用微控制器控制多数数字数字管的电子手表,并使用独立的按钮来控制它,该按钮可以显示时间和日期,并且有一个警报功能。ED和警报可以设置,并响起一分钟。
*************************************************************************************************************************** = 1 2 ,因此1 2 ,= 1 2 ,= 1 2 ,= 3 1 ; UCHARCODEDU [] = {0x3 f,0x06 ,0x5 b,0x4 f,0x6 6 ,0x6 d,0x7 d,0 x07 ,0x7 f,0x7 7 ,0x6 f,0x7 7 ,0x7 c,0x3 9 ,0x7 c,0x3 9 ,0x7 c,0x3 9 ,0x5 e,0x3 9 ,0x5 e,0x7 9 ,0x7 9 ,0x7 9 ,0x7 9 ,0x7 9 ,0x7 ,0x7 ,0x7 ,0x7 ,0x7 ,0x7 ,0x7 ,0x7 ,0x7 ,0x7 ,0x7 ,0x7 ,0x,0 x7 ,0x7 ,0x7 ,00,0 7 ,0xF,0x 0xbf,0x7 f}; ucharmth [1 3 ] = {0,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 ,3 1 3 0,3 1 ,3 1 ,3 1 ,3 1 }; 警报sbitkey3 = p3 ^3 ; sbitbeep = p2 ^2 ; //戒指vooddelay(uintdel); //延迟程序零性能(UINTSD,UINTMM,UINTHY); //显示程序voidadd(); (日,月,年); Elsedisplay(第二,分钟,小时); AlarmClock();}} viddisplay(uintsd,uintmm,uinthy){inty0,y1 ,y2 ; if(rili == 1 ){y0 = hy/1 000,y1 = hy%; vela = 1 ; p0 =我们[numwe]; vela = 0; p0 = 0xff; dula = 1 ; switch(numwe){case0:p0 =(tt == 1 set == 1 )? x4 0 :( tt == 1 set == 3 )? 0x00:du [y2 /1 0]; 休息; 如何; e3 :p0 =(tt == 1 set == 4 )? 0x00 :( rili = 1 ); DU [HY%1 0]+0x8 0:DU [mm/1 0]; t == 1 set == 6 )? 0x00:dU [mm%1 0]+0x8 0; 休息; 案例6 :p0 =(tt == 1 1 )? 0x4 0 :( tt == 1 set == 6 )? set == 7 ); 0x00:DU [SD/1 0]; 2 5 6 ; //计时器高八位//时间5 mstl0 =(6 5 5 3 6 -5 0000)%2 5 6 ; //计时器高8 位//计时器5 MSTL0 =(6 5 5 3 6 -5 0000)%2 5 6 ; //计时器是低8 位,即= 0x8 f; //打开中断tcon = 0x1 5 ; , 日历 (); if(aclock == 0){second = time%6 0; 分钟=(时间%3 6 00)/6 0; 小时=时间/3 6 00; 如果(小时= 2 4 ){time = 0; 小时= 0;}} and {second =时间1 %6 0; i = 0; idel; for(j = 0; j1 00; j ++);} voidTimer0()Interpt1 //计时器0 Interpt {th0 =(6 5 5 3 6 -5 0000)/2 5 6 ; //计时器8 位//计时器5 MSTL0 =(6 5 5 3 6 -5 0000){delay(2 ); set == 5 )set = set +2 ; elsset ++;} elsset ++; 如果(set == 9 ){set = 0; t = 0;} // while(!key0);}}}}}} voidCalendar()Interpt2 //日历{if(key3 = 0)。
计数oidcalender()//日历{if(time = 8 6 4 00){day ++; if(年%4 == 0年%1 00!= 0)|(4 00 == 0))mth [2 ] = 2 9 ; Elsemth [2 ] = 2 8 ; if(天[月]){day = 1 ; 一个月++; if(第1 2 个月){月= 1 ;}}}}}}}}}}}}}}}} 1 ,shi2 ,bai2 ,qian2 ; if(rili == 1 ){ge = day%1 0; ge1 = mo nth%1 0; GE2 =年%1 0; shi =天/1 0; shi1 =月/1 0; shi2 =年%1 00/1 0; bai2 =年%1 000/1 00; Qian2 = Year/1 000;}}和{GE1 %1 0; GE2 = 1 0; 蛋糕y1 == 0){if(rili = 1 ){if(年%4 == 0年%1 00!= 0)|(4 00 == 0))ymth [2 ] = 1 0; LOLESYMTH [2 ] = 9 ; switch(set){case1 :qian2 =(qian2 +1 )%1 0; 休息; 案例4 :GE2 =(GE2 +1 )%1 0; 休息; case5 :shi1 =(shi1 +1 )%2 ; 休息; case6 :ge1 =(shi1 == 1 ); (GE1 +1 )%3 :(GE1 +1 )%1 0;+1 )%ymth [2 ] :( GE+1 )%1 0; 刹车;}年= Qian2 *1 000+bai2 *1 00+shi2 *1 0+ge2 ; 月= SHI1 *1 0+GE1 ; day = shi*1 0+ge;}和{switch(set){案例1 :shi2 =(s hi2 +1 )3 ; case2 :GE2 =(GE2 +1 )。
, CASS E7 :shi =(shi+1 )%6 ; 休息; 案例8 :GE =(GE+1 )%1 0; 休息; 1 );}}}}} voidalArmClock()//设置alarmer {if(key2 == 0){delay(2 ); if(key2 == 0){chattap e(key2 ); 观看= 0; set = 0; brake;}}}}}引脚连接指令:1 PO连接到端口8 ARM时钟,日期和时间选择P3 ^3 是日立和时间视图4 的转换。
可以使用LED灯或Bezers选择闹钟,默认提醒时间为1 分钟。