松翰单片机之跑马灯程序解析 2

松翰单片机之跑马灯程序解析 2

2023年7月14日发(作者:)

松翰单片机之跑马灯程序解析

跑马灯程序,是单片机初学者必要学会的一个程序,学会了写跑马灯程序,你才真正的单片机入门了。下面我就给大家介绍写松翰单片机的跑马灯

程序。

(1)程序功能:两灯对闪,闪烁的频率为2.4hz也就是420ms交换闪烁一次

(2)程序流程图(无)

(3)原理图(在附件里)

(4)程序代码:

1。打开松翰编译器新建一个project 文件 在里面输入以下代码

chip sn8p2501b

.nolist

;;

includestd macro1.h

includestd macro2.h

includestd macro3.h

.list

.const

include

.data

include

;;----------------------------------

.code

org 0

jmp reset

jmp reset ;

dw 0xffff ;

org 8 ;

jmp int_sv ;

jmp int_sv ;

dw 0xffff ;

org 10h

include

include include

include

include led_

endp

;;-------------------------------------------------------------

2.新建一个main 文件在里面输入下面代码,保存起来

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

;Subroutine:

;Description: init systerm work circumstance & transfer all

subprograms

;principium:

;calls:

;

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

reset:

mov a,#7fh ;

mov stkp,a ;

mov a,#00h ;

mov pflag,a ;

call clr_ram ;

call sys_init ;

b0bset fgie ;

main:

@rst_wdt

call time_pro

call led_pro

jmp main

;;------------------------------------------------

3.再建个time 时间处理程序

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

;time chat part

;;时间处理

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

time_pro:

bts1 f_int_t0

jmp time_pro90

bclr f_int_t0

;;------------------------------------------------

time_pro10:

incms b_t_450ms

nop

cjb_ b_t_450ms,#42,time_pro90

clr b_t_450ms

bset f_led_flash

;;-----------------------------------------------

time_pro90:

ret

;;-----------------------------------------

4.根据上面一样的,建个led_pro子程序

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

;;led灯指示

;;两红两绿对灯闪烁,频率2.4hz

;;

;;

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

led_pro:

bts1 f_led_scan

jmp led_pro

bclr f_led_scan

led_pro10:

bts1 f_led_flash

jmp led_pro20

bclr f_led_flash

bclr f_led_green

bset f_led_red

jmp led_pro90 ;;----------------------------------

led_pro20:

bclr f_led_red

bset f_led_green

jmp led_pro90

;;--------------------------------

led_pro90:

ret

;;------------------------------

5。再建个初始化程序 init

;systerm initial part before main program start

;clr ram (ram size is 64 byte)

;set systerm work enviroment such as timer/ IO/ INT

;program init part

;主要包括三部分:清RAM,系统资源设置,软件初始化

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

clr_ram: ;

mov a,#00h ;

mov y,a ;

mov a,#7fh ;

mov z,a ;

clr_ram10: ;

mov a,#00h ;

mov @yz,a ;

decms z ;

jmp clr_ram10 ;

mov a,#00h ;

mov @yz,a ;

clr_ram90: ;

ret ;

;;---------------------------------------

sys_init:

;;I/O口初始化

mov a,#0ffh

mov p0m,a ;;输出0 没用口 mov a,#0

mov p0,a

mov a,#0ffh ;;p10口输出用,其他的口做输出0处理

mov p1m,a

mov a,#0

mov p1,a

mov a,#0ffh ;;p54做输出0处理

mov p5m,a

mov a,#0

mov p5,a

;;

;;time 设置

b0bclr ft0enb

b0bclr ft0ien

mov a,#00100000b

mov t0m,a

mov a,#256-156

mov t0c,a

b0bclr ft0irq

b0bset ft0ien

b0bset ft0enb

;;

sys_init90:

ret

;;-------------------------------------

6.中断程序处理了建个int文件

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

;;中断处理程序

;;t0,tc0,中断

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

int_sv:

口输出用,其他的口无用, b0xch a,accbuf

mov a,pflag

mov pflagbuf,a

;;-------------------------------------------;;t0中断

bts1 ft0irq

jmp int_sv90

bclr ft0irq

mov a,#256-156

mov t0c,a

bset f_int_t0

;;---------------------------------------------

int_sv90:

mov a,pflagbuf ;

mov pflag,a ;

b0xch a,accbuf ;

reti ;

;;--------------------------------------------------

定义了,建个ram

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

;RAM DS divide into four parts (用户自定义RAM区域)

;KEY RAM ; REMOTE RAM ; PRO RAM ; TIME RAM

;

;

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

accbuf ds 1

pflagbuf ds 1

b_t_450ms ds 1

flag0 ds 1

f_int_t0 equ flag0.0

f_led_scan equ flag0.1

f_led_flash equ flag0.2

;;----------------------------------------------------------

常量定义了建个const

;;**************************************;********* ;const value define(常量定义部分)

;

;

;

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

f_led_red equ fp10

f_led_green equ fp54

;;----------------------------------------------------------------------------

9.完了,现在就来运行程序了 打开编译器,在File菜单中打开New Project 找到project

这个文件打开它,按F7就可以编译了

10.在我的附件中有着程序的源代码

好了程序就写到这里了希望对单片机初学者有所帮助,同时也希望大家多来顶下,这样我就高兴了,

一高兴就点起键盘来了!!!!!!!!

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689329132a230754.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信