精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

串行口驅動LED顯示的C語言源代碼

Wildesbeast ? 來源:單片機教程網 ? 作者:單片機教程網 ? 2020-09-26 11:36 ? 次閱讀

//本文介紹一個串行口驅動led顯示的c語言源程序

//一個74hc595位移寄存器驅動三極管驅動led位,

//兩個74hc595驅動led段,方式位5位x8段x2=10個數碼管

//5分頻,每次掃描時間位1.25ms

//定義特殊符號

#define nul 0xf

#define qc 0xc

#define qb 0xb

#define q_ 0xa

#define q__ 0xd

#define q___ 0xe

#define qp 0x10

#define qe 0x11

#define qj 0x12

#define qn 0x13

#define qf 0x14

#define qa 0x15

#define qr 0x16

#define qd 0x17

#define qu 0x18

#define ql 0x19

#define qh 0x1a

#define qwen 0x1b

#define qt 0x1c

#define qla 0x1d

#define qlb 0x1e

#define qlc 0x1f

#define qld 0x20

#define qle 0x21

#define qlf 0x22

#define qlg 0x23

#define qldp 0x24

//顯示段信息,不同led排列組合的段信息只需更改8個數值即可。

//因此,該定義具有通用性。

// 顯示

// -d 20

// |c 40 |e 10

// - g 80

// |b 2 |f 4

// _a1 .dp 8

#define pa 1

#define pb 2

#define pc 0x40

#define pd 0x20

#define pe 0x10

#define pf 4

#define pg 0x80

#define pdp 8

//--------------

#define l0 pdp+pg

#define l1 255-pf-pe

#define l2 pdp+pc+pf

#define l3 pdp+pc+pb

#define l4 pdp+pa+pb+pd

#define l5 pdp+pb+pe

#define l6 pdp+pe

#define l7 pdp+pc+pg+pb+pa

#define l8 pdp

#define l9 pdp+pb

#define la pdp+pa

#define lb pdp+pd+pe

#define lc pdp+pg+pe+pf

#define ld pdp+pc+pd

#define le pdp+pe+pf

#define lf pdp+pe+pf+pa

#define l_ 255-pg

#define lnul 255

#define ll pdp+pg+pd+pf+pe

#define lp pdp+pa+pf

#define lt pdp+pd+pe+pf

#define lr pdp+pe+pf+pg+pa

#define ln pdp+pg+pa

#define lh pdp+pd+pe+pa

#define ly pdp+pb+pd

#define lu pdp+pg+pd

#define l__ pdp+pg+pb+pc+pe+pf

#define l___ l__-pg

#define l_1 255-pa

#define l_2 255-pa-pg

#define lj 255-(pe+pf+pa)

#define lwen 255-(pd+pe+pg+pb)

#define lall 0

#define lla 255-pa

#define llb 255-pb

#define llc 255-pc

#define lld 255-pd

#define lle 255-pe

#define llf 255-pf

#define llg 255-pg

#define lldp 255-pdp

//串行口驅動led顯示程序定義結束

//串行送出的位信息,目前是10位led顯示。

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

//串行送出的短信息。

unsigned char code un_disp[]={l0,l1,l2,l3,l4,l5,l6,l7,l8,l9,l_,lb,lc,l__,l___,lnul,lp,le,lj,ln,lf,la,lr,ld,lu,

ll,lh,lwen,lt,lla,llb,llc,lld,lle,llf,llg,lldp,lnul};

sbit d_clk=P0^0; //移位時鐘

sbit d_dat=P0^1; //移位數據

sbit d_st=P0^2; //移位鎖定

unsigned char dig; //位掃描計數器

unsigned char d[10]; //顯示緩沖

//送出8位串行數據

void out_disp(unsigned char dd) {

unsigned char i;

for (i=0;i《8;i++) {

if (dd&1) d_dat=1; else d_dat=0;

d_clk=0;

dd》》=1;

d_clk=1;

}

}

//控制小數點和閃爍,顯示數據|0x040表示有小數點;顯示數據|0x80表示閃爍。

void out_displ(unsigned char dd) {

if (dd》=0x80) {

if (s001》flash_time) {out_disp(0xff);return;}

}

dd&=0x7f;

if (dd》=0x40) {

dd=un_disp[dd&0x3f]^pdp;

} else dd=un_disp[dd];

out_disp(dd);

}

