倒計時器在生活非常有用,用單片機(jī)自制,不但電路簡單,而且功能可根據(jù)需要自行設(shè)計。由74系列、40系列小規(guī)模數(shù)字芯片設(shè)計的倒計時器非常多,但有顯示不直觀(無LED數(shù)碼管);調(diào)整參數(shù)不靈活;計時精度低(采用RC振蕩)等缺點。在此向大家介紹如何用89C2051單片機(jī)自制倒計時器的方法。
一、功能介紹
1. 獨立的三路倒計時。均可獨立設(shè)置啟動、關(guān)閉。 2. 范圍:0~20小時,可任意設(shè)定。關(guān)機(jī)后數(shù)據(jù)不丟失。計時精度高:<0.1S 3..獨立的三路輸出: a:第1路 蜂鳴器輸出: 15S b:第2路 PNP晶體管輸出:5S c:第3路 PNP晶體管輸出:直致關(guān)機(jī)
二、工作原理
電路見上圖整機(jī)由89c2051、三位LED數(shù)碼管、K1-K4、R、T等元器件組成。89C2051內(nèi)部T1定時器完成100mS定時中斷功能。為了減少硬件,由89C2051的P1口直接輸出LED的段碼,BCD轉(zhuǎn)換由軟件完成。位選碼由P3.0,P3.1,P3.7輸出。鍵盤掃描與LED位選碼的腳共用。
由于89C2051的灌入電流:20mA。故直接驅(qū)動:蜂鳴器、PNP晶體管。LED數(shù)碼管采用共陰高亮型,LED1數(shù)碼管要旋轉(zhuǎn)180度。因為要顯示:“19:99”,而只有三位數(shù)碼管,因此用第三位的數(shù)碼管的小數(shù)點表示“1”。 
三、軟件編制
(軟件流程見圖三) 在T1中斷程序中做一個軟時鐘,在定時處理程序不斷查尋時間,并根據(jù)每路的啟動狀態(tài),判別是否要減數(shù)。每路倒計時到"0"后,均要判別其它兩路是否已啟動。如果沒有啟動,則CPU進(jìn)入掉電模式,電流<1.5uA,因此電路中無電源開關(guān),再次啟動,由K4(復(fù)位鍵)完成。每路倒計數(shù)的初值、啟動狀態(tài)(是否開始倒計數(shù)),均可單獨設(shè)定并存在89c2015的RAM中,只要不斷電,數(shù)據(jù)不會改變。

