两位数码管显示代码(00-99)

合集下载

两位数码管显示

两位数码管显示

课程设计说明书课程名称:《单片机技术》设计题目:两位数码管显示设计学院:电子信息与电气工程学院学生姓名:学号:专业班级:指导教师:2014年6 月13日课程设计任务书两位数码管显示摘要:两位数码管显示设计是基于AT89S52单片机的两位数码显示系统,通过AT89S52进行控制,利用汇编语言编写两位数码管循环扫描动态显示的专用程序来实现两位数码管动态显示系统。

系统主要由电源模块、复位模块、外部时钟电路模块、数码管显示模块构成。

电源电路通过桥堆2W10和三端稳压器7805将交流电压变为5V的直流电压。

复位电路由电容与按键的并联来实现。

时钟通过外部12M的晶振来控制。

两位数码管显示由两个共阳极的三极管进行驱动。

将汇编语言编写的两位数码管动态显示程序写入单片机,使数码管相应段点亮,同时利用人眼的视觉暂留的特性和数码管的余辉效应,在扫描频率足够高时,人眼无法感觉数码管的变化,从而实现数码管的动态显示。

关键词:AT89S52;两位数码管;7805;2W10;动态显示目录1.设计背景 (1)1.1单片机的应用背景 (1)1.2共阳极数码管的显示方法 (1)1.3共阳极数码管的驱动设计 (1)2.设计方案 (1)2.1方案一:共阳极数码管静态显示 (1)2.2方案二:共阳极数码管动态显示 (2)2.3数码管静态与动态显示的优缺点比较 (3)3.方案实施 (3)3.1电源电路设计 (3)3.2复位及震荡电路 (4)3.3单片机接口 (4)3.4软件设计 (4)3.5调试仿真 (6)4.结果与结论 (7)4.1设计结果 (7)4.2设计结论 (7)5.收获与致谢 (7)6.参考文献 (8)7.附件 (8)1.设计背景1.1单片机的应用背景在信息时代的今天,单片机技术应用越来越广泛,涉及各行各业,几乎很难找到哪个领域没有单片机的踪迹。

如洗衣机、空调、冰箱等的控制系统,就可以用单片机实现。

为了让人们很直观的了解相关设备当前的工作状态,很多时候需要将当前的时间、温度、工作程序等状态通过数码管显示出来,这就涉及到单片机的数码管显示技术。

两位数码管计时0-99 实验

