ARM跑马灯汇编程序详细解析

ARM跑马灯汇编程序详细解析
ARM跑马灯汇编程序详细解析

ARM跑马灯汇编程序详细解析

TQ2440开发板,主芯片是S3C2440,它一共有130个I/O端口,分为9组:GPA、GPB...GPJ。

对于这几组GPIO引脚,它们的寄存器是相似的:

GPxCON:用于选择引脚功能

GPxDAT:用于读、写引脚数据

GPxUP:用于确定是否使用内部上拉电阻,其中无GPAUP寄存器!

注意:PORT A与PORT B~PORT J 在功能选择方面有所不同。

GPxCON (x:B~J):00-----表示输入

01-----表示输出

10-----表示特殊功能

11-----保留不用

GPXUP:某位为1时,相应的引脚无内部上拉电阻;为0时,相应的引脚使用内部上拉电阻。

我所使用的开发板LED部分的连接图:

其中:nLED_1------------GPB5

nLED_2------------GPB6

nLED_3------------GPB7

nLED_4------------GPB8通过查S3C2440的手册,我们得到:

Register Address

GPBCON 0x56000010

GPBDAT 0x56000014

GPBUP 0x56000018

我们设置GPB5,GPB6,GPB7,GPB8为输出模式,则:

GPBCON应该设置为:

0b0000,0000,0000,0001,0101,0100,0000,0000=0x15400。

GPBDAT 寄存器对应位为1 灯灭,为0灯亮!(由电路图可知)

GPBUP5--GPBUP8设置为禁止上拉电阻,即:

GPBUP设置为:0b0011,1110,0000=0x1E0。

到此,我们为程序所作的准备工作已经结束了,下面是程序代码:

GPBCON EQU 0x56000010

GPBDAT EQU 0x56000014

GPBUP EQU 0x56000018

EXPORT LEDTEST

AREA LEDTESTASM ,CODE,READONLY ;该指令定义了一个代码段,段名为LEDTEST,属性只读

ENTRY ;程序入口标示符

LEDTEST

ldr r0,=GPBCON ;设置GPB5--GPB8 为output

ldr r1,[r0]

bic r1,r1,#0xFFF00

orr r1,r1,#0x15400

str r1,[r0]

ldr r0,=GPBUP ;设置GPB5--GPB8禁止上拉电阻

ldr r1,[r0]

orr r1,#0x1E0

str r1,[r0]

looptest

ldr r3,[r2]

bic r3,r3,#0xFFF

orr r3,r3,#0x51F

str r3,[r2] ;全部点亮

ldr r0,=0x2ffff

bl delay

ldr r3,[r2]

bic r3,r3,#0xFFF

str r3,[r2] ;全部灭

ldr r0,=0x2ffff

bl delay

ldr r3,[r2]

bic r3,r3,#0xFFF

orr r3,r3,#0x51F

str r3,[r2] ;全部点亮

ldr r0,=0x2ffff

bl delay

ldr r3,[r2]

bic r3,r3,#0xFFF

orr r3,r3,#0x7DF

str r3,[r2] ;点亮与GPB5所连接的LED

bl delay

ldr r3,[r2]

bic r3,r3,#0xFFF

orr r3,r3,#0x7BF

str r3,[r2] ;点亮与GPB6相连的LED ldr r0,=0x2ffff

bl delay

ldr r3,[r2]

bic r3,r3,#0xFFF

orr r3,r3,#0x77F

str r3,[r2] ;点亮和GPB7相连的LED ldr r0,=0x2ffff

bl delay

bic r3,r3,#0xFFF

orr r3,r3,#0x5FF

str r3,[r2] ;点亮和GPB8相连的LED ldr r0,=0x2ffff

bl delay

b looptest

delay

sub r0,r0,#1 cmp r0,#0x0

bne delay

mov pc,lr ;返回END

嵌入式系统实验报告

实验报告 课程名称:嵌入式系统 学院:信息工程 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师: 开课时间:学年第一学期

实验名称:IO接口(跑马灯) 实验时间:11.16 实验成绩: 一、实验目的 1.掌握 STM32F4 基本IO口的使用。 2.使用STM32F4 IO口的推挽输出功能,利用GPIO_Set函数来设置完成对 IO 口的配置。 3.控制STM32F4的IO口输出,实现控制ALIENTEK 探索者STM32F4开发板上的两个LED实现一个类似跑马灯的效果。 二、实验原理 本次实验的关键在于如何控制STM32F4的IO口输出。IO主要由:MODER、OTYPER、OSPEEDR、PUPDR、ODR、IDR、AFRH和AFRL等8个寄存器的控制,并且本次实验主要用到IO口的推挽输出功能,利用GPIO_Set函数来设置,即可完成对IO口的配置。所以可以通过了开发板上的两个LED灯来实现一个类似跑马灯的效果。 三、实验资源 实验器材: 探索者STM32F4开发板 硬件资源: 1.DS0(连接在PF9) 2.DS1(连接在PF10) 四、实验内容及步骤 1.硬件设计 2.软件设计 (1)新建TEST工程,在该工程文件夹下面新建一个 HARDWARE文件夹,用来存储以后与硬件相关的代码。然后在 HARDWARE 文件夹下新建一个LED文件夹,用来存放与LED相关的代码。 (2)打开USER文件夹下的test.uvproj工程,新建一个文件,然后保存在 LED 文件夹下面,保存为 led.c,在led.c中输入相应的代码。

