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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1370|回復: 0
打印 上一主題 下一主題
收起左側

單片機練習小程序 數碼管從左向右顯示

[復制鏈接]
跳轉到指定樓層
樓主
這是我單片機學習項目
可以當作學習單片機的小練習
半個小時完成的,附上代碼
歡迎大家一起來交流學習

單片機源程序如下:
  1. #include <REGX52.H>
  2. #define N 50
  3. #define Fosc 11059200L
  4. #define INT_PERIOD 5
  5. #define OverFreq (1000/INT_PERIOD)
  6. #define ClockPeriod (0x10000-Fosc/12/OverFreq)
  7. unsigned char code DispSeg[] = {
  8.         0x00,
  9.         0x06,0x5b,0x4f,0x66,0x6d,
  10.         0x7d,0x27,0x7f,0x6f,0x3f,
  11.         0x08
  12. };
  13. void Delay(unsigned int xms)        
  14. {
  15.         unsigned char i, j;
  16.         while(xms--){
  17.                 i = 2;
  18.                 j = 199;
  19.                 do
  20.                 {
  21.                         while (--j);
  22.                 } while (--i);
  23.         }
  24. }

  25. unsigned char Buffer[]={0,0,0,0,0,1,7,2,11,3,5};
  26. unsigned char show[6];
  27. unsigned char j=0;
  28. unsigned char timecnt;
  29. sbit K1 = P2^0;
  30. void timer0_init(void)
  31. {
  32.         TMOD &= 0xF0;
  33.         TMOD |= 0x01;
  34.         TH0 = ClockPeriod >> 8;
  35.         TL0 = ClockPeriod & 0xFF;
  36.         ET0 = 1;
  37.         EA = 1;
  38.         TR0 = 1;
  39. }
  40. void change()
  41. {
  42.         unsigned char i;
  43.         for(i=0;i<6;i++)
  44.         {
  45.                 show[i]=Buffer[i+j];
  46.         }
  47. }
  48. void Display()
  49. {
  50.         unsigned char i=0x80;
  51.         unsigned char *ptr=show;
  52.         while(i!=0x02)
  53.         {
  54.                 P0=DispSeg[*ptr++];
  55.                 P1=i;
  56.                 Delay(1);
  57.                 i=i>>1;
  58.         }
  59. }
  60. void state1(void)
  61. {
  62.         unsigned char tim,i;
  63.         for(i=0;i<6;i++)
  64.         {
  65.                 tim=N;
  66.                 change();
  67.                 while(tim--)
  68.                 {
  69.                         Display();
  70.                 }
  71.                 j++;
  72.         }
  73. }
  74. void state3()
  75. {
  76.         unsigned char i;
  77.         P0=0x7f;
  78.         i = 0x80;
  79.         while(i!=0x02)
  80.         {
  81.                 P1=i;
  82.                 Delay(500);
  83.                 i=i>>1;
  84.         }
  85. }
  86. void state4()
  87. {
  88.         unsigned char temp,i;
  89.         temp = 0x01;
  90.         P1 = 0x00;
  91.         P1 = 0x02;
  92.         for(i=0;i<7;i++)
  93.         {
  94.             P0 = temp;
  95.                 if(temp == 0x80)
  96.                         temp = 0x01;
  97.                 else
  98.                         temp <<= 1;        
  99.                 Delay(500);
  100.         }
  101. }
  102. void keypre()
  103. {
  104.         if( K1 == 0 )         
  105.         {
  106.                 Display();
  107.                 if( K1 == 0 )
  108.                 {
  109.                         timer0_init();
  110.                         P0 = 0x00;
  111.                         Delay(1000);
  112.                         TR0 = 0;
  113.                         while( K1 == 0 );
  114.                         while(1)
  115.                         {
  116.                                 state3();
  117.                                 state4();
  118.                         }
  119.                 }
  120.         }
  121. }
  122. void main()
  123. {
  124.         state1();
  125.         while(1)
  126.         {
  127.                 j=5;
  128.                 change();
  129.                 Display();
  130.                 keypre();
  131.         }
  132. }
  133. void Time0Interrupt( void ) interrupt 1
  134. {
  135.         timecnt++;
  136.         TH0 = ClockPeriod >> 8;
  137.         TL0 = ClockPeriod & 0xFF;
  138.         P1 ^= 1;
  139. }
復制代碼


評分

參與人數 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九九视频精品 | 国产日韩久久久久69影院 | 精品www| 精品免费国产视频 | www国产成人免费观看视频,深夜成人网 | 国产日韩一区二区三免费高清 | 一本色道久久综合亚洲精品高清 | 久久网一区二区三区 | 国产一区二区三区久久久久久久久 | 午夜黄色影院 | 午夜爽爽爽男女免费观看 | 亚洲精品免费观看 | 天天玩夜夜操 | 精品国产不卡一区二区三区 | 久久久久久99 | 日本不卡一区二区三区在线观看 | 国产成人免费一区二区60岁 | 免费视频一区 | 久久久免费观看视频 | 亚洲一区二区三区桃乃木香奈 | 午夜av一区二区 | 四虎影视免费在线 | 黄a在线观看 | 国产精品久久久久久久久久妞妞 | 国产高清免费视频 | 国产欧美日韩久久久 | 一区二区三区免费 | 在线激情视频 | 亚洲视频手机在线 | 成人av资源在线 | 夜夜操天天艹 | 黄色网一级片 | 国产免费一级片 | 视频一二三区 | 欧美日韩一二三区 | 欧美激情亚洲天堂 | 羞羞的视频免费在线观看 | 在线不卡 | 亚洲综合国产 | 欧美精品一区二区三区蜜桃视频 | 久久久久国产精品午夜一区 |