微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第35节:带数码管显示的象棋比赛专用计时器

第35节:带数码管显示的象棋比赛专用计时器

时间:11-22 来源:互联网 点击:

  1. 加一个空指令,想维持跟if括号语句的数量对称,都是两条指令。不加也可以。
  2. beep_dr=1;//蜂鸣器是PNP三极管控制,高电平就停止鸣叫。
  3. }
  4. display_drive();//放在定时中断里的数码管驱动函数
  5. /* 注释四:
  6. *注意,此处的重装初始值不能太大,否则动态扫描数码管的速度就不够。我把原来常用的2000改成了500。
  7. */
  8. TH0=0xfe; //重装初始值(65535-500)=65035=0xfe0b
  9. TL0=0x0b;
  10. TR0=1;//开中断
  11. }
  12. void delay_short(unsigned int uiDelayShort)
  13. {
  14. unsigned int i;
  15. for(i=0;i
  16. {
  17. ; //一个分号相当于执行一条空语句
  18. }
  19. }
  20. void delay_long(unsigned int uiDelayLong)
  21. {
  22. unsigned int i;
  23. unsigned int j;
  24. for(i=0;i
  25. {
  26. for(j=0;j<500;j++)//内嵌循环的空指令数量
  27. {
  28. ; //一个分号相当于执行一条空语句
  29. }
  30. }
  31. }
  32. void initial_myself()//第一区 初始化单片机
  33. {
  34. led_dr=1;
  35. beep_dr=1; //用PNP三极管控制蜂鸣器,输出高电平时不叫。
  36. hc595_drive(0x00,0x00);
  37. TMOD=0x01;//设置定时器0为工作方式1
  38. TH0=0xfe; //重装初始值(65535-500)=65035=0xfe0b
  39. TL0=0x0b;
  40. }
  41. void initial_peripheral() //第二区 初始化外围
  42. {
  43. EA=1; //开总中断
  44. ET0=1; //允许定时中断
  45. TR0=1; //启动定时中断
  46. }



总结陈词:
这节讲了象棋比赛专用计时器的项目程序。为了继续加深读者理解按键和显示是如何有规律关联起来的,下节会继续讲一个相关的小项目程序。欲知详情,请听下回分解-----带数码管显示的加法简易计算器。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top