(3)采用 GPIO_Set 函数实现IO配置。LED_Init 调用 GPIO_Set 函数完成对 PF9 和 PF10 ALIENTEK 探索者 STM32F407 开发板教程 119 STM32F4 开发指南(寄存器版) 的模式配置,控制 LED0 和 LED1 输出 1(LED 灭),使两个 LED 的初始化。 (4)新建一个led.h文件,保存在 LED 文件夹下,在led.h中输入相应的代码。 3.下载验证 使用 flymcu 下载(也可以通过JLINK等仿真器下载),如图 1.2所示: 图1.2 运行结果如图1.3所示:

PLC控制跑马灯系统的设计

河南工业职业技术学院 2012—2013学年 第一学期 毕业设计 课题名称:PLC控制跑马灯系统的设计设计时间:20012.9.25—20012.10.21 系部:机电工程系 班级:机电1003 姓名:杨杰 指导教师:朱文琦

目录 前言 (3) 第1章概论 (5) 1.1跑马灯系统的意义、现状及要求 (5) 1.1.2 技术现状 (5) 1.2彩灯的发展 (6) 1.2.1 彩灯的最初来源 (6) 1.2.2 彩灯给城市带来的五彩缤纷 (6) 1.3PLC的发展前景及趋势 (7) 1.4PLC的定义及特点 (11) 第2章硬件电路的设计 (13) 2.1跑马灯电路的设计 (13) 2.2开关电路的设计 (14) 第3章软件设计 (15) 3.1软件设计的方案 (11) 3.2PLC结构 (14) 3.3工作原理 (15) 3.4编程语言 (16) 3.5S7-200的指令系统 (18) 3.6跑马灯的工作要求 (19) 3.7梯形图 (20) 结束语 (26) 致谢 (27)

参考文献 (28) 附图 (29) PLC控制跑马灯系统的设计 [摘要]本次毕业设计是应用S7-200 PLC跑马灯设计的硬件电路,并利用OB1的梯形图控制程序设计。通过控制S7-200 PLC的定时继电器的功能 来实现各彩灯按一定的规律点亮和熄灭。接通延迟定时器SD的特点(如 果RLO有正跳沿,则接通延迟定时器启动指令,以设定的时间值启动 指令的定时器)。这种控制电路结构简单,可靠性高,应用性强;软 件程序适应范围广,对各彩灯按一定的规律点亮和熄灭的控制,只需 要改变相应的定时器的时间接通即可。 [关键词] PLC 彩灯梯形图;

此程序是用单片机的p1口接八个led灯作跑马灯试验

拆字程序 Org 0000h Mov A , 2000H Add A ,#F0H MOV 2001H ,A MOV A ,2000H ADD A , #0FH MOV 2002H , A MOV A , 2001H ADD A , 2002H END 拆分BCD 码 ? *************************************************************************** ;此程序是用单片机的p1口接八个led灯作跑马灯试验,八个led依次亮了又熄灭,形成漂亮;的跑马灯。本人已经试验成功。 ;单片机教程网https://www.360docs.net/doc/c78944348.html, 原创

;该8路单片机跑马灯程序代码简单,电路也容易搭建,只需把led接在p1口上就可以了,希望大家能试验成功顺利的完成跑马灯报告 ;*************************************************************************** org 0000h loop0:cjne r0 ,#01h,rel,loop0 ;判断开关打开情况 ajmp start;跳转到程序开始 org 0030h;定义起始汇编地址 start: mov a,#0ffh ; clr c ; mov r2,#08h ;循环八次。 loop: rlc a ;带进位左移。 mov p1,a ;此时led灯开始有反映了。 call delay ;延时 djnz r2,loop ;循环(djnz条件判断) mov r2,#07h ; loop1: rrc a ;带进位右移 mov p1,a ;此时led灯开始有反映了。 call delay ; djnz r2,loop1 ;反复循环 jmp start ;回到程序的开头 delay: mov r3,#20 ;延时子程序 d1: mov r4,#20 d2: mov r5,#248 djnz r5,$ djnz r4,d2 ```````````````````````````````````````````````---------3路单片机跑马灯程序---------------------------------------

嵌入式实训总结

