单片机实验——键盘与显示实验

这篇具有很好参考价值的文章主要介绍了单片机实验——键盘与显示实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

利用独立键盘和4位一体七段LED数码管,分别完成以下实验内容:

1.使用4位一体七段LED数码管的个位,设计一台仅有个位的秒表,要求:

1)每一秒钟到,数码管自动加 1 并显示。(提示:可用静态显示方式,时间累计用延时实现)

        ORG 0000H
        LJMP MAIN
        ORG 0100H

MAIN:
        MOV DPTR,#TAB
        MOV P0,#0
        MOV P1,#0FFH
        MOV R0,#0
NXT:    MOV A,R0
        MOVC A,@A+DPTR
        MOV P1,A
        INC R0
        LCALL DELAY
        CJNE R0,#10,NXT
        LJMP MAIN

DELAY:
        MOV R7,#10
LOOP1:  MOV R6,#200
LOOP2:  MOV R5,#249
LOOP3:  DJNZ R5,LOOP3
        DJNZ R6,LOOP2
        DJNZ R7,LOOP1
        RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;TAB: DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H 共阴极与共阳极之分

2.使用4位一体七段LED数码管的4个位,设计一台多位的秒表,要求:

1)每一秒钟到,数码管自动加 1 并显示。(提示:可用动态显示方式,时间累计用定时器中断实现) 文章来源地址https://www.toymoban.com/news/detail-505735.html

        ORG 0000H
	    LJMP MAIN
	    ORG 0100H


MAIN:
        MOV R0,#0
	    MOV R1,#0
	    MOV R2,#0
	    MOV R3,#0
	    MOV R6,#0
        MOV R7,#0
        MOV 50H,#160
        MOV R4,50H
        CLR C
	    MOV DPTR,#TAB
LOOP:	LCALL DISP1
        MOV A,R6
        MOV 30H,R7
        CJNE A,30H,SKIP1
        LJMP NEXT
SKIP1:  MOV A,R7
        SUBB A,R6
        JNB CY,NEXT
        MOV A,R6
        MOV R7,A
        CLR C
        CJNE R7,#1,NEXT21
        MOV 50H,#80
NEXT21: CJNE R7,#2,NEXT22
        MOV 50H,#53
NEXT22: CJNE R7,#3,NEXT
        MOV 50H,#40
NEXT:   DJNZ R4,SKIP2
        LJMP LOOP


SKIP2:
        MOV R4,50H
	    INC R0
	    CJNE R0,#10,LOOP
	    MOV R0,#0
	    MOV R6,#1
	    INC R1
	    CJNE R1, #10, LOOP
	    MOV R1, #0
	    MOV R6, #2
	    INC R2
	    CJNE R2, #10, LOOP
	    MOV R2, #0
	    MOV R6, #3
	    INC R3
	    CJNE R3, #10, LOOP
	    MOV R3, #0
	    LJMP LOOP


DISP1:
        MOV P1, #01111111B
	    MOV A, R0
	    MOVC A, @A+DPTR
	    MOV P0, A
        LCALL DELAY
	    CJNE R7, #1, NEXT11
	    LCALL DISP2
NEXT11:	CJNE R7, #2, NEXT12
	    LCALL DISP2
NEXT12:	CJNE R7, #3, NEXT13
	    LCALL DISP2
NEXT13:	RET


DISP2:
        MOV P1, #10111111B
	    MOV A, R1
	    MOVC A, @A+DPTR
	    MOV P0, A
	    CJNE R7, #2, NEXT21
	    LCALL DISP3
NEXT21:	CJNE R7, #3, NEXT22
	    LCALL DISP3
NEXT22:	RET

DISP3:
        MOV P1, #11011111B
	    MOV A, R2
	    MOVC A, @A+DPTR
	    MOV P0, A
        LCALL DELAY
	    CJNE R7, #3, NEXT31
	    LCALL DISP4
NEXT31:	RET


DISP4:
        MOV P1, #11101111B
	    MOV A, R3
	    MOVC A, @A+DPTR
	    MOV P0, A
        LCALL DELAY
NEXT4:	RET


DELAY:
        MOV R5, #12
LOOP1:	MOV B, #248
        DJNZ B, $
	    DJNZ R5, LOOP1
        RET

TAB: DB	0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

