久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4910|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

詳細(xì)注釋的單片機(jī)4位8段共陽數(shù)碼管動態(tài)顯示固定數(shù)字0123程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99130 發(fā)表于 2022-4-2 10:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
4位8段共陽數(shù)碼管動態(tài)顯示固定數(shù)字0123
下面是我根據(jù)程序做的注釋,如有錯誤之處請指正!
單片機(jī)源程序如下(每一行都有詳細(xì)的注釋):
  1. /*      4位8段共陽數(shù)碼管顯示固定數(shù)字:數(shù)碼管的動態(tài)顯示0123  

  2. 數(shù)碼管顯示原理

  3. 1.靜態(tài)顯示
  4. 多位數(shù)碼管依然可以靜態(tài)顯示,但是顯示時要么只顯示一位數(shù)碼管,
  5. 否則一體的多位同時顯示必須時顯示相同內(nèi)容。
  6. 當(dāng)多位數(shù)碼管應(yīng)用于某一系統(tǒng)時,它們的“位選”是可獨立控制的,
  7. 而“段選”是連接在一起的,我們可以通過位選信號控制哪幾個數(shù)碼管亮,
  8. 而在同一時刻,位選選通的所有數(shù)碼管上顯示的數(shù)字始終都是一樣的,
  9. 因為它們的段選是連接在一起的,所以送入所有數(shù)碼管的段選的信號都是相同的,
  10. 那么他們顯示的數(shù)字必定一樣。(換言之,你可以通過位選控制那個數(shù)碼管亮,但是亮的同時顯示的數(shù)字必定相同)

  11. 2.動態(tài)顯示
  12. 位選控制亮不亮,而段選控制顯示數(shù)字,
  13. 那怎樣顯示不同的數(shù)字呢?這就利用了人體肉眼觀察的能力。
  14. 舉個例子,
  15. 假設(shè)段選1控制第一位數(shù)碼管數(shù)字顯示1,那么在顯示第二個數(shù)碼管是段選控制數(shù)碼管顯示2,
  16. 而位選控制燈第二位數(shù)碼管亮,第一位數(shù)碼管滅。但是給人的感受是第一位數(shù)碼管并沒有滅(實際已經(jīng)滅了),
  17. 因為時間太短人體肉眼無法識別。這樣就會發(fā)現(xiàn)數(shù)碼管動態(tài)顯示是向左或向右一位一位點亮。         */

  18. #include <reg52.h>//包含51系列頭文件
  19. typedef unsigned char uchar;
  20.                               //typedef和define的作用是相似的(但實質(zhì)卻不一樣),都是給unsigned char定義一個別名。
  21.                               //也就是說,在定義這個別名之后,你用uchar就等于unsigned char
  22.                               //unsigned char意為無符號字符型數(shù)據(jù),占8位數(shù),范圍是0~255,簡寫縮寫為uchar

  23.                               /*      typedef和define的區(qū)別
  24.                                typedef 是用來定義一種類型的新別名的,它不同于宏(#define),不是簡單的字符串替換。
  25.                                它的新名字具有一定的封裝性,所以新命名的標(biāo)識符具有更易定義變量的功能。
  26.                                它是語言編譯過程的一部分,但它并不實際分配內(nèi)存空間。

  27.                                而 #define 只是簡單的字符串替換(原地擴(kuò)展),它本身并不在編譯過程中進(jìn)行,而是在這之前(預(yù)處理過程)就已經(jīng)完成了。
  28.                                因此,它不會做正確性檢查,不管含義是否正確它照樣會帶入,只有在編譯已被展開的源程序時才會發(fā)現(xiàn)可能的錯誤并報錯。


  29.                                接下來看下面的示例代碼:

  30.                                typedef char * PCHAR1;
  31.                                #define PCHAR2 char *
  32.                                PCHAR1 c1, c2;// c1、c2 都為char *,typedef為char *引入了一個新的別名
  33.                                PCHAR2 c3, c4;//相當(dāng)于char * c3, c4;c3是char *,而c4是char      

  34.                                在定義上述的變量時,c1、c2 與 c3 按照預(yù)期都被定義成 char* 類型。
  35.                                值得注意的是,c4 卻被定義成 char 類型,而不是我們所預(yù)期的 char*。
  36.                                其根本原因就在于 #define 只是簡單的字符串替換,而 typedef 則是為一個類型引入一個新的別名。
  37.                               */
  38. uchar table[] =   
  39.                                //uchar是數(shù)組類型,占8位數(shù),范圍是0~255。
  40.                                //table是數(shù)組名稱,可以自由定義,但不能和關(guān)鍵字重名,后面必須加[],內(nèi)部可注明當(dāng)前數(shù)組內(nèi)的元素個數(shù),也可不注明。
  41. {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};   
  42.                                //從前往后分別是0123456789

  43. uchar address[] =
  44.                                //uchar是數(shù)組類型,占8位數(shù),范圍是0~255。
  45.                                //address是數(shù)組名稱,可以自由定義,但不能和關(guān)鍵字重名,后面必須加[],內(nèi)部可注明當(dāng)前數(shù)組內(nèi)的元素個數(shù),也可不注明。
  46. {0x7F,0xBF,0xDF,0xEF};         //從前往后分別是0111~1110,共陽數(shù)碼管,故0為有效,分別對應(yīng)數(shù)碼的千百十個....

  47. void Delay(uchar m)
  48.                                //C語言定義延時函數(shù)主要通過無意義指令(void意為空)的執(zhí)行來達(dá)到延時的目的。
  49.                                //delay為延時,void delay為延時子程序。
  50.                                //m代表需要延時多少毫秒,uchar范圍是0-255
  51. {
  52.     unsigned char a, b;
  53.                                //定義兩個個無符號字符型變量a和b
  54.     //for(; m > 0; m--)
  55.         for(b = m; b > 0; b--)
  56.                                //本句后面沒有分號,所以編譯器會默認(rèn)第二個也就是下一行的for語句是本行延時語句的內(nèi)部語句。
  57.             for(a = 2; a > 0; a--);
  58.                                //程序在執(zhí)行時,第一個for語句中的b每減1次,第二個for語句便執(zhí)行2次,因此一共執(zhí)行m*2次。
  59. }
  60. int main()
  61.                                //void定義的函數(shù)沒有返回值,int定義的函數(shù)返回整型值,int為有符號整型值,范圍是-32768~32767
  62. {
  63.     uchar i = 0;
  64.                                //定義一個無符號字符型整數(shù)i為0
  65.     while(1)                   //while語句的作用是讓程序停止在某處,或延時。
  66.                                //括號里面的1為表達(dá)式,表達(dá)式可以為一個常數(shù),一個運算或一個帶返回值的函數(shù)。
  67.                                //此句后沒有跟分號,所以會默認(rèn)后面第一個分號前的語句為它的內(nèi)部語句。
  68.     {
  69.         if (i == 4)            //一輪循環(huán)亮起后從頭開始。if為選擇語句,i==4,兩個==寫在一起表示測試相等,
  70.                                //即判斷等號兩邊的數(shù)是否相等。數(shù)字4為數(shù)碼管是4個,對應(yīng)前面的位碼4個
  71.             i = 0;             //意思是從第一個數(shù)碼管開始顯示
  72.         
  73.         P3 = address[i];       //通過P3控制要亮的數(shù)碼管位
  74.         P0 = table[i];         //通過P1控制要顯示的數(shù)碼管的段
  75.         ++i;                   //故i++1(i自加1),即第二個第三個第四個數(shù)碼管相繼顯示
  76.         //Delay(1);            //快速動態(tài)顯示
  77.         Delay(1000);           //延時1000ms,可消除鬼影,達(dá)到消影

  78.     }
  79. }
