新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)C語言程序設(shè)計(jì)(13)

        PIC單片機(jī)C語言程序設(shè)計(jì)(13)

        作者: 時(shí)間:2013-02-05 來源:網(wǎng)絡(luò) 收藏

        1. 硬件電路和功能

          (1)硬件電路

          按照上述交通路口紅綠燈指示圖案顯示的要求。用PIC16F877設(shè)計(jì)的硬件電路如圖57所示。

        圖57

          從圖57可知,PIC16F877有40個(gè)引腳,其I/O口比PIC16F84A多,完全可以滿足分時(shí)顯示上述交通指示圖案的要求。

          需要說明的是,我們?cè)谇懊娴倪B載文章中介紹程序時(shí),都是以1 8腳的PlC16F84A單片機(jī)為例的,通過本實(shí)例大家會(huì)看到。只要熟悉了PlC16F84A。會(huì)很容易掌握其他多引腳的使用方法的。

          由于I/O端1:3每一位的輸出電流有限, 即≤ 20mA, 且PORTA、PORTB和PORTE口輸出電流的總和不得大于200mA,PORTC和PORTD 口輸出電流的總和亦不得大于200mA,而從圖57可以看出,PIC16F877單片機(jī)的PORTB的PB0~PB7口和PC0、PC1口外接的高亮度LED從十余只到數(shù)十只不等,所以對(duì)于所有外接有高亮度LED的I/O 口,我們都增加了功率管輸出驅(qū)動(dòng)接1:3電路,且外接高亮度LED數(shù)量不同(即電流大小的不同),驅(qū)動(dòng)電路亦有所不同。

          (2)PIC16F877端口功能位分配

          ① 管理手掌形紅色高亮LED指示燈的端口位。

          利用PIC16F877的RB0位。外接單向可控硅SCR1(2A)和多個(gè)紅色高亮LED (通過布線使多個(gè)LED組成圖55a所示的手掌圖形),采用靜止顯示方式。通常,組成交通燈的手掌圖形大約需要·60只~7O只LED,在我們的設(shè)計(jì)中,RB0口外接的SCR1回路可接多達(dá)100只高亮LED。足以滿足設(shè)計(jì)要求。而RB1位則外接一只PNP型功率三極管V1(2A)和限流電阻R0、偏置電阻R1,組成+24V開關(guān)電路,由C程序控制RB0口和RB1 1:3同步定時(shí)工作,通過V1的導(dǎo)通或截止來控制是否為SCR1提供+24V工作電壓,從而達(dá)到令SCR1回路中的紅色高亮LED定時(shí)點(diǎn)亮或關(guān)閉的目的。

          ② 管理仿人形綠色高亮LED指示燈的端13位。

          利用PIC16F877的RB2位,外接單向可控硅SCR2(2A)和多個(gè)紅色高亮LED(通過布線使多個(gè)LED組成圖55b所示的仿人形圖形),采用靜止顯示方式。組成該圖形大約需要70只LED。而RB3位則外接一只PNP型功率三極管V2(2A)和電阻R2、R3,組成+24V開關(guān)電路。

          該電路的工作模式與前面介紹的手掌形指示燈完全相似,此處不再贅述。

          ③ 管理仿自行車形綠色高亮LED指示燈的端口位。

          利用RC0、RC1~RC7位, 外接NPN型功率三極管V5~V1 2和若干綠色高亮LED(通過布線使之組成圖55c所示的可控制自行車動(dòng)態(tài)顯示的圖形。該電路工作時(shí),通過控制排列在自行車車輪上的LED分時(shí)亮滅,來使人看到好象自行車在轉(zhuǎn)動(dòng)似的圖像, 以提示人或非機(jī)動(dòng)車可以通行。

          ④ 管理圓形綠色高亮LED的端口位。

          利用RB4和RB5外接的單向可控硅SCR3及V3等相關(guān)電路,控制如圖56所示的綠色高亮LED圓形指示燈,以提示運(yùn)行機(jī)動(dòng)車通行。

          ⑤ 管理圓形紅色高亮LED的端口位。

          利用RB6和RB7外接的單向可控硅SCR4及V4等相關(guān)電路,控制如圖56所示的紅色高亮LED圓形指示燈,以提示禁止機(jī)動(dòng)車通行。

          需要說明的是, 圖56中的圓形圖案是紅、綠燈共用的。布線時(shí),應(yīng)將紅、綠色高亮LED相間排列,利用程序,控制紅、綠燈LED分時(shí)顯示即可。

          上述各I/O 口的工作,全部受軟件(程序)控制。由程序按照各交通路口的規(guī)范,控制各高亮LED指示燈圖案分時(shí)工作,使交通路口的行人、車輛安全有序地通行。

          2.C語言程序流程圖和C程序

          按照?qǐng)D57所示電路,我們可以繪制出城市交通路口直行方向的紅、綠燈顯示C語言程序流程如圖58所示。橫行方向的紅、綠燈顯示C語言程序流程與之相同。此流程圖可為大家編輯C語言程序提供思路。

        圖58



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 古交市| 宝兴县| 姚安县| 阳谷县| 衡南县| 太湖县| 鱼台县| 商南县| 古浪县| 吉林市| 高雄市| 响水县| 繁峙县| 永春县| 丹巴县| 大埔县| 社会| 衡阳县| 乳源| 武强县| 长治市| 章丘市| 揭西县| 集贤县| 长子县| 南充市| 武冈市| 瑞安市| 铁岭市| 尉犁县| 格尔木市| 绥江县| 长乐市| 固安县| 乌兰察布市| 唐河县| 加查县| 繁昌县| 紫阳县| 五寨县| 饶河县|