数码管0—99显示
- 格式:doc
- 大小:24.50 KB
- 文档页数:2
stm共阳数码管动态显示0~9999对应的代码文章主题:STM共阳数码管动态显示0~9999对应的代码在嵌入式系统开发领域,常常会使用到数码管来显示数字信息。
而对于STM32系列单片机来说,共阳数码管是一种常用的显示设备。
本文将以 STM 单片机为例,介绍如何动态显示 0 到 9999 对应的代码,并讨论其实现原理。
一、STM32单片机简介STM32 是意法半导体推出的 32 位 Flash 型存储器嵌入式微控制器产品系列。
它广泛应用于工业控制、消费类电子、电源管理、医疗保健和自动控制等领域。
STM32 单片机具有丰富的外设和强大的性能,因此备受开发者的青睐。
二、共阳数码管原理共阳数码管是一种常见的 LED 数码显示器件。
在共阳数码管中,所有的 LED 二极管的阳脚都连接在一起,而阴极则分别连接到对应的引脚上。
当将对应的引脚置为低电平时,LED 点亮,从而显示出相应的数字或字母。
三、动态显示 0 到 9999 对应的代码在 STM32 单片机中,动态显示 0 到 9999 对应的代码需要通过定时器和中断的方式来实现。
在初始化阶段,需要设置定时器的时钟周期和中断频率。
然后在中断服务函数中,根据需要显示的数字进行位选和段选操作,以便在共阳数码管上显示出对应的数字。
具体代码如下:```#include "stm32f10x.h"uint8_t dis_buf[4]; // 数码管显示缓存void TIM_Configuration(void){// 设置定时器的时钟周期和中断频率// ...}void NVIC_Configuration(void){// 设置中断优先级和使能// ...}void GPIO_Configuration(void) {// 设置数码管引脚对应 STM32 的引脚 // ...}void Number_Display(uint16_t num) {// 数字分解dis_buf[0] = num / 1000;dis_buf[1] = (num % 1000) / 100; dis_buf[2] = (num % 100) / 10;dis_buf[3] = num % 10;// 依次显示// ...}void TIM2_IRQHandler(void){// 中断服务函数,动态显示数字// ...}int main(void){// 初始化// ...while (1){// 主循环// ...}}```四、个人观点和理解动态显示共阳数码管需要较为复杂的逻辑控制和定时器中断处理,但通过合适的代码编写和优化,可以实现可靠、高效的数字显示效果。
数码管数字显示原理
数码管是一种用来显示数字的电子元件,它由多个LED(发
光二极管)组成。
每个数码管可以显示数字0到9的数字。
数码管的原理是通过控制LED的亮灭来显示数字。
LED有正
极和负极两个引脚,正极称为阳极,负极称为阴极。
数码管的每个LED都有一个独立的阳极和共用的阴极。
数字的显示是通过阴极的控制来实现的。
当某一位数码管需要显示数字时,它的对应阴极会被连接到地,变成低电平。
而其他数码管的阴极则会被连接到高电平。
这样,只有被选中的数码管对应的LED才会亮起。
而数字的显示是通过阳极的控制来实现的。
当需要显示数字0时,对应的LED会被接通,发出光亮。
而其他数字对应的
LED则会被关闭,不发光。
通过控制阴极和阳极的连接,就
可以实现不同数字的显示。
数码管可以通过数字信号来控制显示的数字。
通常情况下,数码管需要一个控制信号和四个段选信号来进行数字的显示。
控制信号用于控制数码管的工作方式,而段选信号则用于选择要显示的数字。
通过上述原理,数码管可以实现对数字的显示。
利用这一原理,数码管广泛应用于各种电子设备中,如计时器、温度显示器、计算器等。
数码管动态显示时间(0-999秒倒计时)原理图:
控制部分
数码管时间显示,微动按键时间调整,工作手具转换,启动和复位程序。
1.待机:时间显示010秒.D6灯亮,此时ZHH,GZ无输出。
2.转换键:待机D5和D6状态可相互转换,开机常态体腔指示灯亮ZHH,GZ无输出。
按一下转换到D5状态,D5
指示灯亮ZHH输出,再按一下转换到D6状态,体腔指示灯亮ZHH无输出。
3.“加”“减”键:可调时间000-999秒,可快加和快减时间,每秒10个数变化。
慢加和慢减时间,每按一下变化1
个数。
4.复位键:工作和报警中可用,复位到设定状态。
5.手柄启动键:设定到D6状态时,按下启动键时间以设定时间倒计时工作,此时ZHH无输出GZ输出,治疗指
示灯D4亮时间减到000后,GZ断开报警5秒治疗指示灯闪烁,返回到设定状态。
设定到D5状态时,按下启动键时间以设定时间倒计时工作,此时ZHH,GZ输出,治疗指示灯亮时间减到000后,GZ断开报警5秒治疗指示灯闪烁。
工作中除复位键外其他键不能动作。
报警中可重复启动(设定状态)。
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 电阻1K 780 22%2 电阻10K 10.78 0.07%3 电容33pF 32 3%4 电容10uF 9 10%5 晶振12M 12M 0共阳极数码管检测管脚序号利用万用表二极管档红表笔接一个抵住两个管脚,利用另一个接触其他,找出1,2两个管脚,继续分别找出A,D,C,D,E,F,G,Dp管脚。
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。
共阳极数码管显示数字
共阳极数码管是一种常见的数字显示器,广泛应用于各种电子设备中。
它由多个LED段组成,每个LED段都可以被单独控制以显示数字或字母。
要显示数字,需要为每个LED段提供适当的电流。
这些电流的组合会使得数码管中的某些LED亮起,而其他LED熄灭,从而形成一个可见的数字或字母。
为了使数码管正常工作,需要使用适当的驱动电路来控制电流的流动。
共阳极数码管在显示数字时,通常使用7段数码管。
这7段可以表示数字0-9以及一些特殊字符。
要显示不同的数字或字符,需要控制每个LED段的亮灭状态。
例如,要显示数字“2”,需要点亮数码管中的第二、三、七段LED,而其他段则熄灭。
除了7段数码管外,还有其他类型的数码管,如4段数码管和8段数码管等。
这些数码管可以显示不同的数字和字符,但它们的工作原理与7段数码管类似。
总之,共阳极数码管是一种非常有用的数字显示器,可以用于各种电子设备中。
通过控制电流的流动,它们可以显示数字、字母和特殊字符,从而为设备提供用户界面或指示信息。
单片机00-99计数器实验总结
经过这次单片机00-99计数器实验,我对单片机的使用以及数
字电路的基础知识有了更深入的理解。
以下是我的实验总结:
一、实验原理
1. 十进制计数器:通过编号为0~9的数码管显示数字0~9;
2. 二进制计数器:通过10个LED灯表示二进制数字0~9,实
现0~99的计数;
3. 基础知识:单片机端口的输入输出、计数器的基本原理等。
二、实验过程
1. 搭建电路:根据电路图搭建电路,通过开关完成输入控制,让LED灯一次代表1个二进制数,完成计数器的计数功能;
2. 程序设计:通过C语言完成单片机的程序设计,实现计数
器的功能,将计数器的输出显示在LED灯和数码管上;
3. 调试测试:连接单片机和电脑,通过Keil软件进行程序的
编译、下载和调试测试,保证计数器能够正常工作。
三、实验结果
经过多次测试,00-99计数器实验的结果良好,可以顺利计数,LED灯和数码管能够显示出正确的结果。
四、实验心得
1. 理论知识的重要性:在实验中,掌握了数字电路的基本操作,熟悉了单片机的应用,并理解了计数器的工作原理,这对提高理论知识的理解和使用能力有很大的帮助。
2. 注意电路的接线:在实际搭建电路的过程中,注意各个部分的连接,保证电路的正常运行,避免出现因接线不良等问题而导致的错误结果。
3. 合理的编写程序:在程序的编写过程中,需要考虑到各个部分的功能,保证程序的稳定运行,避免出现因程序逻辑错误而导致的计数显示错误等问题。
总之,通过这次实验,我收获了很多,培养了自己的动手实践能力和编程思维能力,同时也提高了自己的专业知识水平。
数码管实现00到99循环工作原理
数码管显示00到99的循环工作原理可以简述如下:
1. 数字生成:使用计数器或者其他逻辑电路,生成00-99的数字,输出给数码管控制电路。
2. 数码管控制电路:根据输入的数字,选择对应的数码管段进行驱动,使其显示出数字的相应部分。
3. 数码管段的驱动:数码管由七段或者十六段LED组成,分别对应数字的各个部分。
驱动电路会根据输入的数字,使不同的LED点亮或者熄灭,来显示出对应的数字。
4. 循环实现:当数码管驱动显示数字99时,计数器或者其他逻辑电路会自动将计数值归零,重新开始计数,从而实现00-99的循环工作。
需要注意的是,为了保证数码管的正常工作,需要适当控制每个LED的亮度和电流,以及使用适当的电容和电阻进行防抖降噪等措施。
同时,为了方便调试和使用,可以在控制电路中添加按钮或者旋转编码器等输入设备,以便手动调节显示数字。
0-99计数显示器1.设计任务计数显示器,主要功能为实现0-99的计数及显示功能2.设计目的(1)了解计数器的逻辑功能。
(2)学会计数器的使用方法,掌握中规模集成计数器74LS161各管脚功能。
(3)熟悉0-99计数显示器的一般应用。
3.设计设备和器件实训设备:万用表、逻辑笔、示波器、直流稳压电源。
实训器件:实验电路板、二进制计数器74LS161(2个)、字符译码器74LS48(2个)、共阴极数码管(2个)、与非门74LS00(4个),纽扣开关(3个)。
4.设计步骤与要求电路组成:查集成电路手册,初步了解74LS161、74LS48和数码管的功能,确定74LS161、74LS48、74LS00的管脚排列,了解各管脚的功能。
电路组成元件选择:开关产生信号电路可选由两个与非门构成的单脉冲发生器,计数器可选74ls161对其进行计数,显示电路可用74ls48字符译码器和共阴极7段数码管实现。
(1)74ls161特性、引脚的连接、161 为可预置的4位二进制同步计数器,共有54/74161 和54/74LS161 两种线路结构型式,其主要电特性的典型值如下:端C LOCK 状态如何,即可完成清除功能。
161 的预置是同步的。
当置入控制器L OAD 为低电平时,在C LOCK 上升沿作用下,输出端 QA-QD 与数据输入端 A-D 相一致。
对于54/74161,当C LOCK 由低至高跳变或跳变前,如果计数控制端E NP、 ENT为高电平,则L OAD 应避免由低至高电平的跳变,而54/74LS161 无此种限制。
靠C LOCK 同时加在四个触发器上而实现的。
当161 的计数是同步的,ENP、ENT 均为高电平时,在C LOCK 上升沿作用下Q A-QD 同时变化,从而消除了异步计数器中出现的计数尖峰。
对于54/74161,只有当CLOCk 为高电平时,ENP、ENT 才允许由高至低电平的跳变,而54/74LS161 的E NP、ENT 跳变与C LOCK 无关。