久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于stc51單片機的電子時鐘設計

作者:51hei   來源:本站原創   點擊數:  更新時間:2010年06月29日   【字體:

硬件資源 

            焊接電路板中使用STC系列單片機,一個四位一體數碼管、一個二極管,以及一些必要輔助子電路。數碼管的位選端口為P3^0、P3^1、P3^2、P3^3,段選端口為P1的8個端口;調節小時、分鐘端口分別為P0^0、P0^4,二極管指示燈接P2^2口。

            由于使用的數碼管為共陽極數碼管,因此根據數碼管結構圖可知,P3口必須置高電平選通其中一位,P0口低電平點亮相應的斷碼,這和共陰極數碼管0x3f代表0不一樣,這里表示為0xc0,編程時應該注意。

 

            在數碼管的段碼連接上,我用的是a、b、c、d、e、f、g、h所對應的管腳11、7、4、2、1、10、5、3分別接P1^0、P1^1、P1^2、P1^3、P1^4、P1^5、P1^6、P1^7。因此,如果要顯示一個數字3的話,由排列 hgfe dcba 得到 1011 0000 就是0xb0,但是不太確定P1口高低位是如何的,因此必須經過測試程序進行確定。

 

#include< reg52.h>
#define uint unsigned int
void delay(uint cnt)    //延時(cnt)ms
{
        uint i;
        while(cnt--)
        {
                for(i=0;i< 110;i++);
        }
}

main()
{
        while(1)
        {
                P2=0x00;
                P3=0xaa;    //選通其中的兩位
                   P1=0xc0;    //段碼賦值1100 0000
                delay(20);
        }

}

 


            通過測試,得到的結果為0000,且指示燈亮。由于段碼:h、g、f、e、d、c、b、a對應著斷碼之P3=hgfedcba,所以低位對低位,a、b、c、d、e、f、g、h分別接P1^0、P1^1、P1^2、P1^3、P1^4、P1^5、P1^6、P1^7是正確的。

 

            當P1=0xc0時,P1=1100 0000,也就對應著a=b=c=d=e=f=0點亮(低電平),g=h=1熄滅(高電平)。兩外對于選位P3=0xaa,實際只接了P3的前4個端口,即低4位端口,也就是1010,其中P3^0=P3^2=0,而P3^1=P3^3=1。再根據數碼管選位端口12—9—8—6,我把12接P3^0、9接P3^1、8接P3^2、6接P3^3。

 

       12         

------------------------------------------------------------------------

A         B         C         D         E          F       G        H

 

11       7          4          2          1         10       5       3

------------------------------------------------------------------------

 

        9         

------------------------------------------------------------------------

A         B         C         D         E          F       G        H

 

11       7          4          2          1         10       5       3

------------------------------------------------------------------------

 

       8        

------------------------------------------------------------------------

A         B         C         D         E          F       G        H

 

11       7          4          2          1         10       5       3

------------------------------------------------------------------------

 

 6

------------------------------------------------------------------------

A         B         C         D         E          F       G        H

 

11       7          4          2          1         10       5       3

------------------------------------------------------------------------

 

            選位這里和硬件的連接方式有關,這里不再多說,不過做時鐘的時候只可能一次掃描一個位的段碼值,這里為了直觀起見,可以采用一一映射方式對選位的四個值進行編碼。

 

tab[4]={0x01,0x02,0x04,0x8};        //從左至右第n個數碼管點亮需要向P3口送入的值;

tab1[4]={tab[0],tab[1],tab[2],tab[3]};        //從左至右選通第幾個數碼管?

 

            這樣,只需要關注第幾個點亮就可以,不需要關注點亮時具體該向P3口輸出的值。我使用的數碼管并非標注的四位一體七段數碼管,中間含有兩個連體的二極管組成的兩點,可以做時鐘的小時同分鐘的分隔符,它由8號管腳選通,由h管腳也就是3號管腳置低電平點亮。

 

小結:
            選段選位怎么選不用太多關注,因為這和硬件的鏈接方式有關,再設計硬件的時候,盡量直觀。根據寄存器P1 的值,比如01111111,這里有個高位低位的問題,當把這個值送至寄存器P1時,是按照高地位匹配的方式進行分配的,當然要知道P1^0時低位,而P1^7是高位,于是有P1^7=0。

關閉窗口

相關文章

主站蜘蛛池模板: 成人依人 | 国产精品久久久久一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 国产一区二区精品在线观看 | 羞羞视频免费观看入口 | 精品欧美乱码久久久久久 | 欧美一级二级在线观看 | 九九在线视频 | 日韩在线精品 | 日韩欧美视频网站 | 国产精选一区 | 欧美一级做性受免费大片免费 | 神马影院一区二区三区 | 欧美激情一区二区 | 亚洲日本欧美 | 中文字幕精品一区久久久久 | 国产成人免费视频网站高清观看视频 | 鸳鸯谱在线观看高清 | 亚洲一级淫片 | 欧美激情在线精品一区二区三区 | 一区二区视频免费观看 | 免费观看一级特黄欧美大片 | 韩国成人在线视频 | 成人午夜精品 | 欧美成人一区二区三区片免费 | 精品国产青草久久久久福利 | 久久精品久久久久久 | 欧美一区二区三区高清视频 | 日韩av免费在线电影 | 一区二区三区欧美大片 | 美女激情av | 久久精品亚洲成在人线av网址 | 一级免费毛片 | 久久男人 | 精品久久久久久久 | 日韩精品视频在线 | 国产a视频 | 毛片99| 嫩草视频在线看 | 黄色免费网站在线看 | 天天精品综合 |