1. 程式人生 > >晒晒我的第一個彙編專案(原始碼)

晒晒我的第一個彙編專案(原始碼)

承接:嵌入式外包專案(13410905075)
;*****************************************************************************
;  This file is a base code template for assembley code generation on the 8PE53.
;*****************************************************************************
;* TITLE        :
;* REVISION     :1.0
;* AUTHOR       :DriverMonkey
;* COMPANY      :
;* DATE         :2013.1.26
;* QQ		:196568501
;* MAIL		:
[email protected]
;* CHIP :8PE53 ;* CONFIG : ;***************************************************************************** ;---------------Include files Segment----------------------------------------- #include <8PE53.ASH> ;---------------Custom define segment----------------------------------------- RG_INT_ACCTMP REG 0x10 ;example register definition RG_INT_STATMP REG 0x11 ;example register definition RG_INT_PCHTMP REG 0x12 ;example register definition ;--- RG_TEMP REG 0x13 ;example register definition RG_COUNT0 REG 0x15 ;time 0 counter RG_COUNT1 REG 0x16 RG_COUNT2 REG 0x17 RG_COUNT3 REG 0x18 RE_LAST_COUNT3 REG 0X1B ;remerber count 3 RG_COUNT_PULSE REG 0x19 ;remerber pulse period RG_OOUNT_PULSE_REMAIN REG 0X1A RG_US_CNT REG 0X1B ;delay count RG_MS_CNT REG 0X1C ; RG_S_CNT0 REG 0X1D ; RG_S_CNT1 REG 0X1E ; RG_38K_CNT REG 0X1f RG_MD_CNT REG 0X20 RG_PB_4_STATUS REG 0X21 ;---------------vaule segment------------------------------------------------- EQ_AAA EQU 0x55 ;example value definition EQ_TX_CHANGE EQU 0x03 ;---------------Program segment----------------------------------------------- ORG 0x000 ;---------------Software Interrupt Vector segment----------------------------- ORG 0x002 ;Software INT vector ;Software interrupt program is written here. ;---------------Hardware Interrupt Vector segment----------------------------- ORG 0x008 ;Hardware INT vector MOVAR RG_INT_ACCTMP SWAPR STATUS,A MOVAR RG_INT_STATMP SWAPR PCHBUF,A MOVAR RG_INT_PCHTMP ;Save ACC STATUS PCHBUF template code ;--- INCR RG_COUNT0, 1 ;Increament RGCOUNT0 BTRSC STATUS, 2 ;Test STATUS Z bitC GOTO INCREASE_COUNT1 ;If RG_COUNT0 is verflow, increse RG_COUNT1 GOTO INT_EXIT INCREASE_COUNT1: INCR RG_COUNT1, 1 BTRSC STATUS, 2 ;Test STATUS Z bitC GOTO INCREASE_COUNT2 ;If RG_COUNT1 is verflow, increse RG_COUNT2 GOTO INT_EXIT INCREASE_COUNT2: INCR RG_COUNT2, 1 BTRSC STATUS, 2 ;Test STATUS Z bitC GOTO INCREASE_COUNT3 ;If RG_COUNT2 is verflow, increse RG_COUNT3 GOTO INT_EXIT INCREASE_COUNT3: INCR RG_COUNT2, 1 GOTO INT_EXIT ;------ INT_EXIT: MOVIA 0X00 ;Hardware interrupt program is written here. MOVAR INTFLAG ;Clear interrupt FLA FLAG SWAPR RG_INT_PCHTMP,A MOVAR PCHBUF SWAPR RG_INT_STATMP,A MOVAR STATUS SWAPR RG_INT_ACCTMP,R SWAPR RG_INT_ACCTMP,A RETFIE ;Restore ACC STATUS PCHBUF template code ;--------------------init--------------------------------------------------------- INIT: CLRA MOVAR PORTB MOVIA 0X10 IOST PORTB ;Set PortB to output mode, IOB3 is input only MOVIA 0X00 OPTION ;Use internel clock source CLRA MOVAR RG_US_CNT MOVAR RG_MS_CNT MOVAR RG_S_CNT0 MOVAR RG_S_CNT1 MOVAR RG_PB_4_STATUS CALL MAIN ;---------------------main-------------------------------------------------------- MAIN: CALL DELAY_S CALL OUTPUT_MOD_WAVE MOVIA 0X07 XORAR RG_PB_4_STATUS, 0 BTRSC STATUS, Z_B GOTO CLEAR_PORTB1 GOTO SET_PORTB1 CLEAR_PORTB1: BCR PORTB, 1 GOTO MAIN SET_PORTB1: BSR PORTB, 1 GOTO MAIN ;----------------clear tx pin---------------------------------------------- CLEAR_TX_PIN: ;tx pin equan 1 BCR PORTB, 2 ;set tx pin to 0 RETURN ;----------------set tx pin-------------------------------------------------- SET_TX_PIN: BSR PORTB, 2 ;set tx pin to 1 RETURN ;----------------disable 38khz load wave----------------------------------- DISABLE_LOAD_WV: CALL DISABLE_TIME0 CALL DELAY_MS RETURN ;----------------disable 38khz load wave----------------------------------- ENABLE_LOAD_WV: CALL ENABLE_TIME0 RETURN ;----------------enable time0----------------------------------------------- ENABLE_TIME0: BTRSC INTEN,7 RETURN MOVIA 0X81 MOVAR INTEN ;Enable time0 intr RETURN ;----------------desable time0---------------------------------------------- DISABLE_TIME0: MOVIA 0X00 MOVAR INTEN ;Enable time0 intr RETURN ;----------------init count------------------------------------------------- CLEAR_COUNT: CLRA MOVAR RG_COUNT0 ;Init counter MOVAR RG_COUNT1 MOVAR RG_COUNT2 MOVAR RG_COUNT3 RETURN OUTPUT_MOD_WAVE: CLRA MOVAR RG_PB_4_STATUS CALL OUTPUT_38KHZ_WAVE BTRSS PORTB, 4 BSR RG_PB_4_STATUS, 0 CALL DELAY_MS CALL OUTPUT_38KHZ_WAVE BTRSS PORTB, 4 BSR RG_PB_4_STATUS, 1 CALL DELAY_MS CALL OUTPUT_38KHZ_WAVE BTRSS PORTB, 4 BSR RG_PB_4_STATUS, 2 CALL DELAY_MS RETURN ;----------------38K output--------------------------------------------------- OUTPUT_38KHZ_WAVE: MOVIA 25 ; MOVAR RG_38K_CNT MOVIA 0xff DECRSZ RG_38K_CNT, R CALL LOAD_WAVE MOVIA 0xff ANDAR RG_38K_CNT, R BTRSS STATUS, Z_B GOTO $-5 CALL CLEAR_COUNT RETURN LOAD_WAVE: CALL SET_TX_PIN CALL DELAY_US CALL CLEAR_TX_PIN CALL DELAY_US RETURN ;----------------delay us------------------------------------------------------ DELAY_US: MOVIA 3 MOVAR RG_US_CNT DECRSZ RG_US_CNT, R GOTO $-1 NOP NOP RETURN ;----------------delay mS--------------------------------------------------------- DELAY_MS: MOVIA 60 ;Period is MOVAR RG_MS_CNT CALL DELAY_US DECRSZ RG_MS_CNT, R GOTO $-2 RETURN ;---------------delay S-------------------------------------------------------- DELAY_S: MOVIA 0XFF MOVAR RG_S_CNT0 MOVIA 8 MOVAR RG_S_CNT1 CALL DELAY_MS DECRSZ RG_S_CNT0, R GOTO $-2 DECRSZ RG_S_CNT1, R GOTO $-2 RETURN ;---------------MCU Boot/Reset Vector segment--------------------------------- ORG 0x3FF ;MCU reset vector GOTO INIT


