找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3678|回復: 12
收起左側

單片機匯編程序開機后進入待機模式,想改成開機進入高檔運行,不勝感激!

 關閉 [復制鏈接]
ID:450849 發(fā)表于 2020-11-17 08:34 | 顯示全部樓層 |閱讀模式
200黑幣
本帖最后由 boboxuexi 于 2020-11-20 15:27 編輯


回復

使用道具 舉報

ID:158375 發(fā)表于 2020-11-17 15:33 | 顯示全部樓層
樓主,是讓大家猜謎語嗎?
別說懂匯編的很少,就是C,又怎的?
什么條件也不說,連CPU型號也不知道,呵呵
回復

使用道具 舉報

ID:450849 發(fā)表于 2020-11-17 15:40 | 顯示全部樓層
笨笨兔 發(fā)表于 2020-11-17 15:33
樓主,是讓大家猜謎語嗎?
別說懂匯編的很少,就是C,又怎的?
什么條件也不說,連CPU型號也不知道,呵呵

合泰的芯片
回復

使用道具 舉報

ID:844916 發(fā)表于 2020-11-17 16:04 | 顯示全部樓層
合泰的芯片有點難搞的
回復

使用道具 舉報

ID:827243 發(fā)表于 2020-11-17 16:17 | 顯示全部樓層
這三個函數沒有貼出來啊
7175aa7dcd0e60127dd3ca22148c9cae.png
回復

使用道具 舉報

ID:401564 發(fā)表于 2020-11-17 16:40 | 顯示全部樓層
全文只有5個漢字
那么長的代碼,就算是常用的8051C,沒有注釋都不是那么容易理清你的思路,匯編就更加不用說了,而且你還是合泰的匯編,如果不是工作要求,誰會去玩合泰呢?一個燒錄器就400塊錢,11塊的STC燒錄器它不香嗎?
你多少有點注釋吧,不然誰看得明白,就你自己寫的都不好找
我以前也用過合泰,我代碼的風格和你這完全不是一個世界的.......

;============================================================================
;作者:**                                                                                                                                        *
;日期:2016/11/26                                                                                                                        *
;功能:測試HT66F50的按鍵,主要學習:按鍵去抖動,間接指針尋址操作                                *
;備注:工程設定:使用4MHZ內部晶振,PD端口要設定為輸入功能,還要設定上拉電阻                *
;對于查表,要注意,高位不用的指針一定要定義為0,如果不定義的話,查表結果會出錯        *
;============================================================================
include HT66F50.inc                ;包含HT66F50頭文件
S1        EQU        PD.0                        ;PD0聲明為S1
ds        .section        'data'        ;數據存儲空間
DEL1        DB        ?                        ;在數據空間保留一個字節(jié)的空間,延時
DEL2        DB        ?                        ;在數據空間保留一個字節(jié)的空間,延時
DEL3        DB        ?                        ;在數據空間保留一個字節(jié)的空間,延時
COUNT        DB        ?                        ;在數據空間保住一個字節(jié)的空間,顯示計數
;============================================================================
cs        .SECTION        'code'        ;程序存儲空間,從000H開始執(zhí)行
                ORG 040H                ;程序從050H開始執(zhí)行
STAR:        CLR ACERL                ;作為I/O端口使用,不使用ADC輸入引腳功能
                CLR C0SEL                ;關閉比較器電路,比較器無功耗
                MOV A,08H                ;比較輸出不連接,作為單獨的I/O端口使用
                MOV CP1C,A                ;關閉比較器
                MOV CP0C,A                ;關閉比較器
                CLR PCC                        ;PC 作為輸出端口
                CLR        PAC                        ;PA        作為輸出端口
                SET        PDC                        ;PD        作為輸入端口
                SET PDPU                ;PD        加上上拉電阻
MAIN:        MOV A,10       
                MOV COUNT,A                ;顯示的個數為10
                MOV A,OFFSET TAB_7_SEG        ;取得七段碼顯示表格的表頭地址
                MOV TBLP,A                ;表頭地址加載到查表指針低位,小于255的數據都只用到低位指針
                MOV A,1FH                ;HT66F50最后一頁地址是1FF8H,所以,高位就是1FH
                MOV TBHP,A                ;查表指針的高位一定要確定,不能不設定,不然的話,查表會出錯       