实训总结 班级:卓越1301姓名:刘* 短短三周的很快就过去了,在中软国际嵌入式方向班的第二次实习马上就要结束了。虽然只有短短的三周,但我学会了很多知识,学习了在Linux-Fedora14操作系统 的环境下完成基于Smart210SDK开发板和DS18B20的温度采集及显示系统还有按键控制LED灯并实现开机和关机的相关功能,这些知识让我们对嵌入式有了更进一步的了解与熟悉。 作为一名大学生,纵观现在的就业形势,国家高校的扩招,世界金融危机的 横扫,大学生应该有一种居安思危的紧迫感,特别是对已经度过几年大学的我来说,毕业并不是一个遥远的词汇。宝剑锋从磨砺出,梅花香自苦寒来,缺少了平时的锻炼,没有厚积当然不能有薄发。首先我得有思想上的紧迫感,在学校学习的都是理论知识,实践经验则是少之又少。综合能力强的人才才是这个社会需要的,成长成为社会需要的人才是我的个人奋斗目标。有了强大的精神动力,有了坚如磐石的毅力,相信成功并不遥远。 首先,通过这些天的实训我学到了很多知识。这一阶段在Linux-Fedora14操作系统的环境使用Smart210SDK开发板做一些程序设计并烧写到SD卡中通过 Smart210SDK开发板来实现程序的执行,通过对Smart210SDK开发板的一步一步的 熟悉和了解我们开展了嵌入式的基本的程序烧写、调试、执行这些相关的锻炼过程。 最后我们做了两个项目: 第一个是基于Smart210SDK开发板的按键控制LED灯并且实现开机和关机的 相关功能与实现---项目功能是:实现长按开发板上的K1键实现开机或关机,在开机状态下能够实现K1短按控制LED1的点亮与熄灭、K2短按控制LED2的点亮与熄灭、K3短按控制LED3的点亮与熄灭、K4短按控制LED4的点亮与熄灭。项目涉及 的相关技术是:相关寄存器的调用,延时子函数的调用,LED灯的初始化,实现按 键的长按与短按的控制的C语言程序的设计与实现。 第二个是基于Smart210SDK开发板和DS18B20的测量并在minicom上显示的 功能与实现---项目功能:首先实现DS18B20的初始化,然后在DS18B20中写数据、数据转换、读数据、进行数据间的格式转换,最后在minicom上显示出所读出的温度,并且实现当温度高于32°C的时候LED灯闪烁,当温度高于35°C的时候蜂鸣

用单片机编写几种跑马灯

用单片机编写几种跑马灯 任务: 1、在电路板上实现跑马灯,一次1匹 2、在电路板上实现跑马灯,一次2匹 3、在电路板上实现4个二极管的同时闪烁 源程序1: /***********************************信息**************************************** **作者:刘海涛 **版本:初始版V1.0 **描叙:用电路板实现跑马灯。 **日期:2010年7月25日 *******************************************************************************/ /**********************************头文件*************************************** **头文件"reg52.h" *******************************************************************************/ /**********************************函数名*************************************** **函数名:延时函数delay() **输入:无 **输入:无 **宏定义:无 *******************************************************************************/ /**********************************宏定义*************************************** 宏定义:#define XBYTE ((unsigned char *)0x20000L) *******************************************************************************/ #include"reg52.h" delay(unsigned int dat) // 延时函数定义 { unsigned int i,j; for(i=0;i

跑马灯实训报告

摘要:AT89C51是美国ATMEL公司生产的AT89系列单片机中的一种,该 器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 关键字:AT89C51 兼容高效微控制器 目录 一、实训目的 (2) 二、电路设计与生成 (2) 1、设计跑马灯 (2) 2、生成PCB板 (2) 三、程序设计 (3) 1、程序设计 (3) 2、运行结果 (4) 四、实训总结 (4)

一、实训目的 了解AT89C51管脚的基本功能,学会运用Protel 99 se设计电路,并生成PCB 板,印刷线路板。使用KEIL C51设计单片机程序,生成HEX文件,将程序下载到单片机内并运行。从而达到初步掌握简单单片机小程序的设计,制作,调试的目的。 二、电路设计与生成 1、设计跑马灯 利用单片机最小系统,使P1口八个发光二极管做跑马灯和流水灯显示。设计的电路图如下: 2、生成PCB板 (1)保存电路图,单击菜单栏DESIGN项,选择其中的更新PCB; (2)在弹出的对话框中,单击preview change; (3)校对弹出界面中的相关元件的信息,再单击Execute,生成元器件;(4)最后对生成的元器件进行排版,生成如下图所示:

三、程序设计 1、程序设计 #include"reg51.h" unsigned char tab[]={1,2,4,8,0x10,0x20,0x40,0x80,0x80,0x40,0x20, 0x10,8,4,2,1}; void delay(unsigned char n) { unsigned int d; unsigned char i; for(i=0;i

嵌入式实验心得体会

嵌入式实验心得体会 嵌入式实验心得体会是计算机专业应该具备的常用知识,以下这篇范文整理个人对嵌入式系统的认识,和进行操作之后的个人体会,对操作的疑难的反思。下面是这篇嵌入式实验心得体会 嵌入式实验心得体会 学期开始,我们开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,等到学期结束开始做嵌入式课程设计时,真是茫然无从下手,自,从拿到设计主题后,我就从像热锅像上的蚂蚁,一个字“急”。最后实在没有办“法,逼着自己去学法 习,查资料,总算对嵌入式有了资浅层理解。浅 嵌入式系统本本身是一个相对模糊的定义义,一个手持的mp3和一个一pc104的微型工业业控制计算机都可以认为是嵌入是式系统。总体来说,嵌入式系统是“用于控,制,监视或者辅制 助操作机器器和设备的装备”。一个典典型的桌面linux系统统包括3个主要的软件层---linux-内核、cc库和应用程序代码。内核核是唯一可以完全控制硬件的层,内核驱动程序代件表应用程表序与硬件之间进行行会话。内核之上是c 库,,负责把posixapii转换为内核可以识别的形形式,然后调用内核,从应应用程序向内核传递参数。应用程序依靠驱动内核。来完成特定的任务。来在了解了基础知识之后,我了开始进行上机操作,当然开,,其中遇到很多的难题,很多东西都是第一次接触很,又没有别,人在旁边指导操作,完全凭借自己去摸操索索练习。其中的困难可想而知。然而坚持就是胜利而,,牙一咬眼一闭坚持做下去去,而通过本次实验,我感觉收获还是蛮多的。可感能我对于嵌入能式的知识学习的还是不太多,但是这习之外的东西收获颇丰。之

