欢迎来到天天文库
浏览记录
ID:34453479
大小:740.32 KB
页数:4页
时间:2019-03-06
《单片机汇编语言的模块化编程方法举例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、制作天地HANDSONPROJECTS编者按:单片机的汇编语言是学习单片机的基础,而汇编语言的最大不足就是程序的结构不清晰和易读性差,而模块化编程能在一定程序上弥补这一缺陷。作者结合其教学经验,提出的汇编语言的模块化编程的理念,值得从事单片机编程的技术员借鉴,特别是对初学单片机的人,更是有必要。作者李冰涛徐州技师学院单片机汇编语言的模块化编程方法举例单片机的工作机理就是按照顺序一条一条地当运用这种思想方法去实现它。执行人们给它排列好的指令,完成某项任务。所然而子程序化、模块化的编程方法,并不是谓程序,就是一些指令的有序排列。单片机执行把已有的功能子程序
2、简单地堆放在一起就可以实这些指令后,就会完成人们想让它做的某些事情,现的,而是要把这些子程序进行有机的整合才行。而这些事情,我们往往称之为“任务”。那么,在整合的过程中会遇到哪些问题?要注意我们让单片机单独地完成某项简单的任务并哪些问题?下面我们以一个交通灯项目为例,运不困难。比如我们可以操作单片机的I/O口,让用子程序化、模块化的编程方法进行编程,并把连接在其上的发光二极管随意的亮与灭,或者让编程的过程做一个完整的讲述,希望读者对这种连接在其上的数码管随意的显示数字,甚或可以编程方法有一个具体的认识。让连接在其上的LED显示屏显示出汉字来,我们还可以
3、连接上按键作为输入设备来控制输出设一、交通灯项目的任务分析备。然而,一个单片机应用系统——我们常把它称之为“项目”的,往往是由几个简单的任务一假设一个十字路口为东西南北走向,各设置起来完成的。红、黄、绿3种信号灯,南北方向由P1.0~P1.2在进行项目教学时我们发现,同学们也知道口控制,其中P1.0口为红灯,P1.1口为黄灯,这个项目需要哪几个任务来完成,他们也知道每P1.2口为绿灯。东西方向由P1.3~P1.5口控制,个任务应该怎样实现,然而如何把这些任务弄到其中P1.3口为红灯,P1.4口为黄灯,P1.5口为一起去完成项目所要求的设计目标,成了一个
4、教绿灯。学难点。当然方法可以多种多样,聪明的学生可本交通灯控制系统由三项任务组成:以想出一些奇特的方法实现,但那些毕竟不是正1.交通灯正常情况途,不是一般的方法。有没有一种有章可循的方①南北绿灯,东西红灯,20s。法呢?有,这就是子程序化、模块化的编程方法。②南北黄灯,东西红灯,3s。它的思路是:我们把一个项目目标分解成若③东西绿灯,南北红灯,10s。干个子功能模块,每个子功能模块对应一个子任④东西黄灯,南北红灯,3s。然后循环。务,每项子任务用单片机的子程序实现。最后,我们在主程序里只要调用这些子程序,就可以完2.数码管倒计时显示成项目所要求的目标。
5、注意,这是一种非常重要交通灯亮时,数码管显示亮灯时间。数码管的思想方法,复杂的单片机应用项目,我们都应采用动态显示,P0口连接数码管的段码,P2口17制作天地HANDSONPROJECTS连接数码管的位码。四种亮灯情况顺序完成,然后就是循环。2.数码管倒计时显示3.交通灯紧急情况一般情况下,通行时间不超过100s,所以当有救护车、消防车等特殊车辆通过时,用用两位数码管显示计时时间足够了。单独写数码按键控制两个方向均亮红灯,同时蜂鸣器发出报管倒计时程序也不困难,下面是一个倒计时60s警声。等救护车和消防车通过后,交通灯再恢复的程序思路:正常情况。按键接P
6、3.2口,蜂鸣器接P3.3口。60秒倒计时,循环计数。用定时器中断产交通灯外围器件与单片机I/O口的连接如图生秒信号。1所示。这个程序大体由三部分组成,如图3所示。VCC1kΩ×8889S5189S5111kkΩ×88a东西红东西红P1.0P1.0P0.0P0.0b东西东西黄黄P1.1P1.1P0.1P0.1c东东西绿西绿P1.2P1.2P0.2P0.2d南南北红北红P1.3P1.3P0.3P0.3e南北南北黄黄P1.4P1.4P0.4P0.4f南北南北绿绿P1.5P1.5P0.5P0.5gP0.6P0.6P1.6P1.6dpP0.7P0.7P1.7P
7、1.7图3KKP3.2P3.210k10kΩGNDGNDGNDGNDP2.1P2.1V1V1V2V2首先定义一个秒存SPKSPK10k10kΩ储单元:MIAOEQU10k10kΩP2.0P2.0V3V330H。程序开始时给它P3.3P3.3VCCVCC赋初值:MOVMIAO,VCCVCC#60。然后,我们在1s定时中断子程序中加入图1交通灯外围器件与单片机I/O口的连接电路图一个减1指令,再进行判断,语句如下:DECMIAO二、三项任务的独立编程MOVR1,MIAOCJNER1,#00,FANHUI;与0比较,到0再从60循环1.交通灯正常情况MOVM
8、IAO,#60这个任务最简单,通行时间可以通过调用延FANHUI:RETI时程序实现。程序流程
此文档下载收益归作者所有