单片机--定时器/计数器实验
目的:利用“模塊化單片機(jī)教學(xué)實(shí)驗(yàn)平臺”,加深對單片機(jī)的中斷系統(tǒng)的理解。
任務(wù):利用單片機(jī)的中斷系統(tǒng)完成程序設(shè)計(jì)。
使用AT89S52單片機(jī)的定時器/計(jì)數(shù)器T0控制實(shí)驗(yàn)箱母板上的LED1每隔1秒點(diǎn)亮一次(即亮1秒,滅1秒,如此反復(fù))。LED1的陰極與AT89S52單片機(jī)的P1.5引腳連接。(AT89S52單片機(jī)的T1中斷入口也為001BH。)
①關(guān)掉實(shí)驗(yàn)箱電源。將CPU 板插接在JK1、JK2 上,注意CPU 板的插接方向。按照前面連接關(guān)系表將硬件連接好。
②將AT89S52 芯片插在CPU 板的CPU 插座上(不要插反)。母板上電。
③運(yùn)行Keil 開發(fā)環(huán)境,按照“模塊化單片機(jī)教學(xué)實(shí)驗(yàn)平臺配套的實(shí)驗(yàn)指導(dǎo)書1.2.3 節(jié)”介紹的方法建立工程exp8.uV2,CPU 為AT89S52,不包含啟動文件STARTUP.A51。
④把示例源程序exp8.asm 加入到工程exp8.uV2,并設(shè)置工程exp8.uV2 屬性,將其晶振頻率設(shè)置為11.0592MHz,選擇輸出可執(zhí)行文件。
⑤構(gòu)造(Build)工程exp8.uV2。
⑥通過PROGISP 燒寫軟件,利用ISP 下載線(見“模塊化單片機(jī)教學(xué)實(shí)驗(yàn)平臺配套的實(shí)驗(yàn)指導(dǎo)書1.3 節(jié)”)把HEX 文件下載到單片機(jī)中。
⑦下載成功后,觀察母板上的LED1。
硬件連線:
| CPU板 | 母板 |
| P2:P1.5 | J48:LED1 |
擴(kuò)展實(shí)驗(yàn):使用AT89S52 單片機(jī)的定時器/計(jì)數(shù)器控制實(shí)驗(yàn)箱母板上的LED1 亮2 秒,滅1 秒,亮2 秒,滅1 秒,如此反復(fù)。LED1 的陰極與AT89S52 單片機(jī)的P1.5引腳連接。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
實(shí)驗(yàn)時使用進(jìn)位標(biāo)志位C為標(biāo)志變量,導(dǎo)致程序錯誤。實(shí)驗(yàn)中使用特殊功能寄存器要考慮到是否會影響到程序的執(zhí)行,最好避免使用特殊功能寄存器,以免產(chǎn)生意料外的情況。
(1)基本實(shí)驗(yàn)
ORG 0000H
LJMP MAIN ??????????? ??
ORG 001BH
LJMP ON
MAIN:?
SETB ET1 ?????????????? ;打開中斷分開關(guān)
SETB EA?????????????????? ;打開中斷總開關(guān)
MOV R0,#0?????????????? ;初始化r0
MOV TMOD,#10H?? ;設(shè)置計(jì)時器模式
MOV TL1,#0B0H????? ;初始值低八位
MOV TH1,#03CH???? ;初始值低八位
MOV A,#60D??????????? ;設(shè)置初始A
SETB TR1 ?????????????? ;開始計(jì)時
LJMP $????????????????????? ;
ON:
CJNE R0,#0,OF???????? ;以R0判斷燈是否點(diǎn)亮
DEC A?????????????????????? ;A減一
CJNE A,#00H,J???????? ;判斷是否相同? 不相同轉(zhuǎn)移(結(jié)束)
CLR P1.5?????????????????? ;點(diǎn)亮燈
MOV R0,#1?????????????? ;R0置位1
MOV TL1,#0B0H????? ;初始化計(jì)時器
MOV TH1,#03CH???? ;
MOV A,#60D??????????? ;設(shè)置時間
J:???????????????????????????????
RETI?????????????????????????
OF:
DEC A
CJNE A,#00H,K
SETB P1.5???????????????? ;關(guān)閉燈
MOV R0,#0
MOV TL1,#0B0H
MOV TH1,#03CH
MOV A,#60D
K:
RETI
END
(2)擴(kuò)展實(shí)驗(yàn)
ORG 0000H
LJMP MAIN ??????????? ??;除修改時間外與上個實(shí)驗(yàn)程序無異
ORG 001BH
LJMP ON
MAIN:?
SETB ET1
SETB EA
MOV R0,#0
MOV TMOD,#10H
MOV TL1,#0B0H
MOV TH1,#03CH
MOV A,#20D?????????????????? ;修改所設(shè)計(jì)延遲從3S->1s
SETB TR1
LJMP $
ON:
CJNE R0,#0,OF
DEC A
CJNE A,#00H,J
CLR P1.5
MOV R0,#1
MOV TL1,#0B0H
MOV TH1,#03CH
MOV A,#40D??????????? ;修改所設(shè)計(jì)延遲從3S->2s
J:
RETI
OF:
DEC A
CJNE A,#00H,K
SETB P1.5
MOV R0,#0
MOV TL1,#0B0H
MOV TH1,#03CH
MOV A,#20D??????????? ;修改所設(shè)計(jì)延遲從3S->1s
K:
RETI
END
總結(jié)
以上是生活随笔為你收集整理的单片机--定时器/计数器实验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity | 如何调用摄像头拍照
- 下一篇: 刚找工作闲谈