ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

8个发光二极管间隔200ms由上至下,再由下至上点亮(单个灯点亮200ms,然后下一个灯点亮),此过程重复两次;然后全部熄灭1s,接着以300ms间隔全部闪烁5次。重复上述全部过程。(要求用定时器定时

2020-10-25 16:00:26  阅读:442  来源: 互联网

标签:50000 定时器 点亮 间隔 200ms 65536 256



代码:【自己写的,初学者水平不高,但是能实现,如果有错误或者是可以优化,请评论区留言,不喜勿喷】

//这个是帮同学弄的,但是题目要求用定时器来完成,不然都不用那么麻烦。
//下面有重复的代码,但是我发现我把它弄成函数就会出问题,菜鸟水平,大佬们看看笑话就好了。
1 #include<reg51.h> 2 unsigned char TAB[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; //共阳,低电平亮 3 int i,j,k,K1=0; 4 main() 5 { TMOD=0x01; 6 TH0=(65536-50000)/256; 7 TL0=(65536-50000)/256; 8 TR0=1; 9 while(1) 10 { 11 for(i=0;i<2;i++) 12 { 13 for(j=0;j<7;j++) 14 { 15 P0=TAB[7-j]; 16 while(1){ 17 if(TF0==1){ 18 TF0=0; 19 TH0=(65536-50000)/256; 20 TL0=(65536-50000)/256; 21 K1++; 22 if(K1==4){ 23 K1=0; 24 break; 25 } 26 } 27 } 28 } 29 for(k=0;k<7;k++) 30 { 31 P0=TAB[k]; 32 while(1){ 33 if(TF0==1){ 34 TF0=0; 35 TH0=(65536-50000)/256; 36 TL0=(65536-50000)/256; 37 K1++; 38 if(K1==4){ 39 K1=0; 40 break; 41 } 42 } 43 } 44 } 45 } 46 P0=0XFF; 47 while(1){ 48 if(TF0==1){ 49 TF0=0; 50 TH0=(65536-50000)/256; 51 TL0=(65536-50000)/256; 52 K1++; 53 if(K1==20){ 54 K1=0; 55 break; 56 } 57 } 58 } 59 for(j=0;j<10;j++) 60 { 61 P0=~P0; 62 while(1){ 63 if(TF0==1){ 64 TF0=0; 65 TH0=(65536-50000)/256; 66 TL0=(65536-50000)/256; 67 K1++; 68 if(K1==6){ 69 K1=0; 70 break; 71 } 72 } 73 } 74 } 75 } 76 }

protues仿真:

标签:50000,定时器,点亮,间隔,200ms,65536,256
来源: https://www.cnblogs.com/mcpigdull/p/danpianji_seg_timer_3.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有