相關推薦

晒晒第一彙編專案原始碼

承接:嵌入式外包專案(13410905075) ;***************************************************************************** ; This file is a base code templa

記錄第一開源專案:clever-logger

自己寫的一個簡單易用的Nodejs日誌中介軟體,適用於connect和express框架 1、可以記錄request、response中的一些資料和定義於日誌,支援顯示在控制檯和本地檔案。 2、可自定義日誌檔案組織形式:1)、按日期作為資料夾儲存日誌檔案 2)、日期作為日誌名的一部分 3

第一網頁爬蟲python

1、環境:python 3.5.1  編輯器:pycharm 2、學習網站:http://python.jobbole.com/81336/ 3、實戰: 使用該頁面中提到的語句,python 3.5.1報錯,無法識別urllib2的庫,如: importurllib2

如何開始第一人工智慧模型tensorflow

安裝tensorflow 大家都知道tensorflow是google開發的一款開源的深度學習程式設計框架,是當今最流

小程序初體驗:手把手教你寫出第一小程序

輸入框 個人 創建 公測 快速 nsh 成功 too 調用 本文筆者將根據quick start中的範例代碼,帶大家簡單地剖析一下小程序的運行方式,並介紹小程序開發中一些通用的特性,帶著大家一步步寫出自己的小程序。 適用對象:前端初學者,對小程序開發感興趣者 tip

Android解析HTML網頁數據 第一方法Jsoup