跑马灯实验报告

电子系统综合设计报告 学号 201009120229 姓名李文海年级专业 2010级电子信息工程(二) 指导 教师刘怀强 学院理学院 走马灯实验论文--《嵌入式系统技术》 1、实验目的 1、学会dp-51pro实验仪监控程序下载、动态调试等联机调试功能的使用; 2、理解和学会单片机并口的作为通用i/o的使用; 3、理解和学会单片机外部中断的使用; 4、了解单片机定时器/计数器的应用。 2、实验设备 z pc 机、arm 仿真器、2440 实验箱、串口线。 3、实验内容 z 熟悉 arm 开发环境的建立。 z 使用 arm 汇编和 c 语言设置 gpio 口的相应寄存器。 z 编写跑马灯程序。 5、实验原理 走马灯实验是一个硬件实验,因此要求使用dp-51pro 单片机综合仿真实验仪进行硬件 仿真,首先要求先进行软件仿真,排除软件语法错误,保证关键程序段的正确。然后连接仿 真仪,下载监控程序,进行主机与实验箱联机仿真。 为了使单独编译的 c 语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规 定一定的规则。atpcs ,即 arm , thumb 过程调用标准(arm/thumb procedure call standard),是 arm 程序和 thumb 程序中子程序调用的基本规则,它规定了一些子程序间调 用的基本规则,如子程序调用过程中的寄存器的使用规则,堆栈的使用规则,参数的传递规 则等。 下面结合实际介绍几种 atpcs 规则,如果读者想了解更多的规则,可以查看相关的书 籍。 1.基本 atpcs 基本 atpcs 规定了在子程序调用时的一些基本规则,包括下面 3 方面的内容: (1)各寄存器的使用规则及其相应的名称。 (2)数据栈的使用规则。 (3)参数传递的规则。 相对于其它类型的 atpcs,满足基本 atpcs 的程序的执行速度更快,所占用的内存更少。 但是它不能提供以下的支持: arm 程序和 thumb 程序相互调用,数据以及代码的位置无关 的支持,子程序的可重入性,数据栈检查的支持。 而派生的其他几种特定的 atpcs 就是在基本 atpcs 的基础上再添加其他的规则而形成 的。其目的就是提供上述的功能。 2.寄存器的使用规则 寄存器的使用必须满足下面的规则: (1) 子程序间通过寄存器 r0~r3 来传递参数。这时,寄存器 r0~r3 可以记作 a0~a3。 被调用的子程序在返回前无需恢复寄存器 r0~r3 的内容。 (2) 在子程序中,使用寄存器 r4~rll 来保存局部变量。这时,寄存器 r4~r11 可以记 作 v1~v8。如果在子程序中使用到了寄存器 v1~v8 中的某些寄存器,子程序进入时必须保

单片机跑马灯实训报告

目录 一、了解跑马灯............................. .... . (2) 二、AT89C52 单片机 ........................... .3 三、识别与检测元器件 (4) 四、电路设计...................................... (4) 1. 单片机最小应用系统 (4) 2. 复位电路图..................................... .5 3. 彩灯原理图 (6) 4. 彩灯仿真图 (7) 5. 彩灯布局图 (8) 五、焊接电路 (8) 六、程序流程 (9) 七、跑马灯程序 (10) 八、下载调试程序 (10) 九、实训总结 (11)

十、微控制器应用技术实训评价表 (12)

、了解跑马灯 在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面带地下,凡是能想象到的地方几乎都有使用单片机的需求。现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而没有实现的项目,因此,单片机的应用大有想象和拓展空间。单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保真安全等。但是单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于单片机的应用正从根本上改变者传统的控制系统设计思想和设计方法。从前必须有模拟电路或数字电路实现的大部分功能,现在 已能使用单片机通过软件方法来实现了。这种以软件取代硬件并提高系统系能的控制系统是一种全新的概念,是对传统控制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。 在众多的微控技术实验中,老师为我们选择了用单片机制作8个灯的跑马机这一较为基本的科目,单片机使用我们熟悉的AT89C52型单片机,采用覆铜板手工焊制的方法来制作电路板,使用Proteus进行仿真。 本设计选择采用AT89C51单片机为核心。AT89C51是一个低电压、高性能CMOS8 位单片机带有K字节的可反复擦写的程序存储器。和128字节的存取数据存储器RAM这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单位,有较强的功能的AT89C51单片机能够被应用到控制领域中AT89C51提供以下的功能标准:4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O 口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内振荡器和时钟电路。另外,AT89C51还可以进行OHZ的静态逻辑操作,并支持两种软件的节电模式。闲散方式 停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存随机存取数据存储器中的内容,但振荡器停止工作 并禁止其它所有部件的工作直到下一个复位。

嵌入式实验报告心得

