大家好,我剛開始學(xué)習(xí)單片機(jī),看的是郭天祥的視頻教程。里面講到數(shù)碼管的課程比較能夠理解。但是本
人買了套學(xué)習(xí)板型號(hào)是YM-100的,里面的數(shù)碼管用到的是DTLED來控制的。一直琢磨但還是看的稀里糊涂的。
以下這個(gè)是光盤里面附帶的程序,請大蝦們幫忙分析一下。并幫忙寫個(gè)從0到100遞增的程序。謝謝
#include"reg51.h" #include"intrins.h" #define uchar unsigned char #define uint unsigned int #define nop _nop_() /* 定義空操作指令 */ sbit en =P1^7; /*DTLED-6顯示芯片使能端*/ sbit dout=P1^6; /*DTLED-6顯示芯片數(shù)據(jù)讀入端*/ sbit clk=P1^3; /*DTLED-6顯示芯片/時(shí)鐘芯片DS1302時(shí)鐘輸入端*/ uchar dispbuf[9]; /*顯示值存放陣列*/ void delay (uint value) /*延時(shí)副程式*/ { while (value!=0) value--; /*10US延時(shí)*/ } /*********************************************************************/ //串行發(fā)送DTLED-6顯示 //dispbuf0-dispbuf1-dispbuf2-dispbuf3-dispbuf4-dispbuf5-dispbuf6-dispbuf7-dispbuf8 // 小數(shù)點(diǎn) - 數(shù)碼管1- 數(shù)碼管2- 數(shù)碼管3- 數(shù)碼管4- 數(shù)碼管5- 數(shù)碼管6-ID識(shí)別碼-BZ識(shí)別碼 //00000xxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx //小數(shù)點(diǎn)=1~6,其它為不顯示 //數(shù)碼管1-6=0~15, //ID識(shí)別碼=0~15 //BZ識(shí)別碼=BZ.3為蜂鳴輸出控制位,0=關(guān)閉,1=打開 // BZ0~2為蜂鳴頻率輸出設(shè)定為,000=不分頻, 最高頻率輸出=4800Hz; // 001=一次分頻,頻率輸出=4800/ 2 =2400Hz; // 010=二次分頻,頻率輸出=4800/ 4 =1200Hz; // 011=三次分頻,頻率輸出=4800/ 8 =600Hz; // 100=四次分頻,頻率輸出=4800/ 16=300Hz; // 101=五次分頻,頻率輸出=4800/ 32=150Hz; // 110=六次分頻,頻率輸出=4800/ 64=75Hz; // 111=七次分頻,頻率輸出=4800/128=38Hz; //====================================================================== void tsled(void) /*串行發(fā)送DTLED-6顯示副程式*/ { char ts0,i,j; clk=0; en=0; delay(10); for(j=0;j<9;j++) { ts0=dispbuf[j]; for(i=0;i<4;i++) /*發(fā)小數(shù)點(diǎn)碼8,4,2,1*/ { clk=1; ts0=ts0<<1; if(AC==1) dout=1; else dout=0; clk=0; nop; delay(3); } } en=1; } /*返回主程式*/ void main(void) { uchar i,j,dat=0; dispbuf[7]=0x01; /*ID號(hào)碼*/ dispbuf[8]=0x00; /*蜂鳴器關(guān)閉*/ while(1) { for(i=1;i<=6;i++) { dispbuf[0]=i; /*小數(shù)點(diǎn)位顯示*/ tsled(); delay(50000); } dispbuf[0]=0x00; /*關(guān)閉小數(shù)點(diǎn)位顯示*/ for(i=0;i<3;i++) /*數(shù)據(jù)顯示*/ for(j=1;j<=6;j++) { dispbuf[j]=dat++; tsled(); delay(50000); } } }
你好 我也是初學(xué)的 想和你交個(gè)朋友
我的qq745591666
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |