999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

單片機定時器動態掃描驅動8位LED數碼管的方法

2014-05-28 22:08:05劉曉鳳
新課程·中旬 2014年3期
關鍵詞:單片機

劉曉鳳

摘 要:采用動態掃描方式驅動數碼管一般外圍硬件較少,但是對單片機資源耗用巨大。介紹了單片機直接驅動8位數碼管時利用定時器中斷解決動態掃描工作方式下對單片機時間資源占用的問題。

關鍵詞:單片機;定時器中斷;數碼管驅動

數碼管的顯示方式可以分為動態和靜態兩種。動態掃描方式,是利用發光二極管的余輝效應和人眼的視覺暫留效應來實現的,只要在一定時間內數碼管的筆段亮的頻率夠快,人眼就看不出閃爍,一般外圍硬件較少,但是對單片機資源耗用巨大。靜態的也較鎖存方式,單片機送出數據后控制外圍鎖存器件鎖存數據,這樣數碼管筆段里的電流不變,數碼管穩定顯示,這樣單片機可以干別的活不用管數碼管了。這種方案的優點是對單片機的P口資源和時間耗用很少,但是數碼管的外圍輔助電路復雜。

多位數碼管的常用驅動方法有:

1.不需要芯片的驅動方式,掃描顯示

這種方式a~g和DP一共8根線分別占用單片機8個端口線,一般是一整個P口,然后有幾位數碼管就另外需要幾個控制線作為片選。對于MCU的時間占用幾乎是全時的,如果沒有其他的任務或者其他的任務耗用時間很少可以考慮這種顯示方式,比如時鐘、溫度計等等。

2.74LS164、74HC595等通用移位寄存器驅動

這是一種帶鎖存的串入并出芯片,需要占用單片機的2或3根線,如果需要多位驅動,一般使用譯碼器進行快速線選,或者使用權移位寄存器級聯的方式實現,這種驅動方式采用掃描顯示,對單片機端口的耗用比較少,但是因為是掃描方式所以對單片機時間耗用還是全時的。

3.MAX7219、HD7279、BC7281、ZLG7289、ZLG7290、WH8280、CH451、CH452等專用LED數碼管驅動芯片驅動

這是驅動LED數碼管最理想的芯片,從典型應用電路上看外圍元件極少,直接驅動,最吸引人的是使用了串行接口,只要三根線就可以驅動多達8位的數碼管,而且在送完數據后就不用管了,自己消零消隱,有些芯片還帶有8*8的鍵盤接口(鍵盤輸入的時候,從串口輸出鍵盤編碼供單片機讀取),但這種驅動方法往往價格比較昂貴。

本文重點介紹單片機直接驅動8位數碼管時利用定時器中斷解決動態掃描工作方式下對單片機時間資源占用的問題。單片機直接驅動8位數碼管的電路如右圖所示,電路中數碼管的a~h共8根線分別占用單片機8個端口線,連接到P0口,8位數碼管的公共端(公共陽極)連接到單片機的P2口,作為數碼管動態掃描時的片選,該端口通過上拉電阻與電源相連,以提高驅動能力,電路實際制作時,若驅動能力不夠,應考慮使用三極管驅動電路或驅動芯片。

在程序設計中,本人將數碼管的驅動程序放在定時器T0的中斷服務子程序中,定時器每申請一次中斷,點亮一位數碼管,在下一次中斷時,再點亮下一位數碼管,中斷八次后,八位數碼管依次點亮了一遍,重新回到第一位數碼管,再依次點亮。

程序如下:

#include“reg51.h”

#define DB P0

#define AB P2

unsigned char w=5,buffer[8]={10,10,10,10,10,10,10,10};

unsigned char h=8,m=30,s=0;

unsigned int time;

unsigned char code dsW[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsigned char code dsB[ ]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,

0xbf};

void T0_int( ) interrupt 1

