大家一起來(lái)學(xué)單片機(jī):LED花樣燈
發(fā)布時(shí)間:2008/5/27 0:00:00 訪問(wèn)次數(shù):1164
    
     恒堅(jiān)單片機(jī)實(shí)驗(yàn)軟件上的一個(gè)程序。注釋完整。
    <-- #begineditable "2" --> led顯示實(shí)驗(yàn):主要掌握單片機(jī)的基本vo操作,主要是指如何操作端o。其中含有將操作端o做為8位寄存器尋址方式的操作和按位尋址的操作方式,另外還包含有軟件延時(shí):預(yù)頂義,存貯單元硬件描術(shù)表的建立。
    源程序:<-- #endeditable -->
    <-- #begineditable "3" -->
    beep bit p3.7 ;蜂鳴器定義對(duì)應(yīng)的單片機(jī)引腳
    led1 bit p1.0 ;第一個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led2 bit p1.1 ;第二個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led3 bit p1.2 ;第三個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led4 bit p1.3 ;第四個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led5 bit p1.4 ;第五個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led6 bit p1.5 ;第六個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led7 bit p1.6 ;第七個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led8 bit p1.7 ;第八個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    org 00h;程序開(kāi)始
    jmp main;跳轉(zhuǎn)到主程序
    org 030h;主程序從30h開(kāi)始
    main:mov sp,#30h;初始化堆棧,這一條語(yǔ)句不能放到初始化程序里
   否則程序不能正確返回,為什么?
    lcall rest ;調(diào)用初始化程序,進(jìn)行初始化
    lcall pro_led ;調(diào)用led顯示程序
    jmp main;返回開(kāi)始
    rest:mov a,#00h ;初始化程序,首先將累加器清零
    mov b,#00h;累加器b也請(qǐng)零
    mov p0,#0 ;所有p0口置低位,禁止數(shù)碼管顯示
    mov p1,0ffh;p1口高位,led也不顯示
    mov p2,#255;p2口也高位,禁止數(shù)碼管顯示,
   將立即數(shù)寫(xiě)成#255(后面沒(méi)有h)表示十進(jìn)制,
   如果寫(xiě)成#0ffh(后面有個(gè)h)表示十六進(jìn)制,
   如果十六進(jìn)制高位大于9,必須在前面加上0,
   如0a0h,結(jié)果還是 a0h(160),0ah(10)否則編譯不能通過(guò)
    clr beep;禁止蜂鳴器發(fā)出聲音,如果寫(xiě)成setb beep(置位蜂鳴器)
   則蜂鳴器發(fā)出聲音
    ret ;子程序返回
    ******************************************* 注意:注釋字符前一定要加上;
    ***********************
   led顯示程序用來(lái)控制led的顯示,通常用在街道霓虹等控制等
   采用兩種不同的走燈方式,可以采用不同的策略,組合出不同的走燈花樣
   單片機(jī)學(xué)習(xí)的竅門(mén)就是多實(shí)踐,希望大家多從應(yīng)用程序中得到啟示
   不斷進(jìn)步,從而提高自己的單片機(jī)應(yīng)用能力
    pro_led: ;led顯示程序開(kāi)始
    setb led1;顯示第一個(gè)led
    clr led8 ;清除前一個(gè)led
    lcall delay ;延時(shí)
    setb led2 ;進(jìn)入第二個(gè)循環(huán),顯示第二個(gè)led
    clr led1 ;清除第一個(gè)led
    lcall delay ;如此反復(fù),直到所有的led都循環(huán)過(guò)
    setb led3
    clr led2
    lcall delay
    setb led4
    clr led3
    lcall delay
    setb led5
    clr led4
    lcall delay
    setb led6
    clr led5
    lcall delay
    setb led7
    clr led6
    lcall delay
    setb led8
    clr led7
    lcall delay
    again: ;開(kāi)始另外一種顯示方式
    setb led7 ;點(diǎn)亮第7個(gè)led
    clr led8
    
     恒堅(jiān)單片機(jī)實(shí)驗(yàn)軟件上的一個(gè)程序。注釋完整。
    <-- #begineditable "2" --> led顯示實(shí)驗(yàn):主要掌握單片機(jī)的基本vo操作,主要是指如何操作端o。其中含有將操作端o做為8位寄存器尋址方式的操作和按位尋址的操作方式,另外還包含有軟件延時(shí):預(yù)頂義,存貯單元硬件描術(shù)表的建立。
    源程序:<-- #endeditable -->
    <-- #begineditable "3" -->
    beep bit p3.7 ;蜂鳴器定義對(duì)應(yīng)的單片機(jī)引腳
    led1 bit p1.0 ;第一個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led2 bit p1.1 ;第二個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led3 bit p1.2 ;第三個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led4 bit p1.3 ;第四個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led5 bit p1.4 ;第五個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led6 bit p1.5 ;第六個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led7 bit p1.6 ;第七個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    led8 bit p1.7 ;第八個(gè)數(shù)碼管對(duì)應(yīng)的引腳
    org 00h;程序開(kāi)始
    jmp main;跳轉(zhuǎn)到主程序
    org 030h;主程序從30h開(kāi)始
    main:mov sp,#30h;初始化堆棧,這一條語(yǔ)句不能放到初始化程序里
   否則程序不能正確返回,為什么?
    lcall rest ;調(diào)用初始化程序,進(jìn)行初始化
    lcall pro_led ;調(diào)用led顯示程序
    jmp main;返回開(kāi)始
    rest:mov a,#00h ;初始化程序,首先將累加器清零
    mov b,#00h;累加器b也請(qǐng)零
    mov p0,#0 ;所有p0口置低位,禁止數(shù)碼管顯示
    mov p1,0ffh;p1口高位,led也不顯示
    mov p2,#255;p2口也高位,禁止數(shù)碼管顯示,
   將立即數(shù)寫(xiě)成#255(后面沒(méi)有h)表示十進(jìn)制,
   如果寫(xiě)成#0ffh(后面有個(gè)h)表示十六進(jìn)制,
   如果十六進(jìn)制高位大于9,必須在前面加上0,
   如0a0h,結(jié)果還是 a0h(160),0ah(10)否則編譯不能通過(guò)
    clr beep;禁止蜂鳴器發(fā)出聲音,如果寫(xiě)成setb beep(置位蜂鳴器)
   則蜂鳴器發(fā)出聲音
    ret ;子程序返回
    ******************************************* 注意:注釋字符前一定要加上;
    ***********************
   led顯示程序用來(lái)控制led的顯示,通常用在街道霓虹等控制等
   采用兩種不同的走燈方式,可以采用不同的策略,組合出不同的走燈花樣
   單片機(jī)學(xué)習(xí)的竅門(mén)就是多實(shí)踐,希望大家多從應(yīng)用程序中得到啟示
   不斷進(jìn)步,從而提高自己的單片機(jī)應(yīng)用能力
    pro_led: ;led顯示程序開(kāi)始
    setb led1;顯示第一個(gè)led
    clr led8 ;清除前一個(gè)led
    lcall delay ;延時(shí)
    setb led2 ;進(jìn)入第二個(gè)循環(huán),顯示第二個(gè)led
    clr led1 ;清除第一個(gè)led
    lcall delay ;如此反復(fù),直到所有的led都循環(huán)過(guò)
    setb led3
    clr led2
    lcall delay
    setb led4
    clr led3
    lcall delay
    setb led5
    clr led4
    lcall delay
    setb led6
    clr led5
    lcall delay
    setb led7
    clr led6
    lcall delay
    setb led8
    clr led7
    lcall delay
    again: ;開(kāi)始另外一種顯示方式
    setb led7 ;點(diǎn)亮第7個(gè)led
    clr led8
熱門(mén)點(diǎn)擊
- 單片機(jī)多字節(jié)BCD碼加法減法
- 單片機(jī)C51串口中斷接收和發(fā)送測(cè)試
- 用單片機(jī)制作通用型電視遙控器
- 24C04在2051系統(tǒng)中的使用
- 單片機(jī)系統(tǒng)低功耗設(shè)計(jì)策略
- DVB-C信道解調(diào)解碼芯片GX1001的設(shè)計(jì)
- C51絕對(duì)地址訪問(wèn)
- 大家一起來(lái)學(xué)單片機(jī):LED花樣燈
- 用MCS-51單片機(jī)串行口對(duì)MAX7219及
- 測(cè)試PIC單片機(jī)如何省電
推薦技術(shù)資料
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級(jí)芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究