日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]  今兒學習了動態(tài)數(shù)碼管顯示的知識,其實很簡單,只要是首先讓數(shù)碼管逐個顯示1,2,3,4...間隔1秒鐘,用定時器0控制時間,未選也用一個table數(shù)組表示出來,然后減小間隔時間,我這用的是5ms顯示效果不錯,利用人眼的

  今兒學習了動態(tài)數(shù)碼管顯示的知識,其實很簡單,只要是首先讓數(shù)碼管逐個顯示1,2,3,4...間隔1秒鐘,用定時器0控制時間,未選也用一個table數(shù)組表示出來,然后減小間隔時間,我這用的是5ms顯示效果不錯,利用人眼的視覺暫留(<20ms),將東西完全顯示在數(shù)碼管上。

  注意:如果在設計硬件電路時候,有雨動態(tài)顯示數(shù)碼管時候,亮度較靜態(tài)顯示時候低,所以,限流電阻應取小一些。(具體電路網(wǎng)上應該找得到)

  調(diào)試經(jīng)驗如下:

  1.若keil調(diào)試出現(xiàn)亂碼,還有出現(xiàn)invalid ...path原因:(1)工程文件名是否存在中文,最好修改為英文;(2)程序文件中是否出現(xiàn)中文狀態(tài)下的字符,建議自己編寫,或者直接在自己存放的子函數(shù)中(.c文件)直接復制粘貼過來

  2.中斷服務程序中莫忘aa++;否則定時器不起作用

/*
####################################################
數(shù)碼管(共陰)
段選位 P2口
片選位 P1.2 P1.1 P1.0
格式 dp g f e d c b a

P1口(片選位):
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
位1 位2 位3 位4 位5 位6 位7 位8
P2口(數(shù)據(jù)位):
0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0x6f
0 1 2 3 4 5 6 7 8 9
0x77 0x7c 0x39 0x5e 0x79 0x71
A B C D E F
####################################################
*/
#include
#define uchar unsigned char
#define uint unsigned int

uchar code duan[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code wei[]={0x00,0x01,0x02,0x03,
0x04,0x05,0x06,0x07};

uchar numwe,numdu,aa;

void main ()
{
/*# 定時器0初始化 #*/
TMOD=0x01; //1.選擇定時器0,工作方式1(16位定時器,最大值65536)
TH0=(65536-10000)/256; //2.對寄存器賦初值
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;

numwe=0; //段位賦初值
numdu=1;

while(1)
{
P1=wei[numwe]; //第1位數(shù)碼管顯示1
P2=duan[numdu];
if(aa==1)
{
aa=0;
if(numwe==8)
numwe=0;
numwe++;
P1=wei[numwe];
if(numdu==8)
numdu=0;
numdu++;
P2=duan[numdu];
}
}
}

void timer0() interrupt 1
{
TH0=(65536-5000)/256; //中斷服務程序中記得要對寄存器重裝初值哦!
TL0=(65536-5000)%256;
aa++;
}


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