两位数码管计时0-99 实验
该程序具有一定自由性,修改第一行的参数,就可以调节计时的速度。该 值越大,动态扫描每个数的循环次数越多,每个数字显示的时间就越长。该值 越小,动态扫描每个数的循环次数越少,每个数字的显示时间就越短。 注意:在使用定义字节命令伪指令的时候,如果一行写不下,或者为了美观想另起 一行书写,一定注意在新起的一行必须添加伪指令关键字“DB”。另外抄写程序的 学习者一定注意,标号后面的“:”一定不可以省,否则在编译程序的时候会报错。
{ P31=0; P2=a[y]; P30=1; P30=0; P2=a[x]; P31=1;
} } main() { for(i=0;i<100;i++) { b=i/10; //shiwei
c=i%10; //gewei xianshi(c,b); } }
4
单片机实验报告
上述两种编程语言编写程序的思路基本一致,都是通过修改程序中动态显示的 时长实现显示时长的调节。上述两个程序有一个共同的缺点,那就是无法特别准确 的定时。在计时不要求很准确的场合使用可以,但是在对计时准确性要求较高的场 合使用时,则不是很适合。如果要求显示准确性较高,例如秒表,可以采用定时器 中断的方式修改以上程序。
对于没有 Keil 编程软件的编程者,可以将如下代码存入 HEX 文件中,再将该 HEX 文件下载至单片机或导入仿真软件中。 程序 HEX 代码如下: :0300000002008576 :0C008500787FE4F6D8FD758107020000CA :02000000802E50 :100030007530007830B6640050061145053080F503 :1000400075300080F0E53075F00A84F53185F032C6 :100050007C0A7B0A7AFFC2B190B000C2B0E53293F5A0D2B100DAE7DB3E :10007000E3DCDF22C0F9A4B0999282F880908883F3

单片机两位数码管计数设计1

单片机两位数码管计数设计1

目录一、设计目的 (4)二、设计要求 (4)三、设计电路图 (4)四、设计说明 (5)1、数码管的显示原理 (5)2、晶振的作用 (5)五、参考程序框图: (6)六、参考代码…………………………………………………7-9七、设计时使用的主要参考书及手册 (9)八、设计心得: (9)两位数码管计数一、设计目的:1. 学习外部中断技术的基本使用方法。

2. 学习中断处理程序的编程方法。

3. 学习51单片机内部计数器的使用和编程方法。

4. 学习使用数码管的显示原理以及应用。

二、设计要求:按开关开始,在按开关停止计秒,计秒从0开始,讲到99,再从0开始计秒。

按下复位键开关,数码管就会显示0.三、设计电路连线:四、设计说明:1、数码管的显示原理:@单片机系统扩展LED数码管时多用共阳LED:共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。

@通常每个段笔画要串一个数百欧姆的降压电阻。

字形0123456789黑共阳0C00F90A40B09992820F880900FF 共阴FC60da F266B6BE E0FE F600计时计算:fosc= 12MHz 则:(振荡周期)1Tc=1/12MHz(机器周期)1Tm=12Tc=12/12MHz=1 S故选择方式1 工作可以得到:则初值为:3CB0H2、晶振的作用晶振的作用是为系统提供基本的时钟信号。

晶振两边的电容叫负载电容,单片机的晶振工作于并联谐振状态,晶振的频率是在负载电容下测得的,能最大限度的保证频率值的误差。

也能保证温漂等误差。

两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振.五、参考程序框图:主程序流程图↓两位数码管显示模块六、参考代码:ORG 0000HLJMP MAINORG 0003HLJMP SERORG 000BHLJMP IT0PORG 0100HMAIN: MOV R6,#00HMOV DPTR,#TABMOV R3,#20CLR 20HMOV TMOD,#01HMOV TL0,#0B0HMOV TH0,#3CHSETB TR0SETB IT0SETB ET0SETB EX0SETB PX0CLR PT0SETB EALOOP: MOV A,R6MOV B,#10DIV ABMOVC A,@A+DPTRMOV P0,#00001110BMOV P1,ALCALL DELAYMOV A,BMOVC A,@A+DPTRMOV P0,#00001101BMOV P1,AAJMP LOOPTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H SER: PUSH PSWPUSH ACCPUSH DPHPUSH DPLCPL 20HPOP DPLPOP DPHPOP ACCPOP PSWRETIIT0P: PUSH PSWPUSH ACCMOV TL0,#0B0HMOV TH0,#3CHDJNZ R3,LOOP1MOV R3,#20JNB 20H,LOOP1INC R6CLR CMOV A,R6SUBB A,#100JC LOOP1MOV R6,#0LOOP1: POP ACCPOP PSWRETIDELAY: PUSH PSWPUSH ACCMOV R5,#4HDEL4: MOV R4,#19HDEL5: DJNZ R4,DEL5DJNZ R5,DEL4POP ACCPOP PSWRETEND七、设计时使用的主要参考书及手册1、《单片机原理及应用》(“十五”国家级规划教材) 张毅刚主编高教出版社2、单片机原理与应用实验指导书(自编)3、《单片微型计算机原理及应用》张坤毅等编西安电子科技大学出版社1997年4、《单片机原理及接口技术》胡汉才编清华大学出版社5、依据图书馆现有资料及网络资源。

密码锁使用方法

密码锁使用方法

密码锁使用方法目的步骤现象(操作成功时)设置管理密码⑴进入编程:按“*#”输入出厂初使管理员密码“123456”再按“#”键盘灯亮,数码管显示“00”⑵按键“8#”蜂鸣器“嘀~”⑶输入新管理密码(6~12位任意数字),再按“#”蜂鸣器“嘀~”⑷再输入新管理密码,按“#”蜂鸣器“嘀~”长鸣。

增加用户密码⑴进入编程:按“*#”输入管理员密码,按“#”键盘灯亮,数码管显示“00”⑵按键“7#”蜂鸣器“嘀~”⑶输入新的编号(一组密码对应一个编号,按顺序编排不可重复,01~99两位数字),再按“#”数码管显示“当前设置的编号”,蜂鸣器“嘀~”⑷输入新用户密码(6~12位数任意组合),按“#”键蜂鸣器“嘀~”⑸再次输入密码,“#”确认蓝灯亮,蜂鸣器“嘀~”长鸣。

(6)如需再添加密码按“7#”→输入新编号→输入新密码→再次输入密码→按“#”确认删除用户密码⑴进入编程:按“*#”输入管理员密码,按“#”键盘灯亮,数码管显示“00”⑵按键“5#”蜂鸣器“嘀~”⑶输入用户编号(要删除密码的对应编号),按“#”蜂鸣器“嘀~”⑷再输入用户编号,按“#”确认删除蓝灯亮,蜂鸣器“嘀~”长鸣。

⑸如需继续删除密码按“5#”→输入编号→再输编号→按“#”确认删除增加M1卡⑴进入编程:按“*#”输入管理员密码,按“#”键盘灯亮,数码管显示“00”⑵按键“6#”蜂鸣器“嘀~”⑶输入用户编号(一张卡对应一个编码,按顺序编排不可重复00~99两位数字),按“#”数码管显示“当前设置的编号”,蜂鸣器“嘀~”⑷M1卡放入感应区。

两位半数码管程序-概述说明以及解释

两位半数码管程序-概述说明以及解释

两位半数码管程序-概述说明以及解释1.引言1.1 概述概述部分:半数码管是一种常见的数字显示装置,通常由LED灯构成。

在数字电子领域中,半数码管广泛应用于计数器、电子钟、温度计等设备中。

本文将介绍两位半数码管程序,通过编程实现对两位数的显示和控制。

两位半数码管程序是一种简单而实用的数字显示方案,可以通过控制每个数码管的LED灯点亮状态来显示0-99的数字。

通过分析和编程实现两位半数码管程序,读者可以了解数字显示技术的基本原理和应用场景,同时也可以学习如何利用编程语言实现数字显示功能。

本文将分别介绍两位半数码管程序的设计思路和代码实现,以帮助读者理解数字显示技术的实现过程。

同时,通过对比多种实现方案,读者可以了解不同方法的优缺点和适用场景,从而在实际项目中选择合适的方案。

综上所述,在数字电子领域中,两位半数码管程序是一种常见且实用的数字显示方案,通过本文的介绍和实践,读者可以更好地理解和应用这一技术,为自己的项目开发和学习提供参考和帮助。

1.2 文章结构文章结构部分包括了引言、正文和结论三个主要部分。

在引言部分,我们将介绍本文的概述、文章结构和目的。

在正文部分,我们将详细介绍两位半数码管程序的具体实现方法和代码。

最后,在结论部分,我们将总结本文的重点内容,探讨这两位半数码管程序的实践意义,并展望未来可能的发展方向。

通过这样的文章结构,读者可以清晰地了解本文的内容和框架,从而更好地理解和掌握两位半数码管程序的相关知识。

1.3 目的目的部分的内容:本文旨在介绍两位半数码管程序的设计与实现,通过对比不同的程序方案,展示不同的实现思路和技术手段。

通过深入分析每个程序的优缺点,读者可以更全面地了解数码管程序的设计原理和编程技巧。

同时,本文也旨在启发读者对数字电子技术的学习和应用,促进读者对数字电路的理解和实践能力的提升。

希望读者通过本文的阅读,能够对数码管程序有更深入的认识,为日后的电子项目开发提供有益的参考和借鉴。

单片机0-99计数器 秒表报告

单片机0-99计数器 秒表报告

姓名班级指导老师时间信息工程学院图1 硬件电路连接图(二)显示电路两位数码管循环显示00~99电路数码管只要就是用于数字得显示.数码管有共阴与共阳得区分,单片机都可以进行驱动,但就是驱动得方法却不同。

两位数码管循环电路就是由电阻、二极管与数码管组成,电源+5V通过560得电阻直接给数码管得7个段位供电,P0、0—P0、7对应了两个接数码管得A,B,C,D,E,F,G与小数点位,P2、6接显示个位数得数码管得3、8引角,P2、7则接十位数得。

P2、6与P2、7端口分别控制数码管得十位与个位得供电,当相应得端口变成低电平时,驱动相应得三极管会导通,+5V通过二极管与驱动三极管给数码管相应得位供电,这时只要P0口送出数字得显示代码,数码管就能正常显示需要得数字。

图2 十位显示动态数码管(共阳数码管)图3 个位显示静态数码管(共阴数码管)(三)时钟电路时钟电路得晶振频率越高,系统得时钟频率越高,单片机得运行速度也越快。

晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中得电容应选择为30pF左右。

图4 时钟电路(四)复位电路MCS—51单片机得复位就是靠外部电路实现得。

MCS—51单片机工作之后,只要在她得RST引线上加载10ms以上得高点平,单片机就能有效地复位。

MCS-51单片机通常采用上电自动复位与按键复位两种方式。

最简单得复位电路如图5:图5 复位电路上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上得高电平,就能使单if(i++==100)//如果i=0{i=0;count++;P0=CODE[count/10];P2=~CODE[count%10];if(count==99)count=0; //如果到了99,则重新从0开始计数}}结果与分析(可以加页):(一)调试结果1.初始状态图7:初始状态结果图2.开始计时后按下按键暂停图8:中间状态图示(二)问题分析及解决措施1、一开始时没有分清楚数码管就是共阴数码管还就是共阳数码管,C语言程序中默认数码管就是共阴,所以两个P接口得值都就是按照共阴去写得,导致数码管选段及位显有问题,后来经过老师得指点,将共阳数码管P2得接口改成了共阴。

七段数码管动态显示控制

七段数码管动态显示控制

实验二七段数码管动态显示控制一、实验目的利用AT89S52和使用两位数码管显示器,循环显示两位数00-99。

其中P2.0和P2.1端口分别控制数码管的个位和十位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过驱动三极管给数码管相应的位供电,这时只要P3口送出数字的显示代码,数码管就能正常显示数字。

二、实验要求1、使用两位数码管显示器,循环显示两位数00-99;2、具有电源开关和指示灯,有复位键;3、数码管动态显示,即扫描方式,每一位每间隔一段时间扫描一次。

字符的亮度及清晰度与每位点亮的停留时间和每位显示的时间内轮换导通次数有关。

三、实验电路四、实验器材AT89S52;动态扫描显示;共阳极数码管;电阻五、实验原理说明图1 AT89S52引脚图图2 共阳极七段数码管引脚图1AT89S52引脚图,说明如下:按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O 口、控制和复位等。

1.多功能I/O口AT89S52共有四个8位的并行I/O口:P0、P1、P2、P3端口,对应的引脚分别是P0.0 ~ P0.7,P1.0 ~ P1.7,P2.0 ~ P2.7,P3.0 ~ P3.7,共32根I/O线。

每根线可以单独用作输入或输出。

①P0端口,该口是一个8位漏极开路的双向I/O口。

在作为输出口时,每根引脚可以带动8个TTL输入负载。

当把“1”写入P0时,则它的引脚可用作高阻抗输入。

当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。

在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。

②P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。

对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

标准文档9创新实践实训报告学院信息电子技术学院专业电子信息工程班级14学籍号姓名指导教师蒋野2017年06月29日单片机控制秒表电路一、电路工作原理1.工作原理用STC89C52设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“暂停”键S2和一个“继续”键S3。

为使本设计系统更加完善,可以引入一个“复位”键S1,以方便对系统的控制。

如图。

本系统采用STC89C51单片机为中心器件,利用其定时器/计数器定时计数的原理,结合硬件电路如电源电路,晶振电路,复位电路和显示电路,以及一些按键电路等来设计计数器,将软硬件有机结合起来,其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,硬件系统利用Protues强大的功能来实现,简单易于观察,在仿真中就可以观察到实际的工作状态。

2.元器件作用(1)STC89C52单片机在电子行业中有着广泛的应用。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。

(2)时钟电路作用是为电路提供唯一的时钟信号。

(3)复位电路外接一个开关,控制电路复位,接通电源电路直接复位,如果没有开关亦可将复位电路引出导线接电源后断开。

(4)本设计要求使用共阳极的数码管,如下是共阳极的数码管的0-9编码:0xc0,0x92,0x82,0xf8,0x80,0x90,0xf9,0xa4,0xb0,0x99.(5)控制电路:S2按下电路停止计时,S3按下电路恢复计时。

二、程序流程图主程序流程图三、检测安装与调试1.元件检测共阳极数码管检测管脚序号利用万用表二极管档红表笔接一个抵住两个管脚,利用另一个接触其他,找出1,2两个管脚,继续分别找出A,D,C,D,E,F,G,Dp管脚。

两位数码管显示设计

两位数码管显示设计

课程设计说明书课程名称:单片机原理及应用设计题目:两位数码管显示设计院系:电子信息与电气工程系学生姓名:学号:专业班级:指导教师:2010年 5 月10 日课程设计任务书两位数码管显示设计摘要:两位数码管的显示设计主要有硬件部分和软件部分组成,硬件部分以单片机为核心,在其周围有电源电路、时钟电路、复位电路、驱动电路和显示电路组成。

软件部分用汇编语言编程,用keil软件编译、调试。

最后用proteus软件仿真,形成以单片机为枢纽,以程序为动力,使两位数码管循环显示00-99。

关键词:AT89C52 数码管 keil proteus 汇编语言动态显示目录1.设计背景 (1)1.1设计课题及目的 (1)1.2相关技术与应用领域 (1)2.设计方案 (2)2.1静态设计 (2)2.2动态显示 (2)2.3硬件电路设计方案 (2)3. 方案实施 (3)3.1方案论证 (3)3.2设计内容 (3)3.3硬件设计 (4)3.4软件设计 (6)4. 结果与结论 (7)4.1 结果 (7)4.2 结论 (7)5. 收获与致谢 (7)5.1 收获与致谢 (7)6. 参考文献 (8)7. 附件 (9)7.1仿真原理图 (9)7.2汇编程序 (10)7.3 LED的段码 (10)7.4元件清单 (11)1.设计背景1.1设计课题及目的本课题是以单片机为核心,通过动态扫面的方式,实现两位数码管的动态显示。

单片机即单片微型计算机,是集CPU,RAM,ROM,定时,计数,和多种接口于一体的微控制器,他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上,AT89C52单片机是各单片机中比较具有代表性的一种。

这次课程设计通过对他的学习,应用,从而达到学习,设计,开发软硬件的能力.1.2相关技术与应用领域单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器的CPU、随机存储器RAM、只读存储器ROM、多种输入输出口和中断系统、定时器∕计数器等功能集成到一个硅片上构成一个小而完善的计算机系统。

项目四:2位数字显示控制

项目四:2位数字显示控制
汇编指令 CJNE A,direct,rel , , CJNE CJNE CJNE 指令功能 ),程序顺序执行 (A)=(direct),程序顺序执行 ) ( ), ),程序转移 (A)≠(direct),程序转移 ) ( ), A,#data,rel , , (A)=data,程序顺序执行 ) , (A)≠data,程序转移 ) , Rn,#data,rel , , (Rn)=data,程序顺序执行 ) , (Rn)≠data,程序转移 ) , ((Ri)) ))=data,程序顺序执行 @Ri,#data,rel (( )) , , , ((Rn)) ))≠data,程序转移 (( )) ,
(PC)+3+rel
若目的操作数<源操作数, 若目的操作数<源操作数,则:程序转移PC 程序转移 进位标志位里“ ( ) 进位标志位里“1”(CY)=1
(PC)+3+rel )
2、算术运算指令 、 MCS-51指令系统中,算术运算指令 指令系统中, 指令系统中 包括加、 除四则运算,都是针对8 包括加、减、乘、除四则运算,都是针对 位二进制无符号数进行的, 位二进制无符号数进行的,如要进行带符号 或多字节二进制运算,需编写程序, 或多字节二进制运算,需编写程序,通过执 行程序实现。 行程序实现。 (1)加法类指令 ) 加法指令有8条 加法指令有 条,其中不带进位加法 和带进位加法各4条 和带进位加法各 条。
项目预备知识: 项目预备知识:汇编指令学习
1、比较转移指令(CJNE) 、比较转移指令( )
比较转移指令是条件转移指令的一类指令, 比较转移指令是条件转移指令的一类指令,通过比较 给出的两个操作数是否相同,判断程序的执行方向。 给出的两个操作数是否相同,判断程序的执行方向。这类指 令在比较时,会影响CY的值 的值。 令在比较时,会影响 的值。

