黃哥c語言視頻,黃健 c語言

本文目錄一覽:

如何用c語言編程在單片機上做交通信號燈

硬件電路設計

此電中路設計採用AT89C51單片機,74LS47(數碼管驅動)74LS373(數碼管驅動輸出鎖存),8個數碼管顯示其延時值,四個紅、黃、綠指示燈。硬件設計關鍵在於,延時顯示時,要考慮到當個位數字顯示時,要確保十位數字顯示輸出的不變。因此,可加輸出鎖存器。在延時最後三秒時,要讓黃燈進行閃爍,並同時顯示數字(這一步在軟件設計上很關鍵)。

(1)電路連接圖:

三、軟件程序(C語言)

    以下是整個設計的軟件程序,直接可以編譯成*。Hex代碼。通過以上電路,下載到單片機,可直接運行。

//*****************************//

//程序名:十字路口交通燈控制

//編寫人:黃庭劍

//初寫時間:2009年1月2日

//程序功能:南北為車行道,延時60秒;東西方向為人行道,延時20秒,且在最後3秒黃燈顯示2秒鐘再實現切換.

//CPU說明:AT89C51型單片機; 24MHZ晶體振蕩器

//完成時間:2009年1月6日

//*****************************//

#includestdio.h

#includereg51.h

#includeintrins.h

sfr p0   = 0x80;

sfr p1   = 0x90;

sfr p2   = 0xA0;

sfr p3   = 0xb0;      //這部分內容其實在“#includereg51.h”里已經有,但裡面定義的必須區分大小寫,在這裡,因為我程序採用的是小寫,reg51.h里對各個端口與寄存器的定義都是大寫,所以在編譯連接時,會報錯,所以,在本設計程序里,我只用到了端口,在這裡也就只定義了四個,而沒有去改reg51.h裡面的內容。其實兩者是一樣的。

sbit  sw      = p0^0;

sbit   OE    =P0^6;

sbit   LE    =P0^7;  //74LS373鎖存器控制端定義

char  display[]={ 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99 }; //p1口的數碼管時間顯示調用,利用74L74BCD碼,8位驅動輸出;

//函數聲明 begin

void  delay1(int count);

void  delay_long(int  number1,int number2);

void    people_car_drive();

//函數聲明end

//***********************//延時子程序

void  delay1(int  count)

 { int  i;

   for(i=count;i0;i–)

       { ;} 

 }

void  delay_long(int  number1,int number2)

  {

   int a,b;

 for(a=number1;a0;a–)

   {

    for(b=number2;b0;b–)

     { _nop_();     }

   }

    

  }

//**********************//延時子程序

 void   people_car_drive()

 {

   int   p_1=2,i,j=9,p_2=6;    //****************//行人通行時,延時20秒

          p2=0x09;                     //南北紅燈亮

       p3=0x24;                     //東西綠燈亮

    

  while(p_1–0)

     { LE=1;

    OE=0;

    if(p_1==0){OE=1;}            //當十位數減到0時,只顯示個位數

    p1=display[p_1];

    delay1(1000);

    LE=0;  

    j=9;

     for(i=10;i0;i–)

   { 

     if(p_1==0j==3)break;     //減到3時退出循環,讓其黃燈閃爍顯示

     p1=display[j–];

     delay_long(16000,2);

  if(sw==1)return;   

   }

   

     } 

   

//*******************************************************************************//

                  

     p2=0x12;                  //南北黃燈閃爍三秒,以提醒行人注意

     p3=0x12; 

  p1=display[3]; 

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;     

  delay_long(14000,1);

    

  p2=0x12;

  p3=0x12;

  p1=display[2];

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;

  delay_long(14000,1);

  

  p2=0x12;

  p3=0x12;

  p1=display[1];

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;

  delay_long(14000,1);

//*****************以下是車輛通行時延時60秒//

 

   p2=0x24;                 //南北綠燈亮

   p3=0x09;                 //東西紅燈亮

  

     while(p_2–0)

     { LE=1;

    OE=0;

    if(p_2==0){OE=1;}       //當十位數減到0時,只顯示個位數

    p1=display[p_2];

    delay1(1000);

    LE=0;

    j=9;

     for(i=10;i0;i–)

   { 

  if(p_2==0j==3)break;  //減到2時退出循環

     p1=display[j–];

     delay_long(16000,2);

  if(sw==1)return;     

   }

     }

   

     p2=0x12;                //南北黃燈閃爍三秒,以提醒行人注意

     p3=0x12; 

  p1=display[3]; 

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;     

  delay_long(14000,1);

    

  p2=0x12;

  p3=0x12;

  p1=display[2];

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;

  delay_long(14000,1);

  

  p2=0x12;

  p3=0x12;

  p1=display[1];

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;

  delay_long(14000,1);    //南北黃燈閃爍三秒完畢

 }

 

 void  main()               //主函數入口處

{

       p0=0x01;

       p1=0x00;

       p2=0x00;

       p3=0x00;               //初始化各端口

 { while(1) 

  {

     if(sw==0)

    {  people_car_drive();}

else

  {

   p2=0x00;

   p3=0x00;                    //關閉所有交通燈

  }

  }

  

 }

}

自學C語言教程

沒有基礎可以入門,通過努力可以達到初、中級程序員的程度,但再往上走,就比較困難了。後面需要不少算法、英文和數學知識。

教程的話可以參考下面兩本教程:

譚浩強:《C語言程序設計》

李銘城 黃中豪 陳宇芬:《資料結構 C》

英文的話,進入初級之前都不怎麼需要。但是進入中級後,需要讀一些英文資料。不過現在翻譯比較厲害,絕大部分的資料都有翻譯。但是要進入高級,就必須要學習英文了,因為最新最核心的資料都是英文的,翻譯的往往都會有錯誤。

另外數學在早期影響不大,但是進入中級後就必須要了。因為估算算法時間複雜度、空間複雜度、圖、樹等等,都涉及不少數學知識。當然如果只是做簡單應用或者驅動的話,這方面要求就不會太高。

最後給一個學習大概的路線圖:

入門級的學習,只要能夠掌握:代碼三大結構(循環、分支、順序)、流程圖、C語言關鍵字和語法、輸入輸出、文件操作、套接字操作。就算是初級滿級了。

初級程序員:數據結構和算法(排序,查找)、了解軟件開發模型(瀑布模型、敏捷模型、原型模型等等)、了解UML、系統常用API、網絡通信、編譯和SDK環境搭建

中級程序員:設計模式、多線程編程、網絡通信(服務器、客戶端)、面向對象編程、掌握UML、系統網絡/文件/互斥/線程/事件/安全API、STL、相關法律法規、知道一些常用軟件架構(MVC等)

我需要郝斌老師c語言教程180個視頻。

verycd上的可以下的。可用迅雷下,較快。

你先打開迅雷,打開verycd中那一頁,再點“打開連接”,點允許,就會調用迅雷來下。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/257603.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:46
下一篇 2024-12-15 12:46

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論