老师让做一个单片机的定时器设计,题目给的很水,于是我只做了一个时钟程序,具体代码如下
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP SET_SEC
MAIN:
MOV SP,#70H
MOV TMOD,#01H
MOV TL0,#0x58
MOV TH0,#0x9E
MOV A,#40
SETB ET0
SETB EA
SETB TR0
SJMP $
SET_SEC:
MOV TL0,#0x58
MOV TH0,#0x9E
DEC A
JNZ BESET
LJMP SEC
SEGTAB:
DB 0C0H ;0
DB 0F9H ;"1"
DB 0A4H ;"2"
DB 0B0H ;"3"
DB 99H ;"4"
DB 92H ;"5"
DB 82h ;"6"
DB 0F8H ;"7"
DB 80H ;"8"
DB 90H ;"9"
SEC:
INC R0
MOV 40H,R0
MOV A,#40
CJNE R0,#0AH,EXIT;SECOND LASTER
MOV R0,#0
INC R1
MOV 41H,R1
CJNE R1,#6,EXIT;SECONT FIRET
MOV R1,#0
INC R2
MOV 42H,R2
CJNE R2,#10,EXIT
MOV R2,0
INC R3
MOV 43H,R3
CJNE R3,#6,EXIT
MOV R3,#0
INC R4
MOV 44H,R4
CJNE R4,#3,EXIT
MOV R4,#0
INC R5
MOV 45H,R5
CJNE R5,#2,EXIT
MOV R5,#0
SJMP EXIT
BESET:
MOV 41H,R1
MOV 40H,R0
MOV R1,#40H
MOV R7,#020H
MOV 30H,A
MOV R0,#02FH
SJMP SHOWTIME
SHOWTIME:
MOV A,#000H
MOV P2,A
MOV A,@R1
MOV DPTR,#SEGTAB
MOVC A,@A+DPTR
MOV P0,A
MOV A,R7
MOV P2,A
INC R1
MOV R7,A
RR A
MOV R7,A
DJNZ R0,$
JNB ACC.7,SHOWTIME
MOV A,#000H
MOV P2,A
MOV A,30H
MOV R0,40H
MOV R1,41H
SJMP EXIT
EXIT:
RETI
END
这个就是运行之后的结果:从左到右六位,依次表示 时分秒。走一天的话误差应该不是特别的大。上面的TL0,TH0 的参数调一下,应该一天差一秒之内的误差能够做到
关键字:汇编语言 单片机 时钟设计
引用地址:
基于汇编语言单片机的时钟设计
推荐阅读最新更新时间:2024-11-04 16:28
基于单片机的两点间温度控制
以温度作为被控制量的反馈控制系统。在化工、石油、冶金等生产过程的物理过程和化学反应中,温度往往是一个很重要的量,需要准确地加以控制。除了这些部门之外,温度控制系统还广泛应用于其他领域,是用途很广的一类工业控制系统。温度控制系统常用来保持温度恒定或者使温度按照某种规定的程序变化。 严格说,多数温度控制系统中被控对象在进行热交换时的温度变化过程,既是一个时间过程,也是沿空间的一个传播过程,需要用偏微分方程来描述各点温度变化的规律。因此温度控制系统本质上是一个分布参数系统。分布参数系统的分析和设计理论还很不成熟,而且往往过于复杂而难于在工程实际问题中应用。解决的途径有二:一是把温度控制系统作为时滞系统来考虑。时滞较大时采用时滞
[单片机]
实时时钟电路MC146818A与单片机的接口及编程
实时时钟电路是控制系统中常用的功能模块。MC146818A是专用于各类微处理器与单片机系统的时钟集成电路。它带有50字节的低功耗静态RAM,可进行时、分、秒和年、月、日及星期的计数,并有自动的月结束识别和闰年处理功能,具有12/24小时和AM/PM的12小时计时功能,既可与 Motorola系列的单片机接口 ,又可与Intel的微处理器接口。本文详细讨论MC146818A与89C51单片机的接口。
1.MC146818A的结构
MC146818A有双列直插式DIP和PLCC两种封装,图1为双列直插式封装引脚图。下面详细介绍各引脚功能。 VDD:电源线,可以为3DC~6V; VSS:地线,信号、电源地;
[单片机]
飞思卡尔推出Kinetis系列基于ARM Cortex-M4的90纳米32位MCU
飞思卡尔半导体日前推出Kinetis系列,这是基于新ARM Cortex-M4处理器的90纳米32位 MCU MCU
MCU Microcontroller(微控制器)又可简称MCU 或μ C,也有人称为单芯片微控制器(Single Chip Microcontroller),将ROM、RAM、 CPU、I/O 集合在同一个芯片中,为不同的应用场合做不同组合控制.微控制器在经过这几年不断地研究,发展,历经4 位,8 位, 到现在的16 位及32 位,甚至64 位.经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。 ,开创了其 微控制器 微控制器
一
[工业控制]
单片机编程技巧一
1. C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。 C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。 对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言 单片机编程 编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇
[单片机]
关于STM32单片机移植FATFS
使用单片机的朋友都知道单片机一般提供的ROM和RAM都比较小。就算是STM32这样的提供256KB flash和64KB RAM的。一旦你需要存一些数据量比较大的文件的时候还是不够用的。一般可以通过外扩SD和nand flash来实现大容量存储。相对来说SD卡的使用更加方便一些。使用过nand flash的也许会知道nand flash有坏块,使用的时候需要做坏块管理,还有就是需要做损耗均衡。不然nand flash很容易就会坏掉。 下面说说SD卡。SD卡驱动有两种方式。一种是SPI驱动方式。还有一种是SDIO驱动方式。SPI驱动时只需要4更线:CLK、SD_CS、MISO、MOSI。SDIO则需要CLK、CMD、Data0、Da
[单片机]
32位MCU产品逐渐脱颖而出:走红2008
微控制器(MCU)产品应用领域日趋广阔,从通信基础设施,到手机、家电、消费电子、汽车电子、医疗电子、工业控制等诸多领域,都能看到MCU的身影。而在全球竞争日益激烈的MCU市场中,32位MCU产品逐渐脱颖而出,成为各家厂商争夺的热门市场。 据市调机构WSTS发布的报告显示,全球32位MCU市场在过去5年中增长了一倍左右,2007年销售额比前一年增长13.6%,达到创纪录的31.9亿美元,出货量也达到7.2亿片之多。以趋势来看,32位MCU已在去年成功超越了16位产品,并逐渐缩小与8位MCU间的差距。 这一趋势令众多MCU厂商开始向32位MCU市场转移力量,应用于各个领域的32位MCU产品也在2008年推陈出新,使32
[工业控制]
搞定单片机多字节串口接收
工作了一年多,写了不少单片机串口程序。感觉串口多字节接收部分的逻辑相对于配置寄存器跟串口来说,是有点难度的 寄存器配置基本上都是死的,串口多字节跟一字节只是多了一个循环。 串口接收程序是基于串口中断的,单片机的串口每次接收到一字节数据产生一次中断,然后再读取某个寄存器就可以得到串口接收的数据了。然而在实际应用当中,基本上不会有单字节接收的情况。一般都是基于一定串口通信协议的多字节通信。在422或者485通信中,还可能是一个主机(一般是计算机)带多个从机(相应的有单片机的板卡)。这就要求我们的单片机能够在连续接收到的串口数据序列中识别出符合自己板卡对应的通信协议,来进行控制操作,不符合则不进行任何操作。简而言之就是,
[单片机]
域控软件安全隔离关键技术剖析:MCU域 VS SOC域
安全隔离的需求 功能安全开发中,软件阶段由软件V模型左边的软件安全需求SSR开始。SSR是从技术安全需求TSR中提取出软件的功能安全需求,大多数情况下具有不同的ASIL等级。 图1功能安全软件开发V模型 随后,软件安全需求会被分配到软件架构中的软件组件中。不同ASIL等级的软件安全需求被分配到软件组件过后,带来了级联失效的问题。若放任不同ASIL等级软件组件在一个系统中运行,可能会存在低ASIL等级软件组件失效从而引发高ASIL等级软件组件失效的风险。 ISO26262对软件组件之间的交互进行了分析并提出了免于干扰(Freedom from Interference)的需求,安全隔离则旨在隔离软件系统中安全相关与安全无关
[嵌入式]