历史上的今天
返回首页

历史上的今天

今天是:2024年08月23日(星期五)

正在发生

2021年08月23日 | 飞思卡尔单片机PIT汇编编程(一)

2021-08-23 来源:eefocus

飞思卡尔单片机(XS128系列)单片机汇编编程(一)


本人就是一个菜鸟,从菜鸟学习汇编编程;汇编也没想象中的复杂和难懂,细细品味还是挺有意思的。就当刷着玩吧,就学起了汇编(这一直是我的一大心病),慢慢学吧,就当了却了我的一个愿望。作为我的第一个汇编程序,仔细缕缕编写的过程。好了,废话不说了,开始正题。


手头上的资料:飞思卡尔单片机,调试器以及手册(欧了,就这三样),对了,下一个飞思卡尔单片机的汇编指令集哦。


开始如下工作:


首先熟悉中断机制,确定我们要在哪部分编程,以及编程之后起到的效果,然后才能更好地编程。具体机制参考下图:

编程部分:参考手册找到PIT部分,根据以往C语言编程的经历,定时器主要通过配置相应的寄存器来实现,为此我们配置所需的寄存器,里面的寄存器太多了(吧啦吧啦),


其实,每个单片机都会有相应模块的功能框图。如下图所示:

在该部分,手册里面给了一个例程:


上图中的标号1处之所以箭头用黄色,是因为这是错的(我也被坑的很惨)。在给的附件程序中会有应该如何修改(最后);其实,仔细想想也就知道了,中断向量表处于只读存储区中,一句MOVW怎么能将它就该呢(哎)。


上图中的标号3处的MOVB  #$01,PITTF这句必须要有,是为了将相应的标志清空的(此处和51有区别,此处纠结了很长时间)。


下面是我的程序附件:


;**************************************************************

;* This stationery serves as the framework for a              *

;* user application. For a more comprehensive program that    *

;* demonstrates the more advanced functionality of this       *

;* processor, please see the demonstration applications       *

;* located in the examples subdirectory of the                *

;* Freescale CodeWarrior for the HC12 Program directory       *

;**************************************************************

; Include derivative-specific definitions

            INCLUDE 'derivative.inc'


; export symbols

            XDEF Entry, _Startup, main

            ; we use export 'Entry' as symbol. This allows us to

            ; reference 'Entry' either in the linker .prm file

            ; or from C/C++ later on


            XREF __SEG_END_SSTACK      ; symbol defined by the linker for the end of the stack





; variable/data section

MY_EXTENDED_RAM: SECTION

; Insert here your data definition.


; code section

MyCode:     SECTION

main:

_Startup:

Entry:

            LDS  #__SEG_END_SSTACK     ; initialize the stack pointer  pu

            SEI

            ;**********关看门狗

            CLR COPCTL

            ;*********定时器0寄存器设置

            MOVB #$ff,DDRB

            MOVB #$55,PORTB

           BCLR  PITCFLMT,#128 

           BSET  PITCE,#1

           BCLR  PITMUX,#1

           LDAB  #244

           STAB  PITMTLD0

           LDD   #65535

           STD   PITLD0

           BSET  PITCFLMT,#128

           BSET  PITTF,#1  

           BSET  PITINTE,#1

             CLRX

           

            CLI                    ; enable interrupts



MainLoop: BRA   MainLoop



CH0_ISR:    

            COM PORTB

            BSET PITTF ,#1

            RTI


            ORG $FF7A

            FDB CH0_ISR

推荐阅读

史海拾趣

Device Engineering Incorporated公司的发展小趣事

在电子行业快速发展的背景下,DEI公司意识到只有不断创新才能保持竞争力。因此,公司加大了对研发的投入,积极引进新技术和人才。通过不断的努力,DEI公司成功推出了一系列具有自主知识产权的创新产品,涵盖了多个领域。这些产品不仅提升了公司的竞争力,也为公司赢得了更多的市场份额。

科通(COMTEK)公司的发展小趣事

随着公司业务的不断拓展,科通技术开始与国际知名品牌展开合作。通过与Xilinx、Intel、SanDisk等全球领先的芯片原厂建立紧密的合作关系,科通技术获得了这些品牌的产品线授权,并为其在中国市场的拓展提供了有力的支持。这些合作不仅提升了科通技术的品牌影响力,也为其带来了更多的市场机会。

Cynergy 3公司的发展小趣事

Cynergy 3一直将客户需求放在首位,致力于为客户提供定制化的产品解决方案。公司拥有一支经验丰富的工程师团队,他们与客户紧密合作,深入了解客户的实际需求。在此基础上,Cynergy 3不断推出符合客户需求的新产品和新技术。这种以客户需求为导向的产品创新策略使得Cynergy 3能够不断满足市场的变化需求,保持其在行业中的领先地位。