復(fù)制代碼


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:262 發(fā)表于 2022-4-3 02:14 | 只看該作者
這個單片機(jī)程序不錯 特別適合初學(xué)者
回復(fù)

使用道具 舉報

板凳
ID:297903 發(fā)表于 2022-4-3 08:55 | 只看該作者
只用延時的方法消除鬼影,會影響顯示頻率,數(shù)碼管會閃爍!!
回復(fù)

使用道具 舉報

地板
ID:99130 發(fā)表于 2022-4-3 10:32 | 只看該作者
GEECGYJ 發(fā)表于 2022-4-3 08:55
只用延時的方法消除鬼影,會影響顯示頻率,數(shù)碼管會閃爍!!

是的!這是最基礎(chǔ)的
回復(fù)

使用道具 舉報

5#
ID:863362 發(fā)表于 2022-4-4 09:10 | 只看該作者
靜態(tài)顯示的時候,4個并行口各單獨接一個8段數(shù)碼管,可以同時顯示不同的數(shù)字。
回復(fù)

使用道具 舉報

6#
無效樓層,該帖已經(jīng)被刪除
7#
ID:435636 發(fā)表于 2022-4-6 11:12 | 只看該作者
51黑,有你更精彩
回復(fù)

使用道具 舉報

8#
ID:435636 發(fā)表于 2022-4-6 11:17 | 只看該作者
P3 = address;       //通過P3控制要亮的數(shù)碼管位
P0 = table;         //通過P1控制要顯示的數(shù)碼管的段

先片選,后輸出顯示碼,就會消除
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美国产一区二区三区 | 91在线色视频 | 狠狠婷婷综合久久久久久妖精 | 国产精品不卡视频 | 色婷婷精品国产一区二区三区 | 天天操夜夜操免费视频 | 欧美日韩久久 | 亚洲天堂一区 | 久久久www成人免费精品 | 激情免费视频 | 国产在线精品一区二区三区 | 久久亚洲春色中文字幕久久久 | 成人教育av | 国产精品亚洲精品 | 国产成人精品免高潮在线观看 | 亚洲综合色视频在线观看 | 成人免费视频网站在线观看 | 婷婷久久综合 | 91av在线视频观看 | av香港经典三级级 在线 | 一级大片免费 | 成人精品啪啪欧美成 | 成人精品鲁一区一区二区 | 久久精品国产亚洲一区二区 | 亚洲a网 | 先锋资源站| 最新中文字幕在线播放 | 久久久久国产一级毛片 | 国产精品揄拍一区二区久久国内亚洲精 | 91精品欧美久久久久久久 | av在线播放一区二区 | 日韩精品免费播放 | 中文字幕高清免费日韩视频在线 | 中文字幕在线观看成人 | 一级高清视频 | 日韩免费av网站 | 亚洲精品欧美 | 一区二区三区av | 激情国产 | 久久福利网站 | 成人在线精品视频 |