unsigned int s001; //閃爍時間參考

void int_t0(void) interrupt 1 {

unsigned char dd;

TL0=TL0+30;TH0=0xfb; //800

time++;

if ((++s001)》=800) s001=0;

// 顯示

if ((++dig)》4) dig=0;

d_st=0;

dd=d[dig+5];

out_displ(dd);

dd=d[dig];

out_displ(dd);

out_disp(un_dig[dig]);

d_st=1;

}

//串行口驅動led顯示程序主程序開始

void main(void) {

unsigned char i;

TMOD=0x1;

TR0=ET0=1;

EA=1;

for (i=0;i《10;i++) d[i]=i; //display test

while (1) {}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23153

    瀏覽量

    658614
  • 三極管
    +關注

    關注

    142

    文章

    3603

    瀏覽量

    121674
  • 寄存器
    +關注

    關注

    31

    文章

    5325

    瀏覽量

    120052
收藏 人收藏

    評論

    相關推薦

    串行口的編程

    如何用簡單的C語言串行口
    發表于 12-22 16:22

    《微機原理與匯編語言》89C51串行口串行通信技術

    `《微機原理與匯編語言》89C51串行口串行通信技術[hide][/hide]`
    發表于 04-05 12:51

    51單片機 匯編語言 串行口發送,求代碼

    用匯編語言寫,串行口發送10個數據,用中斷的方式,求代碼
    發表于 12-14 16:56

    如何用串行口擴展并行輸出口

    串行口擴展并行輸出口一、實驗目的二、實驗內容三、實驗步驟四、C代碼如下五、實驗結果六、實驗體會一、實驗目的掌握AT89C52串行口方式0的
    發表于 12-06 06:20

    單片機串行口應用舉例

    單片機串行口應用舉例:       在計算機分布式測控系統中,經常要利用串行通信方式進行數據傳輸。80C51單片機的串行口
    發表于 12-03 22:54 ?105次下載

    80C51的串行口

    80C51的串行口:6.2.1  80C51串行口的結構      有兩個物理上獨立的接收、發送緩沖器SBUF,它們占用同一地址99H
    發表于 12-03 22:56 ?30次下載

    串行口動態掃描顯示電路

    單片機并行I/O數量總是有限的,有時并行需作其他更重要的用途,一般也不會用數量眾多的并行I/O專門用來驅動顯示電路,能否用80
    發表于 04-03 23:49 ?1319次閱讀

    PC串行口引腳定義圖

    PC串行口引腳定義圖 PC/AT 機上的串行口是 9 針公插座,引腳定義為:  
    發表于 11-27 12:38 ?1806次閱讀
    PC<b class='flag-5'>串行口</b>引腳定義圖

    串行口動態掃描顯示電路編程實例

    串行口動態掃描顯示電路編程實例 單片機并行I/O數量總是有限的,有時并行需作其他更重要的用途,一般也不會用
    發表于 03-14 14:18 ?1908次閱讀
    <b class='flag-5'>串行口</b>動態掃描<b class='flag-5'>顯示</b>電路編程實例

    51系列單片機中模擬串行口C語言實現_栗小寬

    5 1 系列單片機中模擬串行口C 語言實現.pdf
    發表于 10-29 11:34 ?4次下載

    串行口

    串行口
    發表于 12-16 15:36 ?0次下載

    《微機原理與匯編語言》89C51串行口串行通信技術

    《微機原理與匯編語言》89C51串行口串行通信技術
    發表于 12-14 15:07 ?0次下載

    SPI總線驅動C語言源代碼詳細概述

    本文檔的主要內容詳細介紹的是SPI總線驅動C語言源代碼詳細概述。
    的頭像 發表于 09-26 11:36 ?7203次閱讀

    基于C語言LED呼吸燈簡單源代碼

    基于C語言LED呼吸燈簡單源代碼
    發表于 03-10 10:49 ?16次下載
    基于<b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>LED</b>呼吸燈簡單<b class='flag-5'>源代碼</b>

    CC2540驅動C語言源代碼

    CC2540驅動C語言源代碼
    發表于 03-10 11:13 ?5次下載
    CC2540<b class='flag-5'>驅動</b>的<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>源代碼</b>