aconno公司的发展小趣事

在追求经济效益的同时,aconno公司也积极履行社会责任,致力于实现可持续发展。公司注重环保和节能,采用环保材料和工艺,减少生产过程中的污染排放。此外,aconno还积极参与社会公益事业,为弱势群体提供帮助和支持。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

以上便是关于aconno公司在电子行业中发展起来的5个相关故事。这些故事展示了aconno在创新、品质、市场、人才和社会责任等方面的努力和成就,为公司的长远发展奠定了坚实的基础。

Henkel公司的发展小趣事

aconno深知人才是企业发展的核心动力。因此,公司一直致力于打造一支高素质、专业化的团队。通过招聘优秀人才、提供专业培训、建立激励机制等一系列措施,aconno成功吸引和留住了一批业内精英。这些人才为公司的技术创新和市场拓展提供了有力支持,成为aconno发展壮大的重要保障。

Arduino公司的发展小趣事

随着Arduino电路板的成功推出,Arduino平台在2005年发布了第一款主板——Arduino NG。这款主板采用了Atmel公司的AVR单片机作为核心处理器,并结合了简单易用的开发环境。这一创新使得普通人也能够轻松地进行单片机编程和硬件开发,大大降低了电子制作的门槛。Arduino NG的发布标志着Arduino平台开始受到开发者和爱好者的广泛关注。

问答坊 | AI 解惑

用CMOS技术实现高速模数转换器

 通信用接收器的发展趋势是必需在信号刚一进入接收器信号通道时就进行取样,并配备有精确的测试仪,而要达到这个目标就要依赖超高速模拟数字转换器来实现。美国国家半导体首推的 ADC081000 芯片是一款模拟输入带宽高达 1.8 GHz 的 8 位 1GSPS ...…

查看全部问答>

请求师傅指点----无线应答系统设计

题目要求:货物存放在一个仓库里,由于货物产品规格不容易分辨,所以查找不方便,现在需设计一个电子自动应答器,当在仓库门口发射某个规格的产品需求信号以后,仓库里边相关的货物上携带的应答器便发出声音应答 请各位高手师傅们多多指教啊 ...…

查看全部问答>

我这有便宜的2410板子卖

板层数:4,价格:80块.反正我没时间做,…

查看全部问答>

跪求“单总线高精度温度采集系统”程序,要求能仿真

要求 1.由DS18B20实现温度采集 2.由12864LCD屏构成温度显示系统 设计要求 启动DS18B20进行12位高精度环境温度采集 利用12864LCD屏构成温度显示系统 具有温度上限声光报警 可以通过键盘设定报警上限值 希望各位大大帮忙!!!急用啊等着交作 ...…

查看全部问答>

几百一个的三极管老烧,跪求高手指点

我用功放管3886驱动一对三极管对管做扩流,然后三极管的输出再驱动变压器来做最终输出的,但是PNP的三极管老实被击穿,也加了一些保护还是没用,这个三极管几百一个,现在搞的都不赶试,跪求高手帮忙分析下,。…

查看全部问答>

控制接触器线圈电压 选380还是220?

在控制回路里,接触器(包括继电器)线圈电压 选380还是220呢?上网搜索了一番,貌似没有一个权威的答案.本人拙见:控制回路选220V,用电笔查故障很方便,不像380v回路两头都有电,用电笔检测很麻烦。控制回路选380v,有利于缺相保护,毕竟有三分之 ...…

查看全部问答>

请问硬件维护工程师如何评定初级、中级和高级

rt。请问有相关的认证考试吗? 软件方面有国家软考,硬件方面的有吗?…

查看全部问答>

有没有能关闭DHCP的API?

有没有能关闭DHCP的API?或者有没有什么程序来实现,因为我最近在做个项目,希望能通过调用程序来实现修改IP,SUBMASK,GATEWAY地址,不希望通过修改WINCE内核的方法来实现目的,修改注册表到是可以修改,但是问题是保存不住信息,因为在板子上的时候,是把WI ...…

查看全部问答>

这些 怎么定义 state_machine rcvdat retval

这些  怎么定义   state_machine   rcvdat  retval      是串口通信解析的          if(state_machine == 0)     // 协 ...…

查看全部问答>

大家推荐个PCB打样厂家?

最近准备打样,以前一直在一家大,这次图纸都发过去了,钱已付了,说做不了,找了一大堆借口,说我的图怎么怎么,而我以前在她那里做的一直都是这样,以前没听说什么不行,莫名其妙,希望大家推荐一下比较好的,而已比较诚信的那种。…

查看全部问答>