基于单片机的00秒_99秒的秒表设计说明

基于单片机的00秒_99秒的秒表设计说明

课程设计题目:用单片机AT89C51设计一个2位的LED数码显示作为“秒表”专业: 12自动化(2)班学号: 3姓名:华指导教师:蜀阳日期: 2015年6月17日目录一、设计题目和要求:1二、设计目的:1三、设计容:2四、课程设计心得体会18五、参考文献18一、前言21世纪是一个电子技术和电子元件有更大发展的世纪。

回顾百年来电子技术和电子工业发展的成就,举世瞩目。

作为一个电气专业的大学生,我们不但要有扎实的基础知识、课本知识,还应该有较强的动手能力。

现实也要求我们既精通电子技术理论,更要掌握电子电路设计、实验研究和调试技术。

课程设计就是一个理论联系实际的机会。

本次设计主要完成具备基本功能的电子秒表的理论设计,电子秒表是重要的记时工具,广泛运用于各行各业中。

作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点,不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。

在设计中应用到数码管,数码管主要用于楼体墙面,广告招牌、高档的DISCO、酒吧、夜总会、会所的门头广告牌等。

特别适合应用于广告牌背景、立交桥、河、湖护栏、建筑物轮廓等大型动感光带之中,可产生彩虹般绚丽的效果。