四、操作說明
電路中設(shè)有K1~K4四個開關(guān):
1.功能如下:
K1:定時路數(shù)切換。上電:LED顯示第1路定時時間,按下k1,LED顯示第1路定時啟動狀態(tài): 【F】表示:關(guān) !緉】表示:開。再按下K1后,依此進(jìn)入第2路、3路的設(shè)置,最后進(jìn)入關(guān)機(jī)狀態(tài)。 LED顯示:【OFF】,K3按下則關(guān)機(jī)。
K2:小時位加1。當(dāng)超過9小時后,LED1的小數(shù)位亮。表示“1”,因此LED顯示最大的定時時間:19小時。LED1安裝時要倒過來,而且最好用綠色的。K3:分位加1 、 啟動狀態(tài)切換【F-n-F】、關(guān)機(jī)確認(rèn)。
1、 當(dāng)LED數(shù)碼管顯示定時時間時,按下K3則相應(yīng)路數(shù)的分位加1。范圍:0~59分鐘。 2、 當(dāng)LED數(shù)碼管顯示【1.F】或【2.F】或【3F】時,按下K3則【F】變?yōu)椤緉】,再次按下K3則【n】變?yōu)椤綟】,一旦進(jìn)入【n】則相應(yīng)路數(shù)的倒計時就啟動。 3、 當(dāng)LED數(shù)碼管顯示【OFF】時,表示CPU已處于關(guān)機(jī)模式,只要按下K3,則CPU進(jìn)入掉電模式。
K4:復(fù)位 復(fù)位89C2051,把MCU從掉電模式拉出重新啟動。以上電路定時初值及啟動狀態(tài)均可時時改變。
2.定時初值及啟動狀態(tài)的設(shè)定:
三路定時初值及啟動狀態(tài)均可一次設(shè)置好,方法如下:
1、K1~K3鍵任意鍵按下不松約5s后,LED數(shù)碼管顯示開始閃爍,表示已進(jìn)入初值和啟動狀態(tài)設(shè)定模式。 2、通過K1-K3的操作,可對三路的定時初值及啟動狀態(tài)進(jìn)入設(shè)定。
四、注意事項
1、 當(dāng)MCU用6MHz晶振時,工作電壓可在2.6-5.5V之間。 2、 外接繼電器,請注意工作電壓,及晶體管的保護(hù)。
;*************** ;timer_program 2000-12-3 倒計時器源程序 ;*************** timers equ 08h ;************************************************** al1_min equ timers+1h al1_hour equ timers+2h al2_min equ timers+3h al2_hour equ timers+4h al3_min equ timers+5h al3_hour equ timers+6h flash equ timers+7h ;**************************************************************** del1 equ flash+1h del2 equ flash+2h del3 equ flash+3h ;ram addres at 12h ;***************************************************************** key_data equ del3+1h sec equ del3+2h timer_no equ sec+1h del4 equ timer_no+1h key_power equ del4+1h ;*************************************************
time_led1 equ 24h time_led2 equ time_led1+1 time_led3 equ time_led2+1
led1 equ time_led3+1h led2 equ led1+1 led3 equ led2+1
;************************************************* al1_min_t equ led3+1 al1_hour_t equ al1_min_t+1
al2_min_t equ al1_hour_t+1h al2_hour_t equ al2_min_t+1h
al3_min_t equ al2_hour_t+1h al3_hour_t equ al3_min_t+1h ;***************************************************
beep_timer equ al3_hour_t+1h
;****************以上進(jìn)行內(nèi)存分配*******************
led_1 bit p3.0;P3.0控制最右邊的數(shù)碼管 led_2 bit p3.1;P3.1控制中間的數(shù)碼管 led_3 bit p3.7;P3.7控制最左邊的數(shù)碼管 ;(原理圖標(biāo)的好象有出入,以PCB為準(zhǔn),最左邊的數(shù)碼管是顛反安裝的)
HA BIT P3.2;接蜂鳴器 key_f bit p3.3;接按鈕公共端
pnp1 bit p3.4;T1路控制輸出 pnp2 bit p3.5;T2路控制輸出
timer_50ms bit 00h;定時50毫秒標(biāo)志位 timer_1s bit 01h;定時1秒標(biāo)志位 timer_3s bit 03h;定時3秒標(biāo)志位 ; timer_20s bit 04h;定時20秒標(biāo)志位 timer_1min bit 05h;定時1分鐘標(biāo)志位 timer_10min bit 06h;定時10分鐘標(biāo)志位
;timer_am bit 07h key_set_f bit 08h sec_flash_f bit key_set_f+1h ;************************************************************* al1_f bit sec_flash_f+1h al2_f bit al1_f+1h al3_f bit al2_f+1h flash_f bit al3_f+1h set_f bit flash_f+1h ;***************************************************************** al_f bit set_f+1h al_out_f bit al_f+1h all_s bit al_f+2h turn_f bit all_s+1h
aal1_f bit turn_f+1h aal2_f bit turn_f+2h aal3_f bit turn_f+3h ;*****************************************************************
tih equ 3ch ;9e58h 6MHz til equ 0b0h ;3cb0h 12MHz tis equ 10d ;20d 12MHz, 10d 6MHz ti_no equ 3h
led_blk equ 0ah led_c equ 0bh led_e equ 0ch
;主程序開始 oRG 0000H; ; sJMP start ORG 0003H; ; reti; ORG 000BH ; reti ; ORG 0013H reti ; ORG 001BH ; aJMP T1 ; ORG 0023H ; RETI; AJMP RS_485 ; ;************************************** start: MOV R7,#78h ; MOV R0,#10H ; CLR A ; CR: INC R0 ; MOV @R0,A ; djnz r7,cr ;將內(nèi)存清零 MOV SP,#40H ; clr ea clr set_f clr turn_f setb pnp2 setb pnp1 ;********************************* j al1-3 data MOV r0,#al1_min MOV r1,#al1_min_t MOV r7,#07h op_4: MOV a,@r0 cjne a,#19d ,op_1 op_2: MOV a,#00h MOV @r0,a sjmp op_3 op_1: jnc op_2 op_3: MOV a,@r0 MOV @r1,a inc r0 inc r1 djnz r7 ,op_4 MOV a,flash MOV c,acc.1 ;acc.1 al1 acc.2 al2 .... MOV al1_f,c MOV c,acc.2 ;acc.1 al1 acc.2 al2 .... MOV al2_f,c MOV c,acc.3 ;acc.1 al1 acc.2 al2 .... MOV al3_f,c
;************************************************
;************** INT_CTRL ; SETB ie0 ; ; SETB EX0 ; ; SETb ex1 ; setB ET0 ; SETB ET1 ; ; SETB IT0 ; ; setb IT1 ; MOV TMOD,#00010001b ; MOV TH1,#tih MOV tl1,#til MOV th0,#00h MOV tl0,#00h
;***********RS_CTRL
; MOV SCON,#00H ; ;***************** ; MINI_Pragram ;***************** MOV timers,#tis MOV sec,#00d ;MOV al1_hour_t ,al1_hour ;MOV al1_min_t ,al1_min ;MOV al2_hour_t ,al2_hour ;MOV al2_min_t ,al2_min ;MOV al3_min_t ,al3_min ;MOV al3_hour_t,al3_hour MOV timer_no,#ti_no MOV del4,#00h ;MOV beep_timer,#8d MOV del1,#00d MOV del2,#00d MOV del3,#00d MOV del4,#00d MOV key_power,#01d setb al_out_f setb tr1 setb ea setb timer_50ms STAR_BI: ; setb flash_f acall led_jmp_1;led_times aCALL KEY_1 acall al_out_way acall delay sjmp star_bi ;;;;;;;;;;;;;;;;; delay: inc del3 MOV a,del3 cjne a,#0ffh,del_1 MOV del3,#00h inc del4 MOV a,del4 cjne a,#040h,del_1 MOV del4,#00h clr flash_f clr set_f
del_1:
ret
;**************************** ; key_pragm ;**************************** KEY_1: MOV p1,#00h MOV p3,#0ffh clr key_f MOV a,p3 setb key_f anl a ,#10000011b cjne a,#10000011b,you_key_1 key_e:
MOV p3,#0ffh setb key_f MOV key_data,#00h
key_1_end: ret you_key_1: MOV del3,#0feh MOV del4,#0feh
setb key_f
MOV b,#20h lll_1: push b lcall led pop b djnz b ,lll_1 MOV p1,#00h MOV p3,#0ffh clr key_f MOV a,p3 setb key_f anl a ,#10000011b cjne a,#10000011b,you_key_2
sjmp key_e
you_key_2: jb acc.0 ,key_set MOV key_data,#01h sjmp you_key_33 key_set: jb acc.1 ,you_key_3 MOV key_data,#02h sjmp you_key_33 you_key_3: jb acc.7 ,you_key_33 MOV key_data,#03h sjmp you_key_33 you_key_33: setb key_f acall led inc del1 MOV a,del1 cjne a,#0ffh ,jhg_1 MOV del1,#00h
inc del2 MOV a,del2 cjne a,#08h ,jhg_1 MOV del2,#00h setb flash_f setb set_f ; MOV key_power,#01h ; MOV key_data,#00h jhg_1: MOV p1,#00h MOV p3,#0ffh
clr key_f MOV a,p3 anl a ,#10000011b cjne a,#10000011b,you_key_33 setb key_f MOV p3,#0ffh MOV del1,#00h MOV del2,#00h
; acall beep MOV r6,#040h bb_1: ;!!!!!!!!!!!!!!!!!!!!!!!!!! clr ha setb key_f acall led acall led djnz r6 ,bb_1 setb ha ;****************************************** MOV dptr,#key_ord_1 MOV a,key_data MOV b,#03h;!!!!!!!!!!!!!!! mul ab jmp @a+dptr
key_ord_1: ljmp key_k0_0 ljmp key_k1_0 ljmp key_k2_0 ljmp key_k3_0
key_k0_0: ;no key ajmp key_1_end key_k1_0: ; key_3 acall key_3 ajmp key_1_end key_k2_0: ; key_2 acall key_2 ajmp key_1_end key_k3_0: ; key_1 inc key_power MOV a,key_power cjne a,#08h ,io_1
MOV key_power,#01h io_1: ajmp key_1_end ;************************************** proc key_3 key_3: MOV dptr,#led_ord_3 MOV a,key_power ;data MOV b,#02h mul ab jmp @a+dptr
led_ord_3: ajmp led_k0_2 ajmp led_k2_2 ajmp led_k1_2 ajmp led_k4_2 ajmp led_k3_2 ajmp led_k6_2 ajmp led_k5_2 ajmp led_k7_2
led_k0_2: ; nop ajmp led_jmp_5_end led_k1_2: ; al1 way off/on cpl al1_f jb flash_f ,tw_11 sjmp tw_21 tw_11: MOV c,al1_f MOV a,flash MOV acc.1 ,c MOV flash,a
tw_21: ajmp led_jmp_5_end led_k2_2: ;al1 timer
jb flash_f ,set_11 inc al1_min_t MOV a,al1_min_t cjne a,#60 ,set_12 MOV al1_min_t,#00h set_12: sjmp set_14
set_11: inc al1_min MOV a,al1_min cjne a,#60 ,set_14 MOV al1_min,#00h set_14:
ajmp led_jmp_5_end led_k3_2: ;al2 way off/on
cpl al2_f jb flash_f ,tw_12 sjmp tw_22 tw_12: MOV c,al2_f MOV a,flash MOV acc.2 ,c MOV flash,a
tw_22: ajmp led_jmp_5_end led_k4_2: ;al2 timer jb flash_f ,set_21 inc al2_min_t MOV a,al2_min_t cjne a,#60 ,set_22 MOV al2_min_t,#00h set_22: sjmp set_24
set_21: inc al2_min MOV a,al2_min cjne a,#60 ,set_24 MOV al2_min,#00h set_24:
ajmp led_jmp_5_end led_k5_2: ; al3 way off/on cpl al3_f jb flash_f ,tw_13 sjmp tw_23 tw_13: MOV c,al3_f MOV a,flash MOV acc.3 ,c MOV flash,a
tw_23: ajmp led_jmp_5_end led_k6_2: ;al3 timer jb flash_f ,set_31 inc al3_min_t MOV a,al3_min_t cjne a,#60 ,set_32 MOV al3_min_t,#00h set_32: sjmp set_34
set_31: inc al3_min MOV a,al3_min cjne a,#60 ,set_34 MOV al3_min,#00h set_34: ajmp led_jmp_5_end led_k7_2: ; turn off/on setb turn_f led_jmp_5_end: ret end ;**************************************** proc key_2 key_2: MOV dptr,#led_ord_3 MOV a,key_power ;data MOV b,#02h mul ab jmp @a+dptr
led_ord_3: ajmp led_k0_2 ajmp led_k2_2 ajmp led_k1_2 ajmp led_k4_2 ajmp led_k3_2 ajmp led_k6_2 ajmp led_k5_2 ajmp led_k7_2
led_k0_2: ; nop ajmp led_jmp_5_end led_k1_2: ; al1 way off/on ajmp led_jmp_5_end led_k2_2: ;al1 timer jb flash_f ,set_311 inc al1_hour_t MOV a,al1_hour_t cjne a,#20d ,set_321 MOV al1_hour_t,#00h set_321: sjmp set_341
set_311: inc al1_hour MOV a,al1_hour cjne a,#20d ,set_341 MOV al1_hour,#00h set_341: ajmp led_jmp_5_end led_k3_2: ;al2 way off/on ajmp led_jmp_5_end led_k4_2: ;al2 timer jb flash_f ,set_312 inc al2_hour_t MOV a,al2_hour_t cjne a,#20d ,set_322 MOV al2_hour_t,#00h set_322: sjmp set_342
set_312: inc al2_hour MOV a,al2_hour cjne a,#20d ,set_342 MOV al2_hour,#00h set_342: ajmp led_jmp_5_end led_k5_2: ; al3 way off/on ajmp led_jmp_5_end led_k6_2: ;al3 timer jb flash_f ,set_313 inc al3_hour_t MOV a,al3_hour_t cjne a,#20d ,set_323 MOV al3_hour_t,#00h set_323: sjmp set_343
set_313: inc al3_hour MOV a,al3_hour cjne a,#20d ,set_343 MOV al3_hour,#00h set_343: ajmp led_jmp_5_end led_k7_2: ; turn off/on led_jmp_5_end: ret end ;******************************************** led proc led_jmp_1 led_jmp_1: MOV dptr,#led_ord_3 MOV a,key_power ;data MOV b,#02h mul ab jmp @a+dptr
led_ord_3: ajmp led_k0_2 ajmp led_k2_2 ajmp led_k1_2 ajmp led_k4_2 ajmp led_k3_2 ajmp led_k6_2 ajmp led_k5_2 ajmp led_k7_2
led_k0_2: ; nop
setb flash_f MOV a,#89d MOV r7,#18d acall timer_led1 clr flash_f ajmp led_jmp_5_end led_k1_2: ; al1 way off/on MOV led1 ,#0bh
jnb al1_f,aal_1 MOV a,#0ch MOV led1,a aal_1: MOV led3,#1d MOV led2,#led_blk ajmp led_jmp_5_end led_k2_2: ;al1 timer
jb flash_f ,led_m11 MOV a,al1_min_t MOV r7,al1_hour_t sjmp led_m21 led_m11: MOV a,al1_min MOV r7,al1_hour led_m21: acall timer_led1 ajmp led_jmp_5_end led_k3_2: ;al2 way off/on MOV led1 ,#0bh
jnb al2_f,aal_2 MOV a,#0ch MOV led1 ,a
aal_2: MOV led3,#2d MOV led2,#led_blk ajmp led_jmp_5_end led_k4_2: ;al2 timer
jb flash_f ,led_m12 MOV a,al2_min_t MOV r7,al2_hour_t sjmp led_m22 led_m12: MOV a,al2_min MOV r7,al2_hour led_m22: acall timer_led1
ajmp led_jmp_5_end led_k5_2: ; al3 way off/on MOV led1 ,#0bh
jnb al3_f,aal_3 MOV a,#0ch MOV led1 ,a
aal_3: MOV led3,#3d MOV led2,#led_blk ajmp led_jmp_5_end led_k6_2: ;al3 timer
jb flash_f ,led_m13 MOV a,al3_min_t MOV r7,al3_hour_t sjmp led_m23 led_m13: MOV a,al3_min MOV r7,al3_hour led_m23: acall timer_led1 ajmp led_jmp_5_end led_k7_2: ; turn off/on MOV led3,#00h MOV led2,#0bh;led_b MOV led1,#0bh;led_b
led_jmp_5_end: acall led ret end timer_led1:
;*******************************min to led MOV B,#10D DIV AB MOV led2,a MOV a,b MOV led1,a ;*******************************hour to led MOV a,r7 MOV B,#10D DIV AB MOV r1,a MOV a,b MOV b,r1 MOV r1,a
jnz tt_2
tt_1: MOV a,#led_blk tt_2: MOV led3,a clr all_s
MOV a,b jz tt_3 setb all_s MOV led3 ,r1 tt_3: ret ;******************** ; LED_PROGRAM ;*******************
LED:
MOV c,flash_f jnc ffl_1 MOV c,timer_50ms jc ffl_1
;MOV led1,#led_blk ;MOV led2,#led_blk ;MOV led3,#led_blk ajmp led_end
ffl_1:
MOV dptr,#led_asc ;***************************led1 MOV a,led1 MOVc a,@a+dptr MOV c, timer_50ms MOV acc.0,c
MOV p1,a
clr led_1
acall timer_1ms
setb led_1 ;*************************led2 led_led2: MOV a,led2 MOVc a,@a+dptr MOV p1,a
clr led_2 acall timer_1ms setb led_2 ;*************************led3 led_led3: MOV a,led3 MOVc a,@a+dptr MOV c,all_s MOV acc.0 ,c
MOV p1,a
clr led_3 acall timer_1ms setb led_3 ;************************* led_end: MOV p1,#0ffh MOV a,p3 orl a,#11111000b MOV p3,a
ret led_asc: db 11101110B;0 "bafgecdh" db 10000100B;1 db 11011010B;2 db 11010110B;3 db 10110100B;4 db 01110110B;5 db 01111110B;6 db 11000100B;7 db 11111110B;8 db 11110110B;9 DB 00000000B;BLACK=>0aH DB 01111000B;f=>b dB 11101100B;e=>C DB 00110000B;1,=>D
;********************************** ;delay ;********************************
timer_1ms: push b MOV r2,#01h a_1: MOV b,#020h b_1: djnz b,b_1 djnz r2,a_1 pop b ret
;****************** ; TO-T1_INT T1定時器完成100毫秒定時(6M晶振) ;****************** T1: setb tr0 PUSH ACC ;程序參數(shù)保護(hù) PUSH b ; push psw inc time_led1 MOV a,time_led1 cjne a,#5d,t1_n1;判斷time_led1中是否滿5? MOV time_led1,#00h cpl timer_50ms;滿50毫秒后對50毫秒標(biāo)志位取反 ; MOV a,timers ; cjne a,#10d ,t1_n11;判斷timers中是否滿10? ;t1_n12: ; clr timer_1s;滿1秒后對1秒標(biāo)志位取反
sjmp t1_n1 ;********************************* t1_end_2: ajmp t1_end_1 ;******************************** ;t1_n11: jc t1_n12 ; setb timer_1s t1_n1: djnz timers ,t1_end_2 MOV timers,#tis inc time_led3 MOV a,time_led3 cjne a,#03d,t1_sec MOV time_led3,#00h cpl timer_3s t1_sec: inc sec MOV a,sec cjne a,#60d ,t1_end MOV sec,#00d jnb al1_f ,t1_al1 MOV a,al1_min_t MOV b,al1_hour_t MOV c ,aal1_f acall al_all MOV al1_min_t,a MOV al1_hour_t,b MOV aal1_f,c
t1_al1: jnb al2_f ,t1_al2 MOV a,al2_min_t MOV b,al2_hour_t MOV c ,aal2_f acall al_all MOV al2_min_t,a MOV al2_hour_t,b MOV aal2_f,c
t1_al2: jnb al3_f ,t1_al3 MOV a,al3_min_t MOV b,al3_hour_t MOV c ,aal3_f acall al_all MOV al3_min_t,a MOV al3_hour_t,b MOV aal3_f,c t1_al3: T1_END: t1_end_1: ;************************************ sub t0 timer clr c clr tr0 MOV b,timer_no MOV a,#til add a,tl0
addc a,b ;*******have 5 order MOV tl1 ,a
MOV a,#tih addc a, th0 MOV th1,a MOV th0,#00h MOV tl0,#00h setb tr1 pop psw pop b ; pop acc ; RETI ; ;************************************ beep: clr ha MOV r6,#060h bee_2: MOV r4,#0ffh bee_1: djnz r4 ,bee_1 djnz r6,bee_2 setb ha ret ;*************************************** stop: MOV a,#0ffh MOV p1,a MOV p3,a
MOV a,pcon orl a,#00000010b MOV pcon,a ret
al_out_way:
jnb aal1_f ,al_out1 MOV r3,#0ffh pnp_3: MOV b,#060h pnp_4: push b acall led_jmp_1;led_times
MOV c,timer_50ms MOV ha ,c pop b djnz b ,pnp_4 djnz r3 ,pnp_3 MOV c,al2_f orl c,al3_f jc al_out54 acall stop al_out54: clr aal1_f clr al1_f sjmp al_out4 al_out1: jnb aal2_f ,al_out2
clr pnp1 MOV r3,#0ffh pnp_1: MOV b,#020h pnp_2: push b acall led_jmp_1;led_times pop b djnz b ,pnp_2 djnz r3 ,pnp_1 setb pnp1 MOV c,al1_f orl c,al3_f jc al_out64 acall stop al_out64: clr aal2_f clr al2_f sjmp al_out4 al_out2: jnb aal3_f ,al_out3 clr pnp2
al_out3: jnb turn_f ,al_out4 acall stop al_out4: ret ;******************************************* al_all: jc al_all_1 dec a jnz al_all_1 MOV a,b jz al_all_3 dec b sjmp al_all_2
al_all_3: setb c sjmp al_all_1
al_all_2: MOV a,#60d al_all_1: ret ;看懂別人寫的匯編程序是很困難的事情,我希望有興趣的網(wǎng)友能幫我完成這段程序的中文注釋,這樣可以使初學(xué)者能夠更加容易學(xué)會編程. 這是上面程序匯編以后獲得的編程器燒寫文件:timer.hex 下載燒寫文件的方法:將鼠標(biāo)移到燒寫文件的超級鍵連處,點擊鼠標(biāo)的右鍵,選擇“目標(biāo)另存為(A)...”保存文件類型中不要選擇“文本文件”,應(yīng)該選擇“所有文件”,這樣就能獲得*.hex文件了。 |