找回密码
 注册
关于网站域名变更的通知
查看: 145|回复: 2
打印 上一主题 下一主题

单片机练习小程序 数码管从左向右显示

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-6-28 10:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
这是我单片机学习项目
7 }8 L! z5 V9 m( B* [3 E& q可以当作学习单片机的小练习8 v( u/ T( Q+ |! _' B
半个小时完成的,附上代码/ T+ Z" f% w  O- b- @1 X5 A3 }! \8 u
欢迎大家一起来交流学习
$ I" P- s7 r/ o: J  m; b& _/ |- v
% C4 K# \3 i. @4 p9 U! F单片机源程序如下:
' a/ {4 N6 N/ Z
  • #include <REGX52.H>
  • #define N 50
  • #define Fosc 11059200L
  • #define INT_PERIOD 5
  • #define OveRFreq (1000/INT_PERIOD)
  • #define ClockPeriod (0x10000-Fosc/12/OverFreq)
  • unsigned char code DispSeg[] = {
  •         0x00,
  •         0x06,0x5b,0x4f,0x66,0x6d,
  •         0x7d,0x27,0x7f,0x6f,0x3f,
  •         0x08
  • };
  • void Delay(unsigned int xms)
  • {
  •         unsigned char i, j;
  •         while(xms--){
  •                 i = 2;
  •                 j = 199;
  •                 do
  •                 {
  •                         while (--j);
  •                 } while (--i);
  •         }
  • }
  • unsigned char Buffer[]={0,0,0,0,0,1,7,2,11,3,5};
  • unsigned char show[6];
  • unsigned char j=0;
  • unsigned char timecnt;
  • sbit K1 = P2^0;
  • void timer0_init(void)
  • {
  •         TMOD &= 0xF0;
  •         TMOD |= 0x01;
  •         TH0 = ClockPeriod >> 8;
  •         TL0 = ClockPeriod & 0xFF;
  •         ET0 = 1;
  •         EA = 1;
  •         TR0 = 1;
  • }
  • void change()
  • {
  •         unsigned char i;
  •         for(i=0;i<6;i++)
  •         {
  •                 show=Buffer[i+j];
  •         }
  • }
  • void Display()
  • {
  •         unsigned char i=0x80;
  •         unsigned char *ptr=show;
  •         while(i!=0x02)
  •         {
  •                 P0=DispSeg[*ptr++];
  •                 P1=i;
  •                 Delay(1);
  •                 i=i>>1;
  •         }
  • }
  • void state1(void)
  • {
  •         unsigned char tim,i;
  •         for(i=0;i<6;i++)
  •         {
  •                 tim=N;
  •                 change();
  •                 while(tim--)
  •                 {
  •                         Display();
  •                 }
  •                 j++;
  •         }
  • }
  • void state3()
  • {
  •         unsigned char i;
  •         P0=0x7f;
  •         i = 0x80;
  •         while(i!=0x02)
  •         {
  •                 P1=i;
  •                 Delay(500);
  •                 i=i>>1;
  •         }
  • }
  • void state4()
  • {
  •         unsigned char temp,i;
  •         temp = 0x01;
  •         P1 = 0x00;
  •         P1 = 0x02;
  •         for(i=0;i<7;i++)
  •         {
  •             P0 = temp;
  •                 if(temp == 0x80)
  •                         temp = 0x01;
  •                 else
  •                         temp <<= 1;
  •                 Delay(500);
  •         }
  • }
  • void keypre()
  • {
  •         if( K1 == 0 )
  •         {
  •                 Display();
  •                 if( K1 == 0 )
  •                 {
  •                         timer0_init();
  •                         P0 = 0x00;
  •                         Delay(1000);
  •                         TR0 = 0;
  •                         while( K1 == 0 );
  •                         while(1)
  •                         {
  •                                 state3();
  •                                 state4();
  •                         }
  •                 }
  •         }
  • }
  • void main()
  • {
  •         state1();
  •         while(1)
  •         {
  •                 j=5;
  •                 change();
  •                 Display();
  •                 keypre();
  •         }
  • }
  • void Time0Interrupt( void ) interrupt 1
  • {
  •         timecnt++;
  •         TH0 = ClockPeriod >> 8;
  •         TL0 = ClockPeriod & 0xFF;
  •         P1 ^= 1;
  • }
    3 b# Q1 g" v1 g! ^* d5 j" A

7 i+ ?% W  a( ~4 Y3 t! Z) }/ i' I
; X5 @+ g* S- W6 L' c+ L

该用户从未签到

2#
发表于 2022-6-28 11:21 | 只看该作者
看看,(*^▽^*)

该用户从未签到

3#
发表于 2022-6-28 13:21 | 只看该作者
分析一下,学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-28 22:33 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表