到了这里,关于单片机实验——键盘与显示实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机实验四 矩阵键盘实验

    1.熟悉实验软件和硬件,进行正确的接线; 2.按下按键,1602显示其键值; 1.Keil uVision4 2.PZISP自动下载软件 3.HC6800S开发板 按键: 矩阵键盘 4X4 的矩阵键盘,一共是16 个按键。我们照习惯称横为“行”,“竖”为列。那么5、6、7、8 我们称之为“行线”,则1、2、3、4 称为“列线

    2024年02月02日
    浏览(35)
  • 51单片机“独立按键”控制静态数码管———显示数字0-9

    (1).独立按键模块电路图可以清楚的看到,所有从引脚JP1出来的电流都会接到GND,且当所有按键按下时被执行链接GND。所以,当JP1引脚各端口----识别----到“电流为低电平为0时”,说明按键被按下,否则为高电平按键没有被按下。 ( 2).按键的原理其是需要我们单片机有检

    2024年02月11日
    浏览(48)
  • 51单片机矩阵键盘——数码管显示

    当我们熟悉了数码管的位选与段选,并了解的矩阵键盘的扫描之后就可以编写程序了。 按下矩阵键盘S1并松开,数码管第一位(LED8)显示0;按下矩阵键盘S2并松开,数码管第一位显示1;...按下矩阵键盘S16并松开,数码管第一位显示F; 矩阵键盘扫描(输入扫描)     原理:

    2024年02月11日
    浏览(55)
  • 51单片机矩阵键盘——LCD1602显示

    本次的实验需要用到LCD1602液晶屏,需要用到LCD1602.c 与LCD1602.h文件链接: https://download.csdn.net/download/YLG_lin/86404949 使用矩阵键盘随意按下按键,LCD1602第二行前两位就会显示对应按键按下的数字。 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式 采用

    2023年04月09日
    浏览(44)
  • 山东大学单片机原理与应用实验 3.4 矩阵键盘扫描实验

    目录   一、实验题目 二、实验要求 三、实验过程及结果记录 1. 在Proteus 环境下建立图1所示原理图,并将其保存为keyscan_self.DSN 文件。 2. 编写控制源程序,将其保存为keyscan_self.asm 或keyscan_self.c。 3. 将源程序添加到U1 中,并构造(build)该程序,将asm文件编译成hex文件,将可

    2024年02月05日
    浏览(52)
  • C51单片机的电子时钟(数码管显示+独立按键模块修改及暂停时间)

    IMG_1120 通过查看这三个原理图我们可以得知控制K1、K2、K3及K4是通过P31、P30、P32及P33来实现的,控制8个数码管是P22、P23及P24来实现, 控制发光二极管则由P00-P07来实现。 代码分为三部分分别为main.c、key.h、key.c scankey()函数的主要代码,通过软件入手提高系统的可靠性,防止外

    2024年02月05日
    浏览(54)
  • 51单片机实现矩阵键盘密码锁,数码管显示

    板子是普中的,按键按下10为0,按键11为确认,按键12为取消。 输入密码正确时LED D8闪烁(正确密码为5555) #include REGX52.H//头文件定义 unsigned char nixie[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管显示的段码 unsigned int Code = 0;//用于保存密码的变量 void Tim_int(void);//定时器初

    2024年02月02日
    浏览(51)
  • 利用单片机余晖依次显示,同时显示 数码管的数字

    #include reg51.h //Êý×é±íʾ Êý×Ö0-9   16½øÖÆ unsigned char arr[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; sbit q1 = P2^0; sbit q2 = P2^1; sbit q3 = P2^2; sbit q4 = P2^3; //ʱ¼ä³¤ ÒÀ´ÎÏÔʾ1234 void delay() {     int i;     for(i = 1; i 20000; i++){} } //ʱ¼ä¶Ì ͬʱÏÔʾ1234 void delay_

    2024年04月26日
    浏览(38)
  • 51单片机 | LCD1602 液晶显示实验

      在前面章节,我们已经学习过几种显示装置,例如静态数码管、动态数码管、 8*8LED 点阵、串口通信。使用它们可以直观显示一些字符数据,但是它们也有各种局限性,比如显示字符数据太少,硬件设计复杂、代码编写难度大等。这一章就来介绍一种非常简单且常用的显

    2023年04月11日
    浏览(64)
  • 51单片机 | LED点阵实验 | 点亮一个点 | 显示数字 | 显示图像

      开发板上使用了 64 个红色 LED 按照行列排布组成的 8*8 LED 点阵。下面介绍 LED 点阵的使用。    LED 点阵 是由发光二极管排列组成的显示器件,在我们日常生活的电器中随处可见,被广泛应用于汽车报站器,广告屏等。如下所示:   通常应用较多的是 8*8 点阵,然后使

    2023年04月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包