用护栏管装饰建筑物的轮廓,可以起到突出美彩亮化建筑物的效果。

事实证明,它已经成为照明产品中的一只奇葩,绽放在动感都市。

二、设计题目和要求:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。

设计一个“复位”键,按下“复位”键后,秒表从0开始计时。

三、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术与外围芯片的工作原理与控制方法;3.进一步掌握单片机程序编写与程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理与使用方法。

山东建筑大学单片机实验整理

山东建筑大学单片机实验整理

1、0-99数码管显示ORG 00HAJMP MAINORG 30HMAIN: MOV 30H,#0MOV 31H,#0 LP: ACALL PLAYACALL DELAYINC 30HMOV A,30HCJNE A,#10,LPMOV 30H,#0INC 31HMOV A,31HCJNE A,#10,LPAJMP MAIN PLAY: MOV R0,#30HMOV DPTR,#TAB LL: MOV A,@R0MOVC A,@A+DPTRSETB P2.1MOV P1,ACLR P2.1INC R0MOV A,@R0MOVC A,@A+DPTRSETB P2.0MOV P1,ACLR P2.0RETDELAY:MOV R7,#0DEL: MOV R6,#0DJNZ R6,$DJNZ R7,DELRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,8 0H,90HEND0-9实验ORG 00HAJMP MAINORG 30H MAIN:MOV 30H,#0 LOOP:ACALL PLAYACALL DELAYINC 30HMOV A,30HCJNE A,#10,LOOPMOV 30,#0AJMP LOOP PLAY:MOV R0,#30HMOV DPTR,#TAB LP:MOV A,@R0MOVC A,@A+DPTRMOV P1,ARETDELAY:MOV R7,#0DEL:MOV R6,#0DJNZ R6,$DJNZ R7,DELRETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END9数码管动态显示ORG 0HAJMP MAIN ORG 30HMAIN:MOV 30H,#0 MOV 31H,#0LOP1: MOV DPTR,#TAB MOV R0,#30H ACALL DISPLAY ACALL DELAYINC 30H MOV A,30H CJNE A,#10,LOP1 MOV 30H,#0 INC 31H MOV A,31H CJNE A,#10,LOP1 AJMP MAINDISPLAY: MOV A,@R0 MOVC A,@A+DPTRMOV P0,A SETB P2.1 CLR P2.1INC R0 MOV A,@R0 MOVC A,@A+DPTRSETB P2.0 MOV P0,A CLR P2.0 RETDELAY: ;误差 0usMOV R7,#0A7HDL1:MOV R6,#0ABHDL0:MOV R5,#10H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL1NOP RETTAB: DB 3FH 06H 5BH 4FH 66H 6DH DB 7DH 07H 7FH 6FH 77H 7CH 3DB 9H 5EH 79H 71H 80HEND10数码管动态显示138位选; 数码管动态显示0~99,; 用74HC138控制77SEG-MPX2-CC-BULL数码管位选,; 当138输入**10 0000(取20H)时位1开,位2关; 当138输入**10 0001(取21H 时位1关,位2开ORG 0AJMP MAINORG 30HMAIN:MOV 30H,#0HMOV 31H,#0HLOP1: MOV DPTR,#TABMOV R0,#30HACALL DISPLAY;ACALL DELAYINC 30HMOV A,30HCJNE A,#10,LOP1MOV 30H,#0INC 31HMOV A,31HCJNE A,#10,LOP1AJMP MAINDISPLAY: MOV R4,#013HLOP4: MOV R3,#014HLOP3: MOV R2,#82HLOP2: MOV A,@R0MOVC A,@A+DPTRMOV P0,AMOV P2,#01H;ACALL DELAY1MOV P2,#3HINC R0MOV A,@R0MOVC A,@A+DPTRMOV P0,AMOV P2,#0;ACALL DELAY1MOV P2,#3HMOV R0,#30HDJNZ R2,LOP2DJNZ R3,LOP3DJNZ R4,LOP4RETDELAY: ;误差0us 1MSMOV R7,#0A7HDL1:MOV R6,#0ABHDL0:MOV R5,#10HDJNZ R5,$DJNZ R6,DL0DJNZ R7,DL1NOPRETDELAY1: ;误差0us 10USMOV R6,#01HDL01:MOV R5,#02HDJNZ R5,$DJNZ R6,DL01RETTAB: DB 3FH 06H 5BH 4FH 66H 6DHDB 7DH 07H 7FH 6FH 77H 7CH 3DB 9H 5EH 79H 71H 80HEND164驱动0-99ORG 00HAJMP MAINORG 30H MAIN:MOV DPTR,#TABMOV 30H,#0MOV 31H,#0 LOOP:ACALL DISPLAYACALL DELAYINC 30HMOV A,30HCJNE A,#10,LOOPMOV 30H,#0INC 31HMOV A,31HCJNE A,#10,LOOPMOV 31H,#0AJMP LOOP DISPLAY:MOV R0,#30HMOV DPTR,#TAB LP:MOV A,@R0MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TIINC R0CJNE R0,#32H,LPRETDELAY:MOV R7,#0DEL:MOV R6,#0DJNZ R6,$DJNZ R7,DELRETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80 H,90HEND独立按键识别ORG 00HAJMP MAINORG 30 MAIN:JB P1.0,KEY1MOV P2,#0C0HACALL DELAY KEY1:JB P1.1,KEY2MOV P2,#0F9HACALL DELAY KEY2:JB P1.2,KEY3MOV P2,#0A4HACALL DELAY KEY3:JB P1.3,KEY4MOV P2,#0B0HACALL DELAY KEY4:JB P1.4,KEY5MOV P2,#99HACALL DELAY KEY5:JB P1.5,KEY6MOV P2,#92HACALL DELAY KEY6:JB P1.6,KEY7MOV P2,#82HACALL DELAY KEY7:JB P1.7,LOOPMOV P2,#0F8HACALL DELAY DELAY:MOV R7,#0 DEL:MOV R6,#0DJNZ R6,$DJNZ R7,DELRETLOOP:END交通灯ORG 00HAJMP MAIN ORG 30H MAIN:MOV P2,#00010001B MOV R1,#100 L1:ACALL DELAY DJNZ R1,L1MOV P2,#00100001B MOV R1,#10 L2:ACALL DELAY DJNZ R1,L2MOV P2,#00001010B MOV R1,#100 L3:ACALL DELAY DJNZ R1,L3MOV P2,#00010100B MOV R1,#10 L4:ACALL DELAY DJNZ R1,L4 AJMP MAINDELAY:MOV R7,#0 DEL:MOV R6,#0 DJNZ R6,$ DJNZ R7,DEL RET END流水灯ORG 00H AJMP MAINORG 30HMAIN: MOV A,#0FEHLOOP:MOV P0,ARL A ACALL DELAY SJMP LOOP DELAY: MOV R7,#0DEL:MOV R6,#0DJNZ R6,$ DJNZ R7,DELRETEND流水灯与闪烁交替RG 00HAJMP MAINORG 03HAJMP WWORG 30HMAIN:MOV A,#0FEHSETB IT0SETB EASETB EX0LOOP:MOV P0,ARL AACALL DELAYSJMP LOOPWW:MOV P0,#0ACALL DELAYMOV P0,#0FFHACALL DELAYSJMP WWRETI DELAY: MOV R7,#0DEL: MOV R6,#0 DJNZ R6,$ DJNZ R7,DELRETEND闪烁灯AJMP loopORG 30HLOOP: MOV P0,#0ACALL DELAYMOV P0,#0FFHACALL DELAYSJMP LOOPDELAY:MOV R7,#0DEL: MOV R6,#0DJNz R6,$DJNz R7,DELRETend定时器org 00hajmp mainorg 0bhajmp aaorg 30hmain: mov tmod,#01hmov th0,#0d8hmov tl0,#0f0hmov p1.0,#0ffhsetb easetb et0setb tr0ajmp $aa: clr eamov th0,#0d8hmov tl0,#0f0hcpl p1.0setb earetiORG 0HMAIN:MOV 40H,#253 ;测试显示用语句LOP:ACALL DISPLAY ;调用显示子程序ACALL AD0808 ;调用AD转换子程序ACALL DELAY ;调用延时子程序SJMP LOP ;循环进行AD0808:MOV DPTR,#7FF8H ;给出ADC0808的芯片地址P2.7, A0,A1,A2为0MOV A,#0 ;无意义MOVX @DPTR,A ;通过给DPTR送数,使P2.7为0,WR为低,从而使START为高,使ADC0808启动转换ACALL DELAY ;延时等待ADC0808转换完毕MOVX A,@DPTR ;将ADC0808转换完的数据送AMOV 40H,A ;A将转换完的数据转存40HRET ;转换子程序返回DISPLAY: ;显示子程序MOV DPTR,#TAB ;显示码表首地址MOV A,40H ;取出ADC转换结果MOV B,#100 ;以100为除数DIV AB ;进行除法运算MOV 32H,A ;将百位送32HMOV A,B ;十位、个位数送AMOV B,#10 ;以10为除数DIV AB ;进行除法运算MOV 31H,A ;10位数送31HMOV 30H,B ;个位数送30HMOV R0,#30H ;以R0为寄存器间址的首地址DISLOP:MOV A,@R0 ;将30H内的数送AMOVC A,@A+DPTR ;取显示码MOV SBUF,A ;送串行口显示JNB TI,$ ;未送出(TI<>1)等待CLR TI ;已送出将TI清零INC R0 ;指向下一个单元CJNE R0,#33H,DISLOP;若不是到33H继续RET ;已经显示到32H,返回DELAY:MOV R7,#0DEL1:MOV R6,#0DJNZ R6,$DJNZ R7,DEL1RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END2LED流水灯ORG 0HAJMP MAINORG 30HMAIN:MOV A,#0FEHLOOP:RL AMOV P0,AACALL DELAYSJMP LOOPDELAY: MOV R7,#0DEL1: MOV R6,#0DJNZ R6,$DJNZ R7,DEL1RETEND3LED闪烁(延时)ORG 0HAJMP MAINORG 30HMAIN:MOV P0, #0FFHACALL DELAYMOV P0,00HACALL DELAYAJMP MAINDELAY::MOV R7,#0HDEL: MOV R6,#0HDJNZ R6,$DJNZ R7,DELRETEND4现流水灯和闪烁的交替出现(利用中断ORG 0HAJMP MAINORG 03HAJMP INT0ORG 30HMAIN: MOV SP,#60HSETB IT0SETB EX0SETB EAMOV A,#0FEH LOP:RL AMOV P0,AACALL DELAY1SJMP LOPINT0: PUSH P0CLR EAMOV P0,#0HACALL DELAY2MOV P0,#0FFHACALL DELAY2MOV P0,#0HACALL DELAY2MOV P0,#0FFHACALL DELAY2SETB EAPOP P0CLR IE0RETIDELAY1:MOV R7,#0 DEL1: MOV R6,#0DJNZ R6,$DJNZ R7,DEL1RETDELAY2: MOV R5,#0 DEL3: MOV R4,#0del4: mov r3,#03djnz r3,$DJNZ R4,del4DJNZ R5,DEL3RETEND12矩阵式按键识别ORG 0HMAIN:MOV R0,#0HMOV DPTR,#TAB KEYSCAN:KEY1:CLR P1.0SETB P1.1JB P1.6,KEY2MOV 32H,#1SJMP DIS1KEY2:JB P1.7,KEY3MOV 32H,#2SJMP DIS1KEY3:SETB P1.0CLR P1.1JB P1.6,KEY4MOV 32H,#3SJMP DIS1KEY4:JB P1.7,KEYSCANMOV 32H,#4DIS1:ACALL DISPLAYACALL DELAYAJMP KEYSCAN DISPLAY:MOV A,32HMOVC A,@A+DPTRSETB P2.2CLR P2.1CLR P2.0MOV P0,AACALL DELAYRETDELAY:MOV R7,#0FHDEL: MOV R6,#0HDJNZ R6,$DJNZ R7,DELRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END两个数比较大小:DATA1 EQU 2000HDATA2 EQU 2001HDATA3 EQU 2002HORG 00HAJMP MAINORG 30HMAIN:CLR CMOV DPTR,#DA TA1MOVX A,@DPTRMOV R3,AINC DPTRMOVX A,@DPTRSUBB A,R3JNC BIG2XCH A,R3SJMP BIG1BIG2:MOVX A,@DPTRBIG1:INC DPTRMOVX @DPTR,AEND流水灯ORG 00HAJMP MAINORG 30HMAIN: MOV A,#0FEHLOOP: MOV P0, ARL AACALL DELAYSJMP LOOPDELAY: MOV R7,#0DEL : MOV R6,#0DJNZ R6,$DJNZ R7,DELRETEND定时org 0hajmp mainorg 1bhajmp t1intorg 30hmain:mov a,#0mov dptr,#tabmov tmod,#10hmov th1,#3chmov tl1,#0b0hsetb easetb et1setb tr1sjmp $t1int:mov th1,#3chmov tl1,#0b0hinc 30hmov r1,30hcjne r1,#10,loopmov 30h,#0inc acjne a,#10,lp1clr alp1:mov 31h,amovc a,@a+dptrmov p0,amov a,31hloop:retitab:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hend中断:ORG 00HAJMP MAINORG 03HAJMP INTOORG 30HMAIN:MOV SP,#60HSETB IT0SETB EX0SETB EAMOV A,#0FEHLOP:RL AMOV P0,AACALL DELAY1SJMP LOP INTO:PUSH P0CLR EAMOV P0,#0HACALL DELAY2MOV P0,#0FFHACALL DELAY2MOV P0,#0HACALL DELAY2MOV P0,#0FFHACALL DELAY2SETB EAPOP P0RETDELAY1:MOV R7,#0 DEL:MOV R6,#0DJNZ R6,$DJNZ R7,DELRETDELAY2:MOV R5,#0 DEL2:MOV R4,#0DJNZ R4,$DJNZ R5,DEL2RETEND按键显示:org 000hajmp mainorg 30h main:jb p1.0,key1mov p0,#0c0hacall delaykey1:jb p1.1,key2mov p0,#0f9hacall delaykey2:jb p1.2,key3mov p0,#0a4hacall delaykey3:jb p1.3,key4mov p0,#0b0hacall delay key4:jb p1.4,key5mov p0,#99hacall delay key5:jb p1.5,key6mov p0,#99hacall delay key6:jb p1.4,key7mov p0,#92hacall delay key7:jb p1.4,key8mov p0,#82hacall delay delay:mov r7,#0 del:mov r6,#0djnz r6,$djnz r7,delretend矩阵式按键识别独立按键控制数码管控制LED灯两个数比较大小:DATA1 EQU 2000HDATA2 EQU 2001HDATA3 EQU 2002HORG 00HAJMP MAINORG 30HMAIN:CLR CMOV DPTR,#DA TA1MOVX A,@DPTRMOV R3,AINC DPTRMOVX A,@DPTRSUBB A,R3JNC BIG2XCH A,R3SJMP BIG1BIG2:MOVX A,@DPTRBIG1:INC DPTRMOVX @DPTR,AEND流水灯ORG 00HAJMP MAINORG 30HMAIN: MOV A,#0FEHLOOP: MOV P0, ARL AACALL DELAYSJMP LOOPDELAY: MOV R7,#0DEL : MOV R6,#0DJNZ R6,$DJNZ R7,DELRETEND定时org 0hajmp mainorg 1bhajmp t1intorg 30hmain:mov a,#0mov dptr,#tabmov tmod,#10hmov th1,#3chmov tl1,#0b0hsetb easetb et1setb tr1sjmp $t1int:mov th1,#3chmov tl1,#0b0hinc 30hmov r1,30hcjne r1,#10,loopmov 30h,#0inc acjne a,#10,lp1clr alp1:mov 31h,amovc a,@a+dptrmov p0,amov a,31hloop:retitab:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hend中断:ORG 00HAJMP MAINORG 03HAJMP INTOORG 30HMAIN:MOV SP,#60HSETB IT0SETB EX0SETB EAMOV A,#0FEHLOP:RL AMOV P0,AACALL DELAY1SJMP LOPINTO:PUSH P0CLR EAMOV P0,#0HACALL DELAY2MOV P0,#0FFHACALL DELAY2MOV P0,#0HACALL DELAY2MOV P0,#0FFHACALL DELAY2SETB EAPOP P0RETDELAY1:MOV R7,#0 DEL:MOV R6,#0DJNZ R6,$DJNZ R7,DELRETDELAY2:MOV R5,#0 DEL2:MOV R4,#0DJNZ R4,$DJNZ R5,DEL2RETEND按键显示:org 000hajmp mainorg 30h main:jb p1.0,key1mov p0,#0c0hacall delaykey1:jb p1.1,key2mov p0,#0f9hacall delaykey2:jb p1.2,key3mov p0,#0a4hacall delaykey3:jb p1.3,key4mov p0,#0b0hacall delaykey4:jb p1.4,key5mov p0,#99hacall delaykey5:jb p1.5,key6mov p0,#99hacall delaykey6:jb p1.4,key7mov p0,#92hacall delaykey7:jb p1.4,key8mov p0,#82hacall delaydelay:mov r7,#0del:mov r6,#0djnz r6,$djnz r7,delretendADC0808:ORG 0HMAIN: mov 40h,#234ACALL DISPLAYmov p1,#0ADLOOP: MOV A,#0MOV DPTR,#7FF8HMOVX @DPTR,AACALL DELAYMOVX A,@DPTRMOV 40H,AACALL DISPLAYACALL DELAYSJMP ADLOOPDISPLAY: MOV A,40HMOV B,#100DIV ABMOV 32H,AMOV A,BMOV B,#10DIV ABMOV 31H,AMOV 30H,BMOV DPTR,#TABMOV R0,#30HDISLOP: MOV A,@R0MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TIINC R0CJNE R0,#33H,DISLOPRETDELAY: MOV R7,#0DEL1: MOV R6,#0DJNZ R6,$DJNZ R7,DEL1RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND21。

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位
(3)二次接通电源,电路依然不工作。
(4)复查电路:重新检测电路,利用万用表电流档,检测电路电流,发现电路无电流,检查40引脚VCC,发现单片机40引脚与插座短路,接触不良导致,陆续检查其他引脚。发现还有部分引脚短路。
(5)继续检查电路,直至数码管显示数字为止。
结果显示,秒表运行正常。按照预期实现了99s计时、暂停以及继续的功能。
附件
1.利用单片机完成一定的任务,你的创意(创新)是什么?
我的创意就是电路的布局,实验操作起来与仿真不同,需要注意很多细节,例如原件检测。我的电路布局既节省空间,又不影响电路结构。
2.程序
#include<reg52.h>
sbit W=P1^4;
sbit H=P1^6;
unsigned char msec,sec;
void delay(unsigned char i)
{
unsigned int j,k;
for(k=0;k<i;k++)
for(j=0;j<255;j++);
}
void To_INT(void) interrupt 1
2.元器件作用
(1)STC89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
9
创新实践实训报告
学院
信息电子技术学院
专业
电子信息工程