原生 日誌 href attr mage connect auto htm baidu 最近發現一些無聊的東西,就是抓取網頁上的數據,然後使用安卓原生代碼顯示出來,或者說借用網頁數據,用自定義的View顯示。 借助jsoup-1.10.2.jar庫,獲取並解析數據。(Jso

node.js express+ejs引擎構建第一項目

sta com 如果 node.js install 安裝 exp expr inf express+ejs初始化項目命令: express -t ejs projetName 目錄結構如下: 安裝依賴: npm install 安裝依賴後,啟動項目:

Django初步實現第一項目1

127.0.0.1 mil img span 9.png settings info ima div 1.安裝Django最新版 pip install django==2.1.1 2.查看Django版本 3.創建第一個Django項目 4.創建一個app模塊

《windows程序設計》第一窗口1

ati col clas where app byte bytes pixel over #if defined(UNICODE) && !defined(_UNICODE) #define _UNICODE #elif defined(_UNIC

《劍指offer》系列 兩連結串列的第一公共結點Java

連結 牛客:兩個連結串列的第一個公共結點 題目描述 輸入兩個連結串列,找出它們的第一個公共結點。 思路 倆個連結串列存在公共結點,意味著第一個公共結點之後的都是相同的,就是說,兩個連結串列的尾巴是相同的,我們可以分別算出兩個連結串列的長度之差lenDif ,然後遍歷長

《劍指offer》系列 兩連結串列的第一公共結點Java

連結 題目描述 輸入兩個連結串列,找出它們的第一個公共結點。 思路 倆個連結串列存在公共結點,意味著第一個公共結點之後的都是相同的,就是說,兩個連結串列的尾巴是相同的,我們可以分別算出兩個連結串列的長度之差lenDif ,然後遍歷長連結串列到lenDif的位置

2.第一小程式獲取使用者資訊--包括敏感資訊

小友初學微信小程式開發,如果有些問題不對,請指出,謝謝   我還是來說一下我的學習之路吧!!!   原始碼地址: 密碼:luh0   1.在開發小程式的時候,我們需要吧開發工具中的不校驗合法域名、web-view(業務域名)、TLS 版本以及 HTTPS 證書這個給

Java新手專案第一專案2016.5.16-5.22

Java學生選課教務系統 作為學習Java的新手,之前學過點Java的基礎,後來又看了看網易雲課堂的java,總共差不多兩個月的時間吧,陸陸續續跟著書和視訊編了一些程式。馬上也要畢業,現在開始,希望能夠寫一些新手,進階,高階專案經歷。一方面,是對自己實踐的一個

JAVA 第一專案 桌球遊戲 桌球小程式練習

今天裝了Eclipse  學習第一個小程式‘’   #載入視窗   #畫視窗 import java.awt.*;import javax.swing.*; public class BallGame extends JFrame{ Image ball = Toolkit.ge

JAVA 第一專案 桌球遊戲 桌球小程式練習2最終版本

import java.awt.*;import javax.swing.*; public class BallGame2 extends JFrame{ Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png"); Ima

第一網頁專案的流程

這是我的第一個專案一個學校的genomics3d的網站,為了完全掌握這個專案要求讓我們在username和passward之間加入一個nickname,流程如下:1. 進入right.html,在其中加入nickname,這個是註冊和登陸的介面然後註冊,在點選register

第一開源專案

地址 gitee地址 專案介紹 一個簡單的多執行緒爬蟲,具有斷點爬取功能,以及自動推測網頁編碼功能 使用jdk11+,maven構建,我使用jdk11.0.2時會報錯,見https://bugs.openjdk.java.net/browse/JDK-8213202,jdk8卻沒有,jdk本身的bug,所以

今年讀了四開源專案原始碼,來分享下心得

> 微信搜 「yes的練級攻略」乾貨滿滿,不然來掐我,回覆【123】一份20W字的演算法刷題筆記等你來領。 個人文章彙總:https://github.com/yessimida/yes 歡迎 star ! Hola,我是 yes。 今年來看了 RocketMQ、Kafka、Dubbo 、Tomcat 的

用go-zero開發了第一線上專案

作者:結冰 ## 前言 ​ 說在最前面,我是一個外表謙讓,內心狂熱,外表斯文,內心貪玩的一個普通人。我的職業是程式設計師,是一個golang語言愛好者,一半是因為golang好用,一半是因為其他語言學不好。我是從phper轉為gopher的,寫php的時候我認識了網際網路軟體,寫go的時候感覺自己終於在程

從計算機語言的發展到第一行代碼HelloWorld

流程圖 專業 程序庫 進制 掌握 設計 borland 編程 擴展名 程序:為了讓計算機執行某些操作或解決某個問題而編寫的一系列有序指令的集合 算法:解決問題的具體方法和步驟 流程圖是算法的一種圖形化表示方式。 流程圖直觀、清晰,更有利於人們設計與理解算法。 它使用一組