{TH0=(65536-1843)/256;TL0=(65536-1843)%256;//定時器T0重置初值DB=0xff;//清屏

AB=~dsW[w];//送數碼管片選代碼

DB=dsB[buffer[w];//送相應數碼管的段代碼

w++;if(w>7)w=0;//準備點亮下一位數碼管

/*********以下為數字鐘程序********/

time++;

if(time>=250){buffer[2]=buffer[5]=10;}

if(time>=500) {buffer[2]=buffer[5]=11;s++;time=0;}

if(s>59) {s=0;m++;}

if(m>59) {m=0;h++;}

if(h>23) h=0;

buffer[0]=h/10;buffer[1]=h%10;

buffer[3]=m/10;buffer[4]=m%10;

buffer[6]=s/10;buffer[7]=s%10;

/*********以上為數字鐘程序********/

}

main()

{TH0=(65536-1843)/256;TL0=(65536-1843)%256;

TMOD=0x01;EA=1;ET0=1;TR0=1;

while(1);

}

程序中,由于數碼管的驅動放在定時器T0的中斷服務子程序中,只在響應T0中斷服務子程序時執行并占用MCU時間,其余MCU時間空閑,很好地解決了動態掃描時單片機被全時占用的問題。為避免數碼管抖動,定時器中斷間隔不宜過長,本文中定時器中斷間隔時間為2ms。

(作者單位 江蘇省溧水中等專業學校)

?誗編輯 薛直艷

摘 要:采用動態掃描方式驅動數碼管一般外圍硬件較少,但是對單片機資源耗用巨大。介紹了單片機直接驅動8位數碼管時利用定時器中斷解決動態掃描工作方式下對單片機時間資源占用的問題。

關鍵詞:單片機;定時器中斷;數碼管驅動

數碼管的顯示方式可以分為動態和靜態兩種。動態掃描方式,是利用發光二極管的余輝效應和人眼的視覺暫留效應來實現的,只要在一定時間內數碼管的筆段亮的頻率夠快,人眼就看不出閃爍,一般外圍硬件較少,但是對單片機資源耗用巨大。靜態的也較鎖存方式,單片機送出數據后控制外圍鎖存器件鎖存數據,這樣數碼管筆段里的電流不變,數碼管穩定顯示,這樣單片機可以干別的活不用管數碼管了。這種方案的優點是對單片機的P口資源和時間耗用很少,但是數碼管的外圍輔助電路復雜。

多位數碼管的常用驅動方法有:

1.不需要芯片的驅動方式,掃描顯示

這種方式a~g和DP一共8根線分別占用單片機8個端口線,一般是一整個P口,然后有幾位數碼管就另外需要幾個控制線作為片選。對于MCU的時間占用幾乎是全時的,如果沒有其他的任務或者其他的任務耗用時間很少可以考慮這種顯示方式,比如時鐘、溫度計等等。

2.74LS164、74HC595等通用移位寄存器驅動

這是一種帶鎖存的串入并出芯片,需要占用單片機的2或3根線,如果需要多位驅動,一般使用譯碼器進行快速線選,或者使用權移位寄存器級聯的方式實現,這種驅動方式采用掃描顯示,對單片機端口的耗用比較少,但是因為是掃描方式所以對單片機時間耗用還是全時的。

3.MAX7219、HD7279、BC7281、ZLG7289、ZLG7290、WH8280、CH451、CH452等專用LED數碼管驅動芯片驅動

這是驅動LED數碼管最理想的芯片,從典型應用電路上看外圍元件極少,直接驅動,最吸引人的是使用了串行接口,只要三根線就可以驅動多達8位的數碼管,而且在送完數據后就不用管了,自己消零消隱,有些芯片還帶有8*8的鍵盤接口(鍵盤輸入的時候,從串口輸出鍵盤編碼供單片機讀取),但這種驅動方法往往價格比較昂貴。

本文重點介紹單片機直接驅動8位數碼管時利用定時器中斷解決動態掃描工作方式下對單片機時間資源占用的問題。單片機直接驅動8位數碼管的電路如右圖所示,電路中數碼管的a~h共8根線分別占用單片機8個端口線,連接到P0口,8位數碼管的公共端(公共陽極)連接到單片機的P2口,作為數碼管動態掃描時的片選,該端口通過上拉電阻與電源相連,以提高驅動能力,電路實際制作時,若驅動能力不夠,應考慮使用三極管驅動電路或驅動芯片。

在程序設計中,本人將數碼管的驅動程序放在定時器T0的中斷服務子程序中,定時器每申請一次中斷,點亮一位數碼管,在下一次中斷時,再點亮下一位數碼管,中斷八次后,八位數碼管依次點亮了一遍,重新回到第一位數碼管,再依次點亮。

程序如下:

#include“reg51.h”

#define DB P0

#define AB P2

unsigned char w=5,buffer[8]={10,10,10,10,10,10,10,10};

unsigned char h=8,m=30,s=0;

unsigned int time;

unsigned char code dsW[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsigned char code dsB[ ]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,

0xbf};

void T0_int( ) interrupt 1

{TH0=(65536-1843)/256;TL0=(65536-1843)%256;//定時器T0重置初值DB=0xff;//清屏

AB=~dsW[w];//送數碼管片選代碼

DB=dsB[buffer[w];//送相應數碼管的段代碼

w++;if(w>7)w=0;//準備點亮下一位數碼管

/*********以下為數字鐘程序********/

time++;

if(time>=250){buffer[2]=buffer[5]=10;}

if(time>=500) {buffer[2]=buffer[5]=11;s++;time=0;}

if(s>59) {s=0;m++;}

if(m>59) {m=0;h++;}

if(h>23) h=0;

buffer[0]=h/10;buffer[1]=h%10;

buffer[3]=m/10;buffer[4]=m%10;

buffer[6]=s/10;buffer[7]=s%10;

/*********以上為數字鐘程序********/

}

main()

{TH0=(65536-1843)/256;TL0=(65536-1843)%256;

TMOD=0x01;EA=1;ET0=1;TR0=1;

while(1);

}

程序中,由于數碼管的驅動放在定時器T0的中斷服務子程序中,只在響應T0中斷服務子程序時執行并占用MCU時間,其余MCU時間空閑,很好地解決了動態掃描時單片機被全時占用的問題。為避免數碼管抖動,定時器中斷間隔不宜過長,本文中定時器中斷間隔時間為2ms。

(作者單位 江蘇省溧水中等專業學校)

?誗編輯 薛直艷

摘 要:采用動態掃描方式驅動數碼管一般外圍硬件較少,但是對單片機資源耗用巨大。介紹了單片機直接驅動8位數碼管時利用定時器中斷解決動態掃描工作方式下對單片機時間資源占用的問題。

關鍵詞:單片機;定時器中斷;數碼管驅動

數碼管的顯示方式可以分為動態和靜態兩種。動態掃描方式,是利用發光二極管的余輝效應和人眼的視覺暫留效應來實現的,只要在一定時間內數碼管的筆段亮的頻率夠快,人眼就看不出閃爍,一般外圍硬件較少,但是對單片機資源耗用巨大。靜態的也較鎖存方式,單片機送出數據后控制外圍鎖存器件鎖存數據,這樣數碼管筆段里的電流不變,數碼管穩定顯示,這樣單片機可以干別的活不用管數碼管了。這種方案的優點是對單片機的P口資源和時間耗用很少,但是數碼管的外圍輔助電路復雜。

多位數碼管的常用驅動方法有:

1.不需要芯片的驅動方式,掃描顯示

這種方式a~g和DP一共8根線分別占用單片機8個端口線,一般是一整個P口,然后有幾位數碼管就另外需要幾個控制線作為片選。對于MCU的時間占用幾乎是全時的,如果沒有其他的任務或者其他的任務耗用時間很少可以考慮這種顯示方式,比如時鐘、溫度計等等。

2.74LS164、74HC595等通用移位寄存器驅動

這是一種帶鎖存的串入并出芯片,需要占用單片機的2或3根線,如果需要多位驅動,一般使用譯碼器進行快速線選,或者使用權移位寄存器級聯的方式實現,這種驅動方式采用掃描顯示,對單片機端口的耗用比較少,但是因為是掃描方式所以對單片機時間耗用還是全時的。

3.MAX7219、HD7279、BC7281、ZLG7289、ZLG7290、WH8280、CH451、CH452等專用LED數碼管驅動芯片驅動

這是驅動LED數碼管最理想的芯片,從典型應用電路上看外圍元件極少,直接驅動,最吸引人的是使用了串行接口,只要三根線就可以驅動多達8位的數碼管,而且在送完數據后就不用管了,自己消零消隱,有些芯片還帶有8*8的鍵盤接口(鍵盤輸入的時候,從串口輸出鍵盤編碼供單片機讀取),但這種驅動方法往往價格比較昂貴。

本文重點介紹單片機直接驅動8位數碼管時利用定時器中斷解決動態掃描工作方式下對單片機時間資源占用的問題。單片機直接驅動8位數碼管的電路如右圖所示,電路中數碼管的a~h共8根線分別占用單片機8個端口線,連接到P0口,8位數碼管的公共端(公共陽極)連接到單片機的P2口,作為數碼管動態掃描時的片選,該端口通過上拉電阻與電源相連,以提高驅動能力,電路實際制作時,若驅動能力不夠,應考慮使用三極管驅動電路或驅動芯片。

在程序設計中,本人將數碼管的驅動程序放在定時器T0的中斷服務子程序中,定時器每申請一次中斷,點亮一位數碼管,在下一次中斷時,再點亮下一位數碼管,中斷八次后,八位數碼管依次點亮了一遍,重新回到第一位數碼管,再依次點亮。

程序如下:

#include“reg51.h”

#define DB P0

#define AB P2

unsigned char w=5,buffer[8]={10,10,10,10,10,10,10,10};

unsigned char h=8,m=30,s=0;

unsigned int time;

unsigned char code dsW[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsigned char code dsB[ ]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,

0xbf};

void T0_int( ) interrupt 1

{TH0=(65536-1843)/256;TL0=(65536-1843)%256;//定時器T0重置初值DB=0xff;//清屏

AB=~dsW[w];//送數碼管片選代碼

DB=dsB[buffer[w];//送相應數碼管的段代碼

w++;if(w>7)w=0;//準備點亮下一位數碼管

/*********以下為數字鐘程序********/

time++;

if(time>=250){buffer[2]=buffer[5]=10;}

if(time>=500) {buffer[2]=buffer[5]=11;s++;time=0;}

if(s>59) {s=0;m++;}

if(m>59) {m=0;h++;}

if(h>23) h=0;

buffer[0]=h/10;buffer[1]=h%10;

buffer[3]=m/10;buffer[4]=m%10;

buffer[6]=s/10;buffer[7]=s%10;

/*********以上為數字鐘程序********/

}

main()

{TH0=(65536-1843)/256;TL0=(65536-1843)%256;

TMOD=0x01;EA=1;ET0=1;TR0=1;

while(1);

}

程序中,由于數碼管的驅動放在定時器T0的中斷服務子程序中,只在響應T0中斷服務子程序時執行并占用MCU時間,其余MCU時間空閑,很好地解決了動態掃描時單片機被全時占用的問題。為避免數碼管抖動,定時器中斷間隔不宜過長,本文中定時器中斷間隔時間為2ms。

(作者單位 江蘇省溧水中等專業學校)

?誗編輯 薛直艷

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 欧美一级视频免费| 高清久久精品亚洲日韩Av| 五月天丁香婷婷综合久久| 久久伊人操| 国产日本欧美在线观看| 亚洲欧美h| 新SSS无码手机在线观看| 狠狠做深爱婷婷久久一区| 亚洲欧美成人在线视频| 午夜视频免费一区二区在线看| 午夜精品一区二区蜜桃| 蜜桃视频一区| 午夜精品一区二区蜜桃| 日韩大乳视频中文字幕 | 天堂中文在线资源| 亚洲69视频| 久久亚洲国产视频| 久久国产精品77777| 69免费在线视频| 国产在线一二三区| 日韩一级二级三级| 思思热精品在线8| 免费无码在线观看| 国产精品亚洲欧美日韩久久| 欧美va亚洲va香蕉在线| 色综合久久综合网| 欧美三级日韩三级| 国产自在自线午夜精品视频| 99国产在线视频| 日本不卡在线| 欧美色图久久| 自拍偷拍欧美日韩| 国产精品欧美日本韩免费一区二区三区不卡 | 国产交换配偶在线视频| 久久国产免费观看| 91久久天天躁狠狠躁夜夜| 国产成人精品一区二区| 久久中文字幕2021精品| 久久99这里精品8国产| 就去吻亚洲精品国产欧美| 国产视频入口| 精品福利国产| 欧美国产日韩在线观看| 亚洲欧美激情小说另类| 青青久久91| 91久久国产综合精品女同我| 国产激情国语对白普通话| 国产新AV天堂| 日韩一级二级三级| 中文字幕va| 久久一本日韩精品中文字幕屁孩| 日韩av资源在线| 亚洲三级色| av一区二区人妻无码| 一区二区日韩国产精久久| 毛片在线播放a| 欧美午夜精品| 国产微拍一区二区三区四区| 国产剧情国内精品原创| 超清无码熟妇人妻AV在线绿巨人| 久久男人视频| 国产精品亚欧美一区二区| 成人在线亚洲| 日本国产在线| 亚洲 欧美 偷自乱 图片| 国产无套粉嫩白浆| 香蕉久久永久视频| 91久久偷偷做嫩草影院精品| 午夜精品福利影院| 国产日本一线在线观看免费| av免费在线观看美女叉开腿| 欧美成人精品一级在线观看| 亚洲三级电影在线播放| 全色黄大色大片免费久久老太| 热久久这里是精品6免费观看| 中文字幕不卡免费高清视频| 91国语视频| 国产精品一老牛影视频| 成年免费在线观看| 日本人又色又爽的视频| 成人亚洲天堂| 国产精品嫩草影院视频|