LOOP:        TABRDC        PC                ;查表,并在PC顯示
                MOV A,TBLH                ;查表結果的高位保存到A
                MOV PA,A                ;高位的結果在PA輸出
                SZ        S1                        ;S1是0就跳過下一條指令,1:按下,0:沒按下
                JMP LOOP                ;S1為1,沒有按下按鍵,跳去顯示
                CALL        DELAY        ;S1按下,調用50mS延時,去抖動
                SZ        S1                        ;S1是0就跳過下一條指令,這是去抖動之后的動作,1:按鍵松開,0:按鍵沒松開
                JMP        LOOP                ;去顯示,檢測50mS之后,如果按鍵還沒有松開,就是按下,否則,視為抖動
                INC TBLP                ;查表指針加1
                SDZ        COUNT                ;COUNT減1,是0就跳過下一條指令
                JMP LOOP                ;去顯示
                JMP        MAIN                ;重新開始
;===========================================================================================
;******************************************************************************************
;合泰指令系統(tǒng)是4個時鐘為一個指令周期,4MHZ的晶振,一個指令是1uS
;這是一個50mS的延時程序,由A決定了總延時時間
DELAY:                 MOV A,1
                        MOV        DEL1,A        ;這時個性DEL1的值,可以改變延時的時間為50mS的整倍數
DLOOP1:                MOV        A,200D        ;1
                        MOV        DEL2,A        ;1
DLOOP2:                MOV        A,167D        ;1
                        MOV        DEL3,A        ;1         *****************************************************
DLOOP3:                SDZ        DEL3        ;1X167=167,*DLOOP3的指令執(zhí)行次數是499次,時間是499uS=0.5mS      *
                        JMP        DLOOP3        ;2X166=132 *以后,如果是要改變延時的話,可以通過改變A的值來改變  *
                        SDZ        DEL2        ;1         *其它指令的執(zhí)行時間可以補償最終的時間誤差           *
                        JMP        DLOOP2        ;2         *****************************************************
                        SDZ        DEL1        ;1
                        JMP        DLOOP1        ;2
                        RET
;====================================================================================
;這個表是一個七段碼顯示表,自己焊的學習板上用的就是這個
                ORG LASTPAGE                ;把表的數據放在最后一頁,LASTPAGE是最后一頁的偽指令               
                TAB_7_SEG:
                DC      001+00010001B SHL 8         ;0                       
                DC            002+10011111B SHL 8          ;1                       
                DC            004+00110010B SHL 8           ;2               
                DC      008+00010110B SHL 8         ;3                 
                DC             016+10011100B SHL 8          ;4
                DC            032+01010100B SHL 8          ;5
                DC             064+01010000B SHL 8          ;6
                DC             128+00011111B SHL 8         ;7       
                DC             0F0H+00010000B SHL 8          ;8       
                DC             0FFH+00010100B SHL 8          ;9
;對于30H+000101000B SHL 8
;這是一個16位的表,運行的結果是30H被放在表的低位,00010100B被放在高位
;SHL在二元運算上的等級要比+二元運算的等級高,所以,先是左移,然后才加
;==================================================================================               
                        END       

回復

使用道具 舉報

ID:450849 發(fā)表于 2020-11-17 16:55 | 顯示全部樓層
daemondong 發(fā)表于 2020-11-17 16:17
這三個函數沒有貼出來啊

為了保密,故意沒有貼出了,影響不大的
回復

使用道具 舉報

ID:450849 發(fā)表于 2020-11-17 17:00 | 顯示全部樓層
Y_G_G 發(fā)表于 2020-11-17 16:40
全文只有5個漢字
那么長的代碼,就算是常用的8051C,沒有注釋都不是那么容易理清你的思路,匯編就更加不用說 ...

回復

使用道具 舉報

ID:336378 發(fā)表于 2020-11-17 17:43 | 顯示全部樓層
    繪編那是要很長時間才能搞出來的,不是三下五除二可以搞定的。樓主不會是在這顯擺吧??
回復

使用道具 舉報

ID:845469 發(fā)表于 2020-11-18 17:00 | 顯示全部樓層
太牛了,根本學不來啊
回復

使用道具 舉報

ID:827243 發(fā)表于 2020-11-19 13:37 | 顯示全部樓層
boboxuexi 發(fā)表于 2020-11-17 16:55
為了保密,故意沒有貼出了,影響不大的

暈,你要改開機模式就在這三個函數里。
回復

使用道具 舉報

ID:278840 發(fā)表于 2020-11-19 14:21 | 顯示全部樓層
感覺樓主自己都懂的,還用請教嗎
回復

使用道具 舉報

ID:846054 發(fā)表于 2020-11-20 11:29 | 顯示全部樓層
看著都頭疼,難搞
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表