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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2981|回復: 1
收起左側

單片機定時中斷范例 帶仿真 程序 原理圖

[復制鏈接]
ID:120620 發表于 2016-5-13 21:33 | 顯示全部樓層 |閱讀模式
定時中斷范例
0.png
所有完整資料下載: 定時中斷.rar (83.17 KB, 下載次數: 18)


仿真文件原理圖:
0.png 0.png

程序1:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. //sbit S1=P3^2;
  6. //sbit S2=P3^3;
  7. sbit OL=P2^0;
  8. uchar i,t,k; //全局變量
  9. int a,j,l;
  10. unsigned long m;
  11. void main()
  12. {
  13. P1=0x00; //先讓LED暗
  14. //S1=1;
  15. //S2=1;
  16. //j=0;
  17. //l=0;
  18. a=20000;  //50Hz的初值
  19. EA=1;
  20. TMOD=0x01;  //方式1,16位定時計數器
  21. ET0=1;
  22. EX0=1;  //開外部中斷0
  23. EX1=1;
  24. TR0=1;
  25. IT0=1;    //外中斷方式為高電平
  26. IT1=1;
  27. //PX1=1;  //優先級設置
  28. while(1);
  29. }
  30. void time0(void) interrupt 1
  31. {
  32.   OL=0;
  33.   TH0=(65536-a)/256;
  34.   TL0=(65536-a)%256;
  35. if(k<8) //左移
  36. { if(k==0)
  37. t=0x01;
  38. P1 = t;
  39. OL=1;
  40. t=(t<<1);
  41. }
  42. if(k>=8) //右移
  43. { if(k==8)
  44. t=0x80;
  45. t=(t>>1);
  46. P1 = t;
  47. OL=1;
  48. }
  49. k++;
  50. if(k==14)
  51. {
  52. k=0;//從頭開始
  53. TF0=0;
  54. } }
  55. void int0 (void) interrupt 0
  56. {
  57.   EX0=0;
  58.   a=1000000/(50+j);
  59.   j++;
  60.   EX0=1;
  61. }
  62. void int1(void) interrupt 2
  63. {
  64.   EX0=0;
  65.   a=1000000/(50-l);
  66.   l++;
  67. if(l==50)
  68. l=0;
  69. EX1=1;
  70. }

復制代碼

程序2:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar a=0;
  6. sbit LED=P1^0;
  7. sbit key=P3^3;
  8. void delayms(uint ms)
  9. {
  10. uchar i;
  11. while(ms--)
  12.   {
  13.   for (i=0;i<114;i++)
  14.   ;
  15.   }
  16.   
  17. }
  18. void init()
  19. {
  20. TMOD=0x90;  //設置工作方式
  21. TH1=0;  //計數器T1高8位賦初值
  22. TL1=0;          //計數器T1低8位賦初值
  23. EA=1;
  24. ET1=1;  //開定時/計數器1
  25. // TR1=1;;  //啟動定時/計數器1
  26. }
  27. void main()
  28. {
  29.   while (key);  //等待低電平
  30.   while (!key);  //等待高電平
  31.   TR1=1;        //啟動T1
  32.   LED=1;        //燈亮
  33.   while (key); //等待低電平
  34.   TR1=0;         //停止定時/計數器T1
  35.   LED=0;        //燈滅
  36.   TH1=0;        //
  37.   TL1=0;         //計數清零
  38.   delayms(1000);  ////延時
  39. }
  40. void time1() interrupt 2    ///定時T1中斷子程序
  41. {
  42.   TH1=0;
  43.   TL1=0;
  44.   a++;           ///溢出后反向加1,直到加滿溢出后又返回加1
  45. }
復制代碼


回復

使用道具 舉報

ID:708367 發表于 2020-3-14 16:21 | 顯示全部樓層
圖怎么畫呀
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲精品视频 | 成人三级在线观看 | 久操国产 | 五月激情婷婷在线 | 欧美日韩中文在线 | 日本精品视频在线 | 性做久久久久久免费观看欧美 | 国产高清在线精品 | 天天看天天操 | 婷婷精品 | 成人av播放 | 国产乱码精品一品二品 | 国产中文字幕在线观看 | 日韩欧美在线一区 | 国产精品久久久久久久久久久久 | 欧美亚洲网站 | 久久av一区 | 日韩第一页 | 亚洲三级免费看 | av免费网站在线 | 久草a√| 精品www| 欧美成人精品在线 | 一区二区三区久久久 | 亚洲性人人天天夜夜摸 | 特一级黄色毛片 | 欧美一区二区成人 | 青草久久免费视频 | 国产成人在线一区二区 | 一级做a| 在线日韩视频 | 欧美三级久久久 | 天天操网 | 亚洲一区二区三区欧美 | 午夜激情免费 | 亚州综合一区 | 亚洲免费网址 | 男人久久天堂 | 久久久久久久国产精品视频 | 福利网址 | 欧美精品久久久久久 |