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