找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 875|回复: 0
收起左侧

我的单片机基础设计 含源代码

[复制链接]
ID:668367 发表于 2019-12-19 15:16 | 显示全部楼层 |阅读模式
利用定时/计数器T1产生定时时钟,P2口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10/(8个灯依次亮一遍为一个周期),循环。晶振频率为12MHz
  1. 利用定时/计数器T1产生定时时钟,由P2口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。晶振频率为12MHz。
  2. #include<reg51.h>
  3. #include<intrins .h>      //包含有左右循环移位子函数的库
  4. #define uint unsigned int  
  5. #define uchar unsigned char  
  6.   sbit  S1=P1^0              ;                  //定义P1.0
  7. uchar tt,a;
  8. void main()
  9. {     TMOD=0X10 ;               //设置定时器1
  10.         TH1=(65536-50000)/256;                //定时器初值
  11. TL1=(65536-50000)%256;

  12.        EA=1;             //开总中断
  13.        EX1=1 ;             //开定时器1中断
  14.         TR1=1;            //启动定时器1
  15. a= 0XFE;                  //LED初始状态
  16. while(1);
  17. }
  18. void timer0() interrupt 1// 定时器1中断
  19. { TH1=(65536-50000)/256;                                         //定时器初值
  20. TL1=(65536-50000)%256;

  21. tt++;
  22. if(tt==2)
  23. { tt=0;
  24. P1=a;
  25. a= _crol_(P1,1);                   //LED移动
  26. }
  27. }
  28. 30. 填空完成程序:在主程序中流水灯无限循环,INT0中断时,P1口LED全亮,INT1中断时P1口LED全灭。
  29. #include <reg51.h>
  30. #include<intrins.h>
  31. #define uint unsigned int
  32. #define uch unsigned char
  33. /* 中断初始化*/
  34. void init(void)
  35. {   EA=0      ;            //中断总开关
  36.    ET0=1       ;           //开中断0开关。
  37.         ET1=1      ;                      //开中断1开关
  38.      IT1=0;         
  39.          IT0=0;
  40. }
  41. void delay(uint z);
  42. main()
  43. {uch temp;
  44.        EA=1           ;             //中断初始化
  45.     temp = 0XFE       ;             //初始状态
  46.             while(1)
  47.           {
  48.           P1=temp;
  49.           delay(500);
  50.           temp=_crol_(P1,1)         ;         //左移
  51.           }
  52. }
  53. void int_0(void)interrupt  0  //中断服务函数
  54. {
  55.    P1=0X00      ;                                 //led全亮
  56. }
  57. void int_1(void)interrupt  1  //中断服务函数
  58. {
  59.     P1=0xfe             ;                         //LED全灭
  60. }
  61. void delay(unsigned int z)
  62. {
  63.   uint x,y;
  64.   for(x=z;x>0;x--)
  65.     for(y=110;y>0;y--);
  66. }

复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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