嵌入式实验报告心得 篇一:嵌入式系统原理实验总结报告 嵌入式系统原理实验总结报告 车辆座椅控制系统实验 XX/5/23 嵌入式系统原理实验总结报告 一、技术性总结报告 (一)题目:车辆座椅控制系统实验(二)项目概述: 1.为了实现车辆座椅控制的自动化与智能化。 2.方便用户通过智能手机与车载传感器之间的联动。 3.使车辆作为当今物联网中重要的一个节点发挥作用。 4.通过车辆座椅控制系统实验实现对嵌入式系统原理课程的熟练掌握与对嵌入式系统原理知识的深化记忆。 5. 加强本组学生对嵌入式系统原理的更深层次的理解与运用。 (三)技术方案及原理 本次试验分为软件、硬件两个部分。 1.软件部分。 A.智能手机部分,包括通过智能手机对座椅的控制部分、手机所携带的身份信息部分。 本部分软件使用Java编写,其程序部分为:主程序:package ;

import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ;import ; import ; import ; public class MainActivity extends ActionBarActivity { private Button Up = null; private Button Left = null; private Button Dowm = null; private Button Right = null; private Socket socket = null; private static final String HOST = "";private static final int PORT = 10007; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(; initControl();} private void initControl() {

单片机跑马灯汇编程序与仿真

51单片机P1口跑马灯的汇编语言编程和protues仿真 ;跑马灯程序1 ;用软件技术器实现1秒间隔LED循环点亮 ;三层循环计数实现1秒延时,250*250*8=0.5秒 ;由于软件延时需要计算代码执行的时间,所以近似1秒 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV P1,#0FFH MOV A,#0FEH LOOP: MOV P1,A LCALL TIMEER RL A SJMP LOOP TIMEER: MOV R5,#08H LOOP1: MOV R6,#0FAH LOOP2: MOV R7,#0FAH LOOP3: DJNZ R7,LOOP3 DJNZ R6,LOOP2 DJNZ R5,LOOP1 RET END ;跑马灯程序2 ;定时/计数器1控制1秒间隔LED循环点亮 ORG 0000H LJMP MAIN ORG 001BH LJMP T1_INT ORG 0100H MAIN: MOV R0,#20 ;软计数器 MOV TMOD,#10H ;定时器1方式1 MOV P1,#0FFH ;熄灭所有LED MOV A,#0FEH ;点亮第一个LED MOV TH1,#3CH MOV TL1,#0B0H ;赋初值 SETB ET1 SETB EA ;开中断 SETB TR1 ;启动定时器 SJMP $ ;等待中断 T1_INT: MOV TH1,#3CH

MOV TL1,#0B0H ;赋初值 DEC R0 ;软计数 CJNE R0,#00H,LP RL A ;灯移位 MOV P1,A ;灯改变 MOV R0,#20 ;软计数器初值 LP: RETI ;跑马灯程序3 ;定时/计数器1控制1秒间隔LED循环点亮 ;外部中断1控制按键按下跑马灯启动或者停止 ORG 0000H LJMP MAIN ORG 0013H LJMP INT1_INT ;外部中断服务程序,按键触发 ORG 001BH LJMP T1_INT ;定时器中断,1秒中断一次 ORG 0100H MAIN: MOV R0,#20 ;软计数器计数次数 MOV TMOD,#10H ;定时器1方式1 MOV P1,#0FFH ;熄灭所有LED MOV A,#0FEH ;点亮第一个LED MOV TH1,#3CH MOV TL1,#0B0H ;定时器赋初值 SETB I T1 ;外中断1采用下降沿触发 SETB E X1 ;允许外部中断1 SETB ET1 ;允许定时器中断 SETB EA ;开中断 SETB TR1 ;启动定时器1 SJMP $ ;等待中断 T1_INT: MOV TH1,#3CH MOV TL1,#0B0H ;定时器赋初值 DEC R0 ;软计数 CJNE R0,#00H,LP ;判断计数次数是否达到,是则跳转 RL A ;灯移位 MOV P1,A ;灯改变 MOV R0,#20 ;软计数器初值 LP: RETI INT1_INT: MOV A,#0FFH ;按键按下,LED熄灭 MOV P1,A ;灯改变 CPL TR1 ;定时器改变开关状态 MOV A,#0FEH ;点亮第一个LED RETI ;中断返回

单片机课程设计报告-跑马灯

单片机课程设计报告-跑马灯

武汉纺织大学 单 片 机 课 程 设 计 报 告 设计课题:跑马灯 指导教师:刘丰

姓名:颜珊曹坤 班级:应电092 一、设计任务 利用单片机制作让LED灯依次闪烁时间间隔为0.5S二次后时间加快为 0.2S并循环闪烁的跑马灯. 二、设计要求 (1)采用单片机STC89C52来控制,下载器由芯片MAX232来对程序的下载。 (2)LED灯的闪烁间隔时间为0.5S-0.25S-1S,每循环两圈更改闪烁速度。 (3)供电采用USB方口的方式。 三、方案设计与论证 跑马灯电路的组成方框图为: 四,主要元件介绍 (1)单片机STC89C52引脚介绍 stc89c52的内核和AT51系列单片机一样,故引脚也相同: 1~8:I/OP1口(P1.0~P1.7); 9:复位脚(RST/Vpd);

10~17:I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚; 18、19:晶振(18=XTAL2,19=XTAL1);20:地(Vss); 21~28:I/OP2口(P2.0~P2.7); 29:-PSEN; 30:ALE/-PROG; 31:-EA/Vpp 32~39:I/OP0口(P0.7~P0.0); 40:+5V电源。 注:引脚功能前加“-”,说明其是低电平有效。如P3.2=-INT0。 (2)MAX232介绍 MAX232芯片是美信公司专门为电脑的RS-2 32标准串口设计的接口电路,使用+5v单电源供电。

嵌入式实训报告

嵌入式实训报告 班级:电子信息1301 :钟海明 学号:3138702144 同组人:胡晓海 指导老师:韦龙新 目录: 一、实训目的---------------------3

二、实训要求---------------------3 三、实训容---------------------3 1、嵌入式系统开发环境的搭建----------3 2、嵌入式程序的编译与下载------------3 3、uboot的移植----------------------4 4、linux核的移植------------------4 5、NFS网络文件挂载------------------5 6、FTP和TFTP的运用-----------------6 7、试验箱镜像的烧写-----------------7 8、串口实验和TCP实验同时传送AD值--7 四、实训心得体会及体会----------8 一、实训目的: 学习和掌握ARM嵌入式Linux系统的体系结构和基本指令,熟悉Linux下的设计流程和编程流程,能够实现一定功能的嵌入式的设计,为之前的理论课程实践验证和为今后的学习及将来从事的技术工作打下一定的基础。

二、实训要求: 1、嵌入式系统开发环境的搭建 2、嵌入式程序的编译与下载 3、uboot的移植 4、linux核的移植 5、NFS网络文件挂载 6、FTP和TFTP的运用 7、试验箱镜像的烧写 8、串口实验和TCP实验同时传送AD值 三、实训容: 1、嵌入式系统开发环境的搭建: 首先在笔记本电脑下安装虚拟机VMware,安装成功后拷贝安装好的Fedora到本机上在虚拟机上找到路径打开。打开虚拟机进入Fedora选择用户为root密码为123456。交叉环境的安装,下载好arm-linux-gcc的编译包,解压安装到/opt下。 2、嵌入式程序的编译与下载: 用vi编辑一个(.C)的文件,保存退出后使用(arm-linux-gcc -o 编译后的文件名编译文件名)的指令编译,编译成功后用FTP 或TFTP将可执行文件拷贝到实验开发板中,chmod +x 文件名修改权限(./文件名)执行编译文件。 3、uboot的移植 下载U-boot的安装包,解压到/opt路径下进入u-boot。修改

跑马灯控制(定时中断应用)

江 苏 省 盐 城 技 师 学 院 教 案 首 页 编 号:YJQD-0507-07 版 本:B/O 流水号: 编 制: 审 核: 批 准: 课题: 跑马灯控制(定时中断应用) 教学目的、要求:1、学习使用定时/计数器实现精确延时。 2、 熟练掌握移位指令。 教学重点、难点:熟练掌握移位指令 授课方法: 启发式教学、任务驱动型教学、实验教学 教学参考及教具(含电教设备):高职高专规划教材《单片机原理与控制技术》、多 媒体设备、DVCC 系列单片机微机仿真实验系统实验指导书。 授课执行情况及分析: 板书或教学设计: 授课日期 班 级 课题:跑马灯控制(定时中断应用) 一、知识回顾 二、任务引入 三、任务分析 四、相关知识 (1)电路功能 (2)硬件电路 (3)控制程序 五、任务实施 六、任务拓展 七、巡回指导 八、结束指导

课题 跑马灯控制(定时中断应用) 课前准备: 1、DVCC 系列单片机微机仿真实验系统 2、安装有DVCC 实验系统软件的计算机、多媒体投影仪 3、万用表及常用电工工具 组织教学: 检查学生人数、标志牌佩戴、工作服及工具准备情况。 知识回顾(复习提问): 定时中断的设定方法是什么? 任务引入: 开始时P1.0亮,延时0.2S 后,P1.1亮,如此左移7次后至P1.7再延时0.2S 右移至P1.6,如此右移7次至P1.0,循环显示。 任务分析: 一、硬件图 EA/VP 31X119X218 RESET 9RD 17WR 16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P20 21 P2122P2223P2324P2425P2526P2627P2728PSEN 29ALE/P 30TXD 11RXD 10Vss 20 Vcc 40U2 8051 R1200R2200R3200R4200R5200R6200R7200R8200 D1LED D2LED D3LED D4LED D5LED D6LED D7LED D8 LED T1XTAL C1 30p F C2 30p F a b f c g d e VCC 1234567a b c d e f g 8 dp dp 9 DS1 AMBERCA a b f c g d e VCC 1234567a b c d e f g 8dp dp 9 DS2 AMBERCA A B C D R910K R1010K R1110K R1210K +5V +5V R0110k +5V + C01 22u F 二、功能说明

单片机实训实验报告

单片机实训实验报告 课题:单片机实训 院系:电子信息工程学院 班级 学号: 姓名: 指导老师:熊老师、罗老师 日期:2011.6.10

一、硬件系统 1、自制单片机实验板由七部分组成: (1).8路跑马灯 (2)动态扫描共阳型数码管 (3)4X4矩阵键盘 (4)蜂鸣器 (5)4路独立键盘 (6)温度传感器 (7)I2C通信方式的EEPROM芯片24C02 二、Keil C u Vision2 简述与使用 1.打开 u Vision2 2.新建工程:菜单【project】→【New Project】选择工程存放的路径,并输入工程文件名,然后点“保存” 3.进入器件选择界面树列表框内选择“Atmel”→“AT89C52”,然后点“确定”完成器件选择。 4.编辑源程序: 新建文件:菜单【File】→【new…】。然后输入代码,编辑完成后菜单【File】→【Save】或【Save As…】把代码文件存入硬盘。C源文件存为.C后缀,汇编源文件存为.a或.src后缀,并存放在同一个工程文件夹下。 5.加入源文件到工程中: 在左边浮动窗口【File】选项卡里展开“Target 1”树,在“Source Group 1”上右键单击,弹出菜单,选【Add File to Group“Source Group 1”】,选择需要加入的源文件,点“Add”按钮加入,加入完成后按“Close”关闭。 6.设置编译选项:先选中左边浮动窗口【File】选项卡里“Target1“树节点,然后选菜单【Project】→【Options for Target “Target 1”】。 7.在弹出的“Options for Target “Target 1””对话框中选择[output]选项卡,勾选“Create HEX File”然后按“确定”完成设置。 8.按“F7”开始编译,编译成功后会在工程文件夹内生成.Hex目标文件生成的.hex文件就可以用来对AT89S52芯片进行编程和运行了。 三.STC-ISP V29 Beta5 下载软件的使用 1.连接好电源线与串口线(附件中的九孔对九孔线分别连接电脑和点偏激开发板)。 2.检查电源板上电源指示灯是否亮起,如果亮起则检查USB电源线,如果已亮则关掉电源看后面的步骤。 3.启动软件。 4.选择好STC单片机的型号(STC89CF52RC). 5.选择好你使用的计算机串口号. 6.点击OPEN FILE选择你用KEIL编译好的HEX文件.

嵌入式心得体会

对于电焊,虽然一点都不陌生,但亲手操作的机会却只有几次,因此我很庆幸能够有这样的焊接机会,进行这样的实践。 焊接看似容易,实则需要长时间练习才能掌握。刚开始的时候,手一直在抖,尤其这次焊的还是贴片电容、电阻,原器件比以前焊的小好多,用镊子的手一抖就夹不住了,拿着烙铁的手抖得都不容易将器件焊上,焊出来的焊点也特别难看,在不断尝试,不断挑战自我的过程中,我的手不抖了,也基本能掌握锡的用量了,当焊点终于不再“丑不忍睹”的时候,对焊接也没有当初的恐惧了。对自己的动手能力也有了信心。 在焊接的过程中我学到了许多以前我不知道的东西,比如,以前我只知道有电烙铁,但不知道它还有好多种类,有单用式、两用式、调温式、恒温式、直热式、感应式、内热式和外热式。松香可以将多余的锡弄下来,用酒精可以把板擦的干净些。通过视频和查找资料,知道了在焊不同的器件时用的电烙铁的头不同,比如在焊引脚时要用尖头,焊CPU时要用刀口,为防止锡将焊引脚的小孔堵住,用松香把纸条粘在小孔上,把小孔盖住,把CPU的引脚对齐,用锡先涂满两边,固定好芯片,在焊另外两边,然后用尖头的电烙铁沾着松香将多余的锡弄下来。 本次课程设计的是信号发生器,信号发生器在EDA课程,数字信号处理课程中都曾涉及,所以还是较为熟悉的,在设计之前查阅了一些相关书籍,也从网上查找了一些相关资料,程序代码中运用到了C语言,将程序加入到嵌入式结构框架中,进行定义变量,端口,设定所用的GPIO参数等等。 在焊接的过程中我不仅学到了知识,而且让我深深地体会到一个团队中各成员合作的重要性,要善于团队合作,在进行团队合作的时候,还要耐心听取每个成员的意见,每个人都有长处和短处,只有在包容别人的同时我们才可以取长补短,不断完善和不断进步,交到更多的朋友,学到更多的知识。同时还让我明白:做任何事都要一心一意,严谨认真,反复琢磨,不能畏惧,要有信心和勇气,一定要做好充分的准备。不能盲目去做,要坚持,还要学会反思跟总结,我们不是为了完成任务而完成,这还是一个学习跟提高的过程。 在大学里学的不是知识,而是一种叫做自学的能力。在这个知识爆炸的时代,知识更新太快,靠原有的一点知识肯定不行。以后的工作中肯定会用到一些新的

单片机汇编语言跑马灯

实验一跑马灯-亮灯左移右移循环 黄天佑 155 一、实验目的 1、进一步熟悉keil C仿真软件及单片机实验板的使用。 2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。 3、掌握应用KEIL软件编辑、编译源汇编程序的操作方法。 4、了解单片机汇编语言程序的设计和调试方法。 二、实验原理 1、实验板硬件电路图 2、单片机流水灯程序设计

(1)流水灯程序设计思路及程序流程。实现流水灯的方法有很多,这里介绍一种。 (2)产生流水灯效果程序(逐条程序加注释) start:mov R0,#8 ; 设置左移8次 mov A,#0FEH; 存入开始亮灯的位置 LOOP: mov P0,A; 传送P0并输出 ACALL DELAY; 调用延时程序 RL A; 左移1位 DJNZ R0,LOOP; 判断移送次数 mov R1,#8; 设置右移8次 LOOP1:RR A; 右移1位 mov P0,A; 传送到P0口并输出 ACALL DELAY; 调用延时程序 DJNZ R1,LOOP1; 判断右移次数 JMP start; 重新设定显示 DELAY: mov R5,#10; 延时子程序 D1: mov R6,#100; D2: mov R7,#100; DJNZ R7,$; DJNZ R6,D2; DJNZ R5,D1; RET ; 子程序返回 END ; 程序结束

三、实验步骤及调试过程 1、汇编语言程序的编写与调试 (1)新建一个工程 (2)保存文件,设一个文件名 (3)找到对应单片机的芯片,这里我们选AT89C51即可

接着我们新建一个文本写程序 (1) (2)保存文件名,注意文件名的后缀应该为.asm(汇编语言程序的格式)

实习报告_嵌入式

学 生 实 习 报 告 实 习 名 称 专业生产实习 院 部 名 称 信息技术学院 专 业 08电子信息工程(2)(本) 班 级 08电子信息工程(2) 学 生 姓 名 王震宇 学 号 0805111005 实 习 地 点 中软国际(无锡) 指 导 教 师 夏兵 实习起止时间:2011年 7月 4日至2011年 7月29日 金陵科技学院教务处制

实习项目名称: LCD驱动开发实习学时: 4周 同组学生姓名:崔敏杰王璇陈永康实习地点:中软国际(无锡)实习日期: 2011年07月04月-07月29日成绩: 批改教师:沈维燕批改时间: 实习报告 前言 中软国际有限公司(中软国际)是根植中国、服务全球的IT服务提供商,致力于为遍及全球的客户提供全面的服务,打造中国智造综合平台。中软国际总部位于北京,在美国、日本、香港以及中国大陆25个主要城市设有35家分子公司或办事处,员工突破10000人。年营业额逾10亿元人民币(2007财年)。2007年和2008年中软国际对欧美软件外包业务位列全国第一(IDC统计数据)。 集团业务涵盖以咨询为驱动的解决方案、以专业化为准则的ITO和BPO外包服务和以人才供链为导向的培训服务,包括咨询服务、软件开发、系统集成、软件测试、软件本地化、企业应用平台建设与维护、IT服务外包以及业务流程外包。 凭借集团的全球分布,中软国际能够充分运用全球资源和自身领先的技术实力帮助客户应对不断快速变化的商业挑战。凭借中软国际在中国市场所拥有的独特领导地位和全球提交能力,除能为客户提供“传统”外包服务及信息解决方案外,还能以其国内、海外市场的互动能力帮助客户在中国或海外开拓新的业务机会。 一、实习目的 1、掌握嵌入式微处理器的结构与原理 2、熟悉并掌握嵌入式Linux操作系统的操作 3、熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 二、实习时间

2020年(交通运输)单片机整套实验及程序(交通灯_跑马灯等)

(交通运输)单片机整套实验及程序(交通灯_跑马灯 等)

实验1 跑马灯实验 一、实验目的 ●初步学会Proteus ISIS和uVision2单片机集成开发环境的使用; ●初步掌握采用汇编语言与C语言开发单片机系统的程序结构; ●掌握80C51单片机通用I/O口的使用; ●掌握单片机内部定时/计数器的使用及编程方法以及中断处理程序的编写方法。 二、实验设备及器件 ●硬件:PC机,HNIST-1型单片机实验系统 ●软件:Proteus ISIS单片机仿真环境,uVision2单片机集成开发环境 三、实验内容 ●编写一段程序,采用P1口作为控制端口,使与P1口相接的四个发光二极管(D1、D2、D3、D4)按照一定的方式点亮。如点亮方式为:先点亮D1,延时一段时间,再顺序点亮D2……D4,然后又是D4……D1,同时只能有一个灯亮;然后每隔一段时间一次使相邻两个灯亮,三个灯亮,四个灯亮,最后闪烁三次,接着循环变化。 ●基于Proteus ISIS仿真环境完成上述功能的仿真。 ●基于uVision2单片机集成开发环境与硬件平台完成程序的脱机运行。 四、实验原理图 图3.1 跑马灯实验电路原理图 电路原理图如上图3.1所示,AT89S52的P1.0~P1.3控制4个发光二极管,发光二极管按照一定次序发光,相邻发光二极管的发光时间间隔可以通过定时器控制,

还可以通过软件延时实现。 五、软件流程图与参考程序 ●主程序流程图如下: ●参考程序

#include #include #define uchar unsigned char #define uint unsigned int uchar aa,num,speed,flag; uchar code table[]={0x0e,0x0d,0x0b,0x07}; uchar code table1[]={0x0a,0x05,0x09,0x06}; uchar codetable2[]={0x0c,0x09,0x03,0x08,0x01,0x0e,0x0c,0x08,0x00}; void delay(uint z)//延时函数 { uint x; uchar y; for(x=z;x>0;x--) for(y=200;y>0;y--); } void init()//条件初始化函数 { flag=0; speed=10;//控制跑马灯流水速度 TMOD=0x01;//中断方式 TH0=(65535-50000)/256; TL0=(65536-50000)%256;//初值

相关文档
最新文档