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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1436|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲人在线| 精品一二区 | 国产成人精品免费视频大全最热 | 日韩成人在线观看 | 综合精品 | 欧美日韩1区2区 | 成人小视频在线观看 | 亚洲成人网在线观看 | 日本久久久久久 | 国产乱肥老妇国产一区二 | 81精品国产乱码久久久久久 | 久久久久国产一区二区三区四区 | 91亚洲国产成人久久精品网站 | 一级在线观看 | 久久久久国产一区二区三区四区 | av一区二区三区四区 | 波多野结衣一区二区 | 91在线一区 | 人人99| 天天草天天爱 | 亚洲精品一区二区三区四区高清 | 国产蜜臀| 日韩精品一区二区久久 | 欧美 日韩 中文 | 91婷婷韩国欧美一区二区 | 国产欧美综合在线 | 国产综合网站 | 久久精品视频亚洲 | 黄a网| 色又黄又爽网站www久久 | 欧美xxxx色视频在线观看免费 | 国产精品明星裸体写真集 | 国产成人综合在线 | 成年人免费在线视频 | 亚洲狠狠 | 国产美女一区二区三区 | 午夜不卡福利视频 | 国产精品久久久久久久久久久久久久 | 欧美精品一区二区三 | 妖精视频一区二区三区 | 中文在线播放 |