精华内容
下载资源
问答
  • 在屏幕显示一张时间表,操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息
  • 程序很简单,就是把当前时间显示在桌面上,相当于是一个桌面的背景
  • 基于51单片机OLED上手动修改时间显示 前两篇文章讲述了0.96OLED上如何静态显示文字,数字,图片以及动态显示时间。 如下图所示: 今天主要讲如何正常模式下手动校正时钟的时间。首先要理清一下思路,整个...

    基于51单片机在OLED屏上手动修改时间显示

    前两篇文章讲述了在0.96OLED屏上如何静态显示文字,数字,图片以及动态显示时间。

    如下图所示:
    在这里插入图片描述
    今天主要讲如何在正常模式下手动校正时钟的时间。首先要理清一下思路,整个功能将工作在正常模式(normal mode)和设置模式(setting mode)。本次实验将用到3个触摸按键,分别是K1,K2,K3。我们把整个时间00:00:00中的变量0,从左往右分别对应A5,A6,A7,A8,A9,A10.
    按键K1对应A9, K2对应A8,K3对应A7,同时按K1+K3对应A6,然后通过同时按K1+K2进入设置模式(setting mode),通过同时按K3+K2返回到正常模式(normal mode)。
    整体架构,依旧采用switch架构书写。
    如下图为主函数while循环大逻辑:在这里插入图片描述
    程序默认上电为正常模式,mode_flag 2代表正常模式,mode_flag 1代表校正模式。此处按

    展开全文
  • 一个android主屏幕小部件,显示utc时区中当天的经过时间(以秒为单位)。 具有透明背景的1x2主屏幕小部件 时间格式为00.00 使用android alarmmanager安排显示更新 android studio文件 仅每60秒更新一次
  • 设计题目: 系统日期时间显示在屏幕右上角 班 级: *************** 学 号: ******* 姓 名: ***** 指导教师: ****** 

     

    文本框: 汇编语言课程设计jijijijijijijiji计         

     

     

     

     

     

     

     

     

     

     

    设计题目: 系统日期时间显示在屏幕右上角

        级:   ***************  

        号:    *******            

        名:     *****            

    指导教师:    ******              

     

                                  

    00九年十二月25

     

     

    前言

    走进了21世纪,汇编在还很多的场合下都是很重要的一门编程语言,也是高级语言和低级语言的介段的一门语言,汇编语言是最接近于机器语言的编程语言。如果说机器语言是计算机操作的本质,那么汇编语言就是最接近本质的语言 。汇编语言操作直接面向硬件,所以,我们在使用汇编语言的时候,我们能够感知计算机的运行过程和原理,从而能够对计算 机硬件和应用程序之间的联系和交互形成一个清晰的认识。这也是最能够锻炼编程者编程思维逻辑的,只有这样,学习者才能 形成一个软、硬兼备的编程知识体系,这是任何高级语言都无法给予的!相对于繁复的高级语言,汇编语言指令集合更简约, 指令操作更直接,从汇编开始学习更符合循序渐进的学习原理, 汇编的操作由于跟硬件紧密相关,所以,很多硬件设施的嵌入式编程使用的都是使用的汇编语言,因为汇编语言更直接 ,更有效率!我们现在的数码产品很多,而这些数码产品赖以生存的芯片,主板等,都包含了嵌入式程序,而这些程序中,汇编语言的使用是相当重要的。

    本次课程设计为显示日期时间,我们必须要了解汇编的一些循环指令,因为日期时间是以不断变化,而且到那种场合下都能显示正确的日期和时间我们不能把虚伪的造出来,在真正确编程的基础下才能显示我们所要的日期时间,还有把显示的系统日期和时间要显示在屏幕的右上角,这又是要用到汇编来设计屏幕的坐标,我们必须把屏幕上横列坐标的正确显示位置要抓好,这样才能把我们的实验更精确,更进一步的提高编程能力和培养我们的思维能力。

    目录

     

    一、实验目的 …………………………………………………3

     

    二、程序设计思路及框图………………………………3

     

    三、程序调试……………………………………………5

     

    四、运行过程及截图……………………………………8

     

    五、源程序清单…………………………………………9

     

    六、心得体会……………………………………………12

     

    七、参考资料……………………………………………14

     

     

     

     

     

     

     

    一、实验目的

    1、熟练掌握汇编语言程序的设计、调试方法。

    2、掌握系统日期时间的调用。

    3、对于了解计算机系统的组成结构与工作原理、体验底层编程的经验、更深入地学习程序设计方法很有意义,会更加通透地理解例如数据结构、计算机组成原理、操作系统等课程中所学的知识。

    4、也为学习计算机接口、单片机及其他计算机控制类课程打下坚实的基础。

    5、以面向应用、深入浅出、重视实践、方便教学为。宗旨,顺应人们实践-理论-实践的认识规律。

     

    二、设计思路及框图

    1、初始化显存的偏移地址;

    2、取当前系统日期:功能号为2AH,返回值送入CX,DX寄存器中;年存入CX,月存入DH,日存入DL

    3、取当前系统时间:功能号为2CH,返回值送入CX,DX寄存器中;时存入CX, 分存入DH,秒存入DL

    4、每读取完年 月  日 时 分 秒 的每一个字段时就调用一个相应的标号;

    5、若日期,时间调用完后,要退出系统,则只能按Qq退出。

     

    6、按Qq退出系统,按其他键不起用。

    7、框图(流程图)如下:

     

     

    初始化显存偏移地址

    读取日期

    读取时间

    显示相关符号

    Al=10hQ键的扫描码)

    返回系统

    开始

     

     

     

     

     

     

     

     

     


     

     

    结束

     

     

     

     

     

     

     

     


    三、程序调试

    1运行环境(软、硬件环境)                            

    硬件:8086以上CPU,内存256M以上。

    软件:WINDOWS操作系统,MASMLINK汇编编译链接软件。

    WIN-MASM

    2、调试中遇到的问题

    1)、汇编程序要求标点符号为半角方式,否则编译失败。可在输入:,时切换到半角方式,或者在大写状态输入标点符号,这是容易犯而不易发现的错误。

    2)、要求用字寄存器的指令使用了字节寄存器.PUSH,POP指令的操作数寄存器必须是字寄存器。

    3)、存器重复调用

    如主程序中设定了R45,表示主程序循环执行5次,而其中的一个延时子程序又用到R4,使R4的值发生紊乱,造成程序无法正常执行。月日和时间显示格式不对

    4)、无退出提示。          

              Qq退出

    3、问题解决方案

    (AX)/(BL)之后,即执行DIV BL,其商送(AL),余数送(AH),如6月存放与(DH)中,除以(BL)之后,商为0,余数为6。分别存放在ALAH之中,加上3030H之后,AX中的内容为3630H。由于定义TIMEDIS为字节型,故存放时30H存放在低字节,36H存放在高位字节,显示时,‘0’字符在第一个显示,‘6’字符在第二个显示,才会显示‘06’。所以,SI指针应指向第一个‘0’,即第一个字节空间。同理,显示日和时间的时候也需要注意出现这种情况。

    由连接程序产生的执行文件可在DOS操作系统中运行。DOS操作系统在装入执行文件之前,先在存储器用户存储区的第一个地址开始,建立一个256字节的程序段前缀PSP,然后将执行文件调入内存。
       序段前缀PSP可看作执行文件的一个特殊段,当执行文件程序装入后,段寄存器DS的值为该特殊段的段地址,根据偏移量其各个地址的内容如下:
          00H--01H  装INT 20H的软中断指令。
          02H--03H  内存容量,以16字节为单位。
     04H--08H  FAR JMP,转移到DOS的功能调用入口。
          09H--0CH  程序结束地址。
          0DH--10H  CTRLBREAK退出地址。
          11H--14H  错误出口地址。
          5CH--6BH  文件控制块1--FCB1
          6CH--7BH  文件控制块2--FCB2
          80H--FFH  命令行缓冲区和磁盘数据传输区
      当执行文件装入内存后,执行文件放在PSP段之后。此时按源程序的次序分别为堆栈段、数据段、附加段及代码段等逻辑段。我们可通过DEBUG程序将此执行文件调入并进行观察。在DEBUG程序调入P21.EXE文件之后,检查各寄存器的内容如下:
      AX=0000 BX=0000 CX=024B DX=0000 SP=0200 BP=0000 SI=0000 DI=0000
      DS=1150 ES=1150 SS=1160 CS=1182 IP=0000 NV UP EI PL NZ NA PO NC
      从上述寄存器的内容中可以发现:
      1、源程序中对程序的起始地址进行了定位,CS寄存器指向该地址所在的段,此时IP指向该单元。如源程序中未对程序的起始地址进行定位,起始地址定于程序段前缀的首地址,即CS寄存器指向程序段前缀PSPIP寄存器指向0000H
      2、时SS寄存器指向堆栈段,SP为该堆栈的长度,即指向堆栈段的末地址加1的单元。
      3SES寄存器指向程序段前缀PSP
      从程序段前缀PSP的第一个单元开始的100H个单元为程序段前缀PSP,其后为堆栈段、数据段、附加段及代码段。DSESPSP)定位于1150HSS定位于1160H,由于在例1-12中堆栈段长度为200H,实际数据段和附加段的地址为1180H1181H,而代码段的地址为1182 H     

    指令ASSUME将段寄存器的名字与逻辑段的名字联系起来,即告诉汇编程序在以下的程序中,程序段、堆栈段、数据段、附加段寄存器应和哪一个逻辑段相联系。但ASSUME指令仅仅将段寄存器的名字与逻辑段的名字联系起来,并未将这些逻辑段的实际地址赋予段寄存器。因此,在ASSUME指令之后,必须用MOV指令对段寄存器进行赋值。

      在程序中设置堆栈段是为了在使用PUSHPOPCALL指令以及中断程序时,能对堆栈进行操作。如程序中因无需堆栈操作而不设堆栈段时,或漏设堆段时,宏汇编程序就不知道堆栈段使用哪个逻辑段,由于这种情况不影响机器码的产生,在汇编时不产生错误,而在连接时将发出警告。如果我们对具有此类错误的执行文件不予理采而加以运行时,并不一定会影响程序的正常运行。  此时如程序不进行堆栈操作,则对程序的运行不会产生影响。但如程序需进行堆栈操作,由于SP指针减1,变为FFFFH,而SS段地址指向等于数据段的段地址,因此堆栈操作极有可能在数据段或代码段进行。为安全起见,堆栈段的设置是必须的。

    四、运行过程截图

    1)双击WIN-MASM,打开WIN-MASM

    2)在界面中输入调试成功的代码,如下图所示,

    3)在程序调试完成后先保存(Ctrl+S,然后编译连接并运行(F9)可以把程序运行如果编译没有任何错误

                                   图(1

    4)、编译成成功后回出现用户提示信息(恭喜,

     

     

    图(2

     

    五、源程序清单

    源程序代码为:

    assume   cs:code  

      code   segment  

      start:  

            mov   bx,0b800h  

            mov   es,bx  

            mov   di,160*0+1*124       ;初始化显存的偏移地址,  

            push   di                                             ;此处为第12行第30列。  

            mov   al,10       ;为了有规律可循,初始al的值为10(十进制)  

        rdate:     ;读取日期  

             dec   al                                                  

             cmp   al,7  

             jb   rtime         ;当读完‘日’后,就跳至标号rtime  

             call   show  

             add   di,6  

             jmp   short   rdate  

          rtime:     ;读取时间  

             sub   al,2                                  

             cmp   al,0feh          ;为无符号数相减  

             je   sign           ;当读完‘秒’后,就跳至标号sign  

             call   show  

             add   di,6  

             jmp   short   rtime  

          sign:       ;显示相关符号  

            pop   di  

            add   di,4           ;定位第一个'/'符号在显存的偏移地址  

            mov   byte   ptr   es:[di],'/'  

            add   di,6  

            mov   byte   ptr   es:[di],'/'  

            add   di,12            ;跳过日期与时间之间的空格  

            mov   byte   ptr   es:[di],':'  

            add   di,6  

            mov   byte   ptr   es:[di],':'  

          in   al,60h  

      cmp   al,10h ;Q键的扫描码  

      je   quit                   ;按下qQ则退出  

      jmp   start               ;否则继续读取时间(循环读取达到动态显示的作用)  

         quit:  mov   ax,4c00h  

              int   21h  

      show:   push   ax  

              push   cx  

              ;push   bx  

              out   70h,al  

              in   al,71h  

                 mov   ah,al  

              mov   cl,4  

              shr   ah,cl  

             and   al,00001111b  

             add   ah,30h  

             add   al,30h  

            ;mov   bx,0b800h  

             ;mov   es,bx  

              mov   byte   ptr   es:[di],ah  

              mov   byte   ptr   es:[di+2],al  

             ;pop   bx  

              pop   cx  

              pop   ax  

          ret  

          code   ends  

      end   start

     

    六、设计总结

    本次课程设计为《系统日期时间显示在屏幕右上角》,我们要了解汇编的基本用法及功能,而且在我们必须要了解汇编的一些循环指令,因为日期时间是以不断变化,只能用循环语句来控制,而且到哪种场合下运行程序都能显示正确的日期和时间我们不能把虚伪的造出来,还有在把显示的系统日期和时间要显示在屏幕的右上角,我们还要把调坐标和显示日期和时间时日期与时间的之间的符号等
    经过这次课程设计,我收获的很多,以前我不知道对有些指令和代码的用法和表示的含义,但这次我在课程设计中我们互相讨论,互相学习,坚持不懈的自己动手试几次,就能把一些自己想得到目标也并不是很难,但我对汇编的一些指令和代码的疑问也更多了现在一般都用在硬件层,对硬件直接控制,其他的都用高级的语言编写了,因为汇编写程序容易出错,而且太过于复杂和代码有点长了,虽然引入了其他的有类似其它语言的一些代码,但是相比高级语言可以解决的问题都不用汇编了。好像现在的计算机已经增加了对还是的语言支持了,就是开集的引导程序已经不用汇编了。 

         在本次课程设计中我收获的很多,我不管以后要不要学汇编的编程,但我对汇编的兴趣和学汇编的好处是常常存在的,我就把以后的生或中像本次实验那样学到的东西要灵活地用得到,在各种不同的场合中用我们所学过的不同的知识来解决不同的问题

     

     

     

     

     

     

     

     

     

    六、参考文献

       1、汇编语言程序设计(第二版)

    2、雷印胜 秦然 贾萍编著的《汇编语言程序设计》第二版

    大连理工大学出版社。

    3、潘弘喆 曲维新编著的《汇编语言程序设计习题解答》

       大连理工大学出版社。

    4、参考网站:

    http://hi.baidu.com/xun1573/blog/category/%BB%E3%B1%E0%D3%EF%D1%D4

     

     

    展开全文
  • 我们上面显示的时候可以用时间变量,也是就是16进制变量直接调取出来显示,这样直接就能调用 这个程序是怎么显示上电运行时间,和将总运行时间保存到数据的写法。 因为数据擦写寿命限制,理论寿命10万次, ...

    DGUS1的屏有一个上电运行时间的寄存器(特别提醒这个是DGUS1K600+的屏,不是迪文T5),占用4个字节空间,这个寄存器里面的时间是BCB编码,
    我们屏上面显示的时候可以用时间变量,也是就是16进制变量直接调取出来显示,这样直接就能调用
    这个程序是怎么显示上电运行时间,和将总运行时间保存到数据的写法。
    因为数据擦写寿命限制,理论寿命10万次,
    经过本人几次测试某段地址的擦写情况,实际寿命只有5-8万次,运气不好可能3万次左右,
    我们这里采用变化了1个小时就进行时间的保存,如果要细写也可以写15分钟30分钟保存一次。
    os示例如下:
    CALL 运行时间
    CALL 累计时间
    END
    ;============================================================
    运行时间:
    MOVDR 0CH,R10,4 ;主页面显示运行时间
    LDWR R0,0020H
    MOVXR R11,0,2
    ONE-H-MARK:
    CJNE R11,R245,R><245;判断小时是否变化,变化了说明经过一个小时了,
    GOTO GND
    R><245:
    MOV R11,R245,1
    LDWR R4,0018H ;
    LDWR R6,0030H ;
    LDWR R0,0060H ;数据库清零测5A A5 0C 80 56 5A 50 0018 0030 1000 0001
    MOVXL 2,1
    MOVXR R32,1,1 ;字
    LDWR R22,1
    ADD R20,R30,R40 ;加法将时间加一个小时,
    MOVXR R46,0,1
    MOVXL 3,1 ;保存到数据库
    GND:
    RET
    ;============================================================
    累计时间:
    LDWR R4,0018H ;
    LDWR R6,0030H ;
    LDWR R0,0004H ;从数据库读出来
    MOVXL 2,1
    RET

    ;============================================================

    展开全文
  • OLED 屏幕显示时间,温度。时间可以校准,屏幕通过取模,可以显示汉字。
  • 用于PPT放映、暴风语音放映全屏时显示时间,双击可关闭退出,鼠标可拖动到任何位置
  • 迪文的DGUS-如何在屏幕显示时间

    千次阅读 2015-12-21 22:49:05
    迪文的DGUS-如何在屏幕显示时间

    迪文的DGUS屏幕支持2中时钟的显示:表盘式样,文本显示式样

    一般采用文本类型的显示较为多一些,使用有2点注意事项:

    1. 必须指定字库,也就是要拷贝字库到SD卡的根目录下的DWIN_SET里面去,不然不能显示实时时钟值。
    2. 根据使用的字库,设置文本时钟所采用的字库的方向下标。具体参考迪文DGUS屏v4.9开发手册。
    展开全文
  • windows屏保不能设置等待时间以及从屏保恢复时是否显示登录屏幕 本文目的:解决以下问题 电脑因安全策略:强制电脑载法禁用屏保、并且从屏保恢复时,必需输入密码登录 屏保到工作状态,还要输入密码,浪费了...
  • [汇编] 在屏幕中央显示时钟

    千次阅读 2015-05-18 23:10:27
    很简单的一段代码。可能对于刚学习的同学有...ch=时,cl=分,dh=秒 用来获取系统的时间,并且分别放在注释中的寄存器中  int 21h ;获取时间 (2)   用来设置光标的位置 setshow proc ;设置光标位置 mov dh,12
  • Android studio一行代码自己APP界面手机屏幕上全屏显示*** AndroidManifest.xml文件里面添加 <applocation android:theme="@style/AppTheme.NoActionBar">
  • 这些浪费的时间里,那些支离破碎的文字与音频、那些及时的奖励与快感并没有帮我们构建和照亮大脑中灰暗的区域。反而是那些极易形成短回路反馈一直被激活,一直被强化,我们不自觉得停了这个舒适区,连时间都厌弃...
  • 这样就方便操作,在主显示屏幕上打开各种软件,很方便,不过呢,时间长了,发现一个问题,我搜索输入法,输入汉字的时候,拼音提示字那个笔记本自带的小屏幕上面,而不是我打字的大屏幕光标右下角,这个就体验...
  • 设置电脑屏保全屏显示时间,酷!

    千次阅读 2021-04-08 14:45:26
    下载后双击运行,会来到屏保设置界面,默认选好了 Fliqlo ,它就是全屏时间显示程序。 点击设置,可以设置是否用 24H 制、显示时间的大小。 设置等待时间,点击确定后生效。 ...
  • 在屏幕显示杨辉三角形

    千次阅读 2020-03-29 16:59:51
    前面: 题解是对具体题目的编程实现,不会具体讲解C语言语法。请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~)。每一题的题解之前,会列出本题涉及到的语法知识供...在屏幕上...
  • import os import time def main(): str = '大哥大哥欢迎你,欢迎你来我这里 ' while True: print(str) time.sleep(0.2) str = str[1:] + str[0:1] # for Windows use os.system('...
  • ESP8266+OLED实现天气预报+温度显示+NTP时间同步5带中文显示字幕 之前原来4内容显示的基础上,有添加了1字幕内容显示,可能已经达到上限了,因为下方的页眉数量显示的点达到饱和了。 第一屏幕: 第二屏幕...
  • 汇编语言:动态显示时间

    千次阅读 2018-07-27 22:09:23
    写出程序,在屏幕的左上角能动态显示时间,如程序后附图 运行结果示例: assume cs:code code segment start: mov al,8 out 70h,al in al,71h mov ah,al mov cl,4 shr ah,cl and al,00001111b add ah.....
  • ubuntu18.04 设置状态栏时间显示

    千次阅读 2020-04-13 17:53:49
    Ubuntu16是有时间显示的,18默认没有,但是这很不人性啊,于是打算解决这个问题 解决方法: Ubuntu商店中搜索tweaks 然后点击安装Gnome tweaks 选择top bar里面可以显示时间 ...
  • 前段时间通过Ventoy(U盘系统启动盘引导制作工具)给笔记本装上了DEEPIN/UOS操作系统,体验起来是丝丝顺滑,除了软件有小部分不适应或者难crack之外,其它甚好。但是对于投屏,是真的不友好,这里就需要一些命令行来...
  • 使用了两种方法实现:  public class first_homework { public static void main(String args[]) { System.out.println("*"); System.out.println("**"); System.out.println...
  • 服务器开机屏幕显示问题

    千次阅读 2019-08-18 21:31:33
    谁知道关机后再开机,屏幕没有显示了。 1) 一开始以为是GPU的问题,切换了两个GPU,两个卡槽,不同PCIE卡槽插一个,4次,加一次两个GPU都插上,没有用。 2) 微信上咨询戴尔客服,看下开机电源键,发现是闪烁...
  • android app规定时间内用户没有操作跳出屏保,屏保activity可以展示广告。 博客介绍文章地址:http://blog.csdn.net/u010072711/article/details/50096181
  • //指定的DIV始终显示在屏幕正中间   function setDivCenter(divName){   var top = ($(window).height() - $(divName).height())/2;   var left = ($(window).width() - $(divName).width())/2;   
  • stm32控制ESP8266获取指定城市天气并且led屏幕显示 使用: ATK_ESP8266文件夹下面的wifista.c第14行修改wifi的ssid号和密码。编译烧录后即可使用。 ATK_ESP8266文件夹下面的weather.c中修改85行修改天气...
  • layUI-layDate时间控件点击闪烁及不能正常显示问题

    千次阅读 多人点赞 2019-08-06 15:00:58
    layUI进行开发中时,列表页面中弹出层得业务需求,弹层中layUI-layDate时间控件点击闪烁或显示位置不合理等问题一直困扰着我们,博主在处理闪烁问题时无意翻看其他博底部评论时发现了解决方法,特此记录;
  • } /** * 三十分钟无操作后屏幕进入休眠 * * @param isChecked */ private void setScreenSaverEnable(boolean isChecked) { mBackend.setEnabled(isChecked);//设置开关的状态 if (isChecked) { Settings.System....
  • 先把程序粘上,主要想解决的就是怎样让时间刷新后覆盖上一秒钟显示在dos窗口的时间。 解决思路:通过查找dos命令,发现"cls+回车“这个命令会清除dos窗口的屏幕内容,所谓数据库攻击,浏览器攻击,就是输入程序...
  • 之前使用别人安装好的Navicat Windows版本时,都是直接执行命令后就可在屏幕下方看到执行结果。今日使用Mac装完navicat运行了一条sql命令,“结果”和"sql编辑器"同一行,需要来回切换,实在不方便同时看命令和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 442,886
精华内容 177,154
关键字:

如何让时间显示在屏幕