51单片机秒表程序-00-99秒

51单片机秒表程序-00-99秒

#include <reg52.h>#define uchar unsigned char //宏定义用uchar代替unsigned char#define uint unsigned intsbit START=P1^0; //开始、停止键低电平有效sbit RST=P1^1; //复位键sbit SMGGW=P1^2; //用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定sbit SMGSW=P1^3;uchar tt;uint time; //此变量为时间uchar code table[]={ //此为数码管字模,对应0--90x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};void Delay(uint ms) //延时子函数{uint i,j;for(i=ms;i>0;i--)for(j=500;j>0;j--);}void Display() //显示子函数{uchar ge,shi;shi=time/10;ge=time%10;P0=table[ge];SMGGW=0;//用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定本程序为低电平数码管亮SMGSW=1;Delay(2);P0=table[shi];SMGGW=1;SMGSW=0;Delay(2);}void main(){P1=0xff;EA=1;ET0=1;TMOD=0x01;TH0=0x4c; //晶振11.0592Mhz 若用12Mhz晶振则改为TH0=0x3c;Tl0=0xb0;TL0=0x00;while(1){if(START==0) //开始、停止{Delay(8);if(START==0){TR0=!TR0;while(!START) Display();}}if(RST==0) //复位{Delay(8);if(RST==0){time=0;while(!RST)Display();}}if(tt==20)tt=0;time++;if(time==99){time=0;}}Display();}}void timer0() interrupt 1{TH0=0x4c; //晶振11.0592Mhz 若用12Mhz晶振则改为TH0=0x3c;Tl0=0xb0;TL0=0x00;tt++;}Welcome To Download !!!欢迎您的下载,资料仅供参考!。

两位数码管循环显示00

两位数码管循环显示00

两位数码管循环显示00~99的实验现在让我们用实验板上的两个数码管来做一个循环显示00~99数字的实验,先来完成必要的硬件部分,数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同,并且相应的0~9的显示代码也正好相反。

首先我们来介绍两位共阳数码管的单片机驱动方法,电路如下图:网友可以看到:P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。

因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。

下面我们再介绍一种共阴数码管的单片机驱动方法,电路如下图:网友可以看到:+5V通过1K的排阻直接给数码管的8个段位供电,P2.6和 P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,相应的位可以吸入电流。

单片机的P0口输出的数据相当于将数码管不要显示的数字段对地短路,这样数码管就会显示需要的数字。

网友可以看到,共阴数码管的硬件更简单,所以在批量生产时,硬件开销小,节省PCB面积,减少焊接工作量,降低综合成本,所以采用共阴数码管更有利于批量生产,现在销售的试验板都是采用共阴数码管了。

以下是用AT89C51实验板的两位数码管显示00~99依次循环的汇编语言程序a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置temp equ 22h ;计数器数值存放内存位置star: mov temp,#0 ;初始化计数器,从0开始stlop: acall display;调用显示子程序inc temp;对计数器加1mov a,tempcjne a,#100,next ;判断计数器是否满100?mov temp,#0;满100就清零重新开始next: ljmp stlop;不满就循环执行;显示子程序display: mov a,temp ;将temp中的十六进制数转换成10进制mov b,#10 ;10进制/10=10进制div abmov b_bit,a ;十位在amov a_bit,b ;个位在bmov dptr,#numtab ;指定查表启始地址mov r0,#4dpl1: mov r1,#250 ;dplop: mov a,a_bit ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov p0,a ;送出个位的7段代码clr p2.7 ;开个位显示acall d1ms ;显示162微秒setb p2.7;关闭个位显示,防止鬼影mov a,b_bit ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov p0,a ;送出十位的7段代码clr p2.6 ;开十位显示acall d1ms ;显示162微秒setb p2.6;关闭十位显示,防止鬼影djnz r1,dplop ;循环执行250次djnz r0,dpl1 ;循环执行250X4=1000次ret;2+2X80=162微秒,延时按12MHZ计算D1MS: MOV R7,#80DJNZ R7,$RET;实验板上的7段数码管0~9数字的共阴显示代码numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH end;如果是共阳数码管的显示代码numtab: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24H 两位数码管显示00--99依次循环实验设备JS100A,JS200,JS300等仿真器,实验板都可直接实验。

按键控制数码管增减

按键控制数码管增减

单片机两位数码显示器,并根据端口的接线情况编写相应的程序,使其具有以下功能:
1.单片机系统具有双向循环显示功能,两位数码管采用十进制,最大显示
值是99,最小显示值是00,
2.按下S1后,数码管的数值自动增1;(00—99)
3.按下S2后,数码管的数值自动减1;(99—00)
4.按下S3时,数码管停止递增或递减,并显示当时的数值;
5.数码管数值自动增、减时间间隔T 0.5S<T<1S。

评定内容:
1.组装好单片机部分
2.组装好数码管部分
3.组装好电源部分
4.单片机及数码管能够工作
5.按键S1工作正常
6.按键S2工作正常
7.按键S3工作正常
8.数码管数字在改变时没有闪烁。

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