设为首页 收藏本站
开启辅助访问 切换到宽版

  找回密码
  立即注册

QQ登录

只需一步,快速开始

快捷导航
  • 论坛
  • 问答区
  • 单片机教程
  • 单片机DIY
  • 电子DIY
  • 帮助

热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计

搜索
» 论坛 嵌入式/单片机论坛 51单片机 STC15F2K60S2和74HC595控制数码管实现计时器程序
返回列表 发新帖
查看: 2380|回复: 2
打印 上一主题 下一主题
收起左侧

STC15F2K60S2和74HC595控制数码管实现计时器程序

[复制链接]
跳转到指定楼层
楼主
ID:1002550 发表于 2022-1-19 20:45 | 只看该作者 | 只看大图 回帖奖励 | 倒序浏览 | 阅读模式
小小的一个双面手工板实验,可以把这个手工板当作自己学习路上的第一块最小系统板,不仅促进手工及写代码能力,文件包含原理图和简单实现的C代码。



单片机源程序如下:
  1. #include <STC15F2K60S2.H>
  2. #include <LED595.h>//
  3. #include <Delay.h>
  4. #include <Digital595.h>
  5. #include <Timer0.h>
  6. #include <Key.h>
  7. #include <INTRINS.h>
  8. #include <Nixie.h>

  9. sbit sw1= P3^1;
  10. sbit sw0= P3^0;
  11. sbit sw2= P1^3;
  12. sbit LED= P1^2;
  13. sbit s0 = P3^7;
  14. sbit s1 = P1^4;
  15. sbit s2 = P1^1;
  16. sbit s3 = P1^0;

  17. unsigned char KeyNum,Time,sec1,sec2,min1,min2,i,LEDMode;
  18. unsigned char i=0,j=30000;
  19. void Delay1(unsigned int t)
  20. {
  21.         while(t--);
  22. }

  23. void main()
  24. {        
  25.         unsigned char key1 = 0, key2 = 0, key4 = 0,key5 = 0;
  26.         
  27.         Timer0_Init();

  28.         while(1)
  29.         {               

  30.       key1 = Key();
  31.             if(key1 == 3)
  32.                         {
  33.                                 key2 = ~key2;
  34.                         }
  35.                         if(key1 == 2)
  36.                         {
  37.                                 key4 = ~key4;
  38.                         }
  39.                         if(key1 == 1)
  40.                         {
  41.                                 key5 = ~key5;
  42.                         }
  43.                         if(key4)
  44.                         {
  45.                                 
  46.                                 LED595(0X00);//I am so lazy to write circulation,so I prefer to chick someone.
  47.                                 s0=0;s1=0;s2=0;
  48.                                 DIG595(0x00);
  49.                                 LED = 0;
  50.                                 Delay(100);
  51.                                 LED595(0XFF);
  52.                                 s0=1;s1=1;s2=1;
  53.                                 DIG595(0xFF);
  54.                                 LED = 1;
  55.                                 Delay(100);
  56.                                 LED595(0X00);
  57.                                 s0=0;s1=0;s2=0;
  58.                                 DIG595(0x00);
  59.                                 LED = 0;
  60.                                 Delay(100);
  61.                                 LED595(0XFF);
  62.                                 s0=1;s1=1;s2=1;
  63.                                 DIG595(0xFF);
  64.                                 LED = 1;
  65.                                 Delay(100);
  66.                                 LED595(0X00);
  67.                                 s0=0;s1=0;s2=0;
  68.                                 DIG595(0x00);
  69.                                 LED = 0;
  70.                                 Delay(100);
  71.                                 LED595(0XFF);
  72.                                 s0=1;s1=1;s2=1;
  73.                                 DIG595(0xFF);
  74.                                 LED = 1;
  75.                                 Delay(100);
  76.                                 LED595(0X00);
  77.                                 s0=0;s1=0;s2=0;
  78.                                 DIG595(0x00);
  79.                                 LED = 0;
  80.                                 Delay(100);
  81.                                 LED595(0XFF);
  82.                                 s0=1;s1=1;s2=1;
  83.                                 DIG595(0xFF);
  84.                                 LED = 1;
  85.                                 Delay(100);
  86.                                 LED595(0X00);
  87.                                 s0=0;s1=0;s2=0;
  88.                                 DIG595(0x00);
  89.                                 LED = 0;
  90.                                 Delay(100);
  91.                                 LED595(0XFF);
  92.                                 s0=1;s1=1;s2=1;
  93.                                 DIG595(0xFF);
  94.                                 LED = 1;
  95.                                 Delay(100);
  96.                                 LED595(0X00);
  97.                                 s0=0;s1=0;s2=0;
  98.                                 DIG595(0x00);
  99.                                 LED = 0;
  100.                                 Delay(100);
  101.                                 LED595(0XFF);
  102.                                 s0=1;s1=1;s2=1;
  103.                                 DIG595(0xFF);
  104.                                 LED = 1;
  105.                                 Delay(100);
  106.                         }
  107.                         if(key5)
  108.                         {LED=0;
  109.                                 DIG595(0xb0);//running river lights,my _crol_ can not running.total 10 second.
  110.                                 LED595(0x80);
  111.                                 Delay(1000);
  112.                                 LED595(0x40);
  113.                                 Delay(1000);
  114.                                 LED595(0x20);
  115.                                 Delay(1000);
  116.                                 LED595(0x10);
  117.                                 Delay(1000);
  118.                                 LED595(0x08);
  119.                                 Delay(1000);
  120.                                 LED595(0x04);
  121.                                 Delay(1000);
  122.                                 LED595(0x02);
  123.                                 Delay(1000);
  124.                                 LED595(0x01);
  125.                                 Delay(1000);
  126.                                 LED595(0x00);
  127.                                 Delay(1000);
  128.                                 LED595(0xff);
  129.                                 Delay(1000);
  130.                 }
  131.                
  132.                                 else
  133.                                 {
  134.                                 s0=1;s1=1;s2=1;
  135.                         if(key2)
  136.                         {
  137.                          Nixie(1,sec1);//clock
  138.                          Nixie(2,sec2);
  139.                          Nixie(3,min1);
  140.                          Nixie(4,min2);
  141.                          LED595(0xaa);
  142.                         }
  143.                         else
  144.                         {
  145.                                 sec1=0;//breath lights
  146.                                 sec2=0;
  147.                                 min1=0;
  148.                                 min2=0;
  149.                                 DIG595(0xf9);s3 = 0;
  150.                                                 for(Time=0;Time<100;Time++)
  151.                                 {
  152.                                                         for(i=0;i<50;i++)
  153.                                                                 {
  154.                                                                         LED=0;LED595(0x00);
  155.                                                                         Delay1(Time);
  156.                                                                         LED=1;LED595(0xff);
  157.                                                                         Delay1(100-Time);
  158.                                                                 }
  159.                
  160.                
  161.                                 }
  162.                                 
  163.                                 for(Time=100;Time>0;Time--)
  164.                                 {
  165.                                                         for(i=0;i<50;i++)
  166.                                                                 {
  167.                                                                         LED=0;LED595(0x00);
  168.                                                                         Delay1(Time);
  169.                                                                         LED=1;LED595(0xff);
  170.                                                                         Delay1(100-Time);
  171.                                                                 }
  172.                
  173.                
  174.                                 }
  175.                         }
  176.                 }
  177.                 }

  178.                
  179.                                        
  180. }

  181. void Timer0_Routine()  interrupt 1
  182. {               
  183.           static unsigned int T0Count; //This routine from BV1Mb411e7re
  184.                 TH0=64535/256;//new words;
  185.                 TL0=64535%256;
  186.                 T0Count++;
  187.         if(T0Count>=1000)
  188.         {
  189.                         T0Count=0;
  190.                         sec1++;
  191.                 if(sec1>9)
  192.                 {
  193.                         sec1=0;
  194.                         sec2++;
  195.                         if(sec2>=6)
  196.                         {
  197.                                 sec2=0;
  198.                                 min1++;
  199.                                 if(min1>9)
  200.                                 {
  201.                                         min1=0;
  202.                                         min2++;
  203.                                         if(min2>9)
  204.                                         {
  205.                                                 min2=0;
  206.                                         }
  207.                                 }
  208.                         }
  209.                 }
  210.         }
  211. }
复制代码

Keil代码下载:
手工板小实验.zip (167.72 KB, 下载次数: 29)


新手, 数码管显示, 51单片机程序, 74HC595

评分

参与人数 1黑币 +10 收起 理由
admin + 10 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩

相关帖子

  • • 51单片机密码锁提供断电保护并控制舵机 仿真程序
  • • 单片机+LCD1602与74hc595连接显示定时 程序问题
  • • 单片机的PM2.5温湿度仿真LCD不显示是怎么回事?
  • • 单片机循迹小车里面的一些检测电路,A/D模块等一些模块的分程序怎么写?
  • • 关于51单片机AD采集土壤湿度传感器的问题,求解
  • • 51单片机Proteus仿真错误runtime errno is 2
  • • 基于51单片机的智能红绿灯Proteus仿真代码
  • • keil编译无法生成hex文件,显示目标未创建
回复

使用道具 举报

沙发
ID:707309 发表于 2022-3-27 08:32 | 只看该作者
请问上面的图纸用什么软件画的
回复

使用道具 举报

板凳
ID:1002550 发表于 2022-4-5 20:32 | 只看该作者
cyf7175 发表于 2022-3-27 08:32
请问上面的图纸用什么软件画的

ALTIUM D
回复

使用道具 举报

返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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

玻璃钢生产厂家商场创意商业美陈道具淮安玻璃钢雕塑加工玻璃钢雕塑金属壳黄南商场美陈四川商场美陈订购泸州成都商场美陈新闻萍乡创意玻璃钢雕塑销售厂家电镀玻璃钢雕塑摆件上海室内商场美陈多少钱洛阳大型玻璃钢雕塑制作厂家湖南动物玻璃钢雕塑订做价格白银动物玻璃钢雕塑哪家好内蒙古玻璃钢泡沫雕塑无锡玻璃钢造型雕塑玻璃钢雕塑彩绘价格抚州公园玻璃钢雕塑设计内蒙古卡通玻璃钢雕塑定制重庆玻璃钢雕塑推荐厂家阜南5米玻璃钢牛雕塑溧阳玻璃钢伟人像雕塑四平玻璃钢雕塑工程施工德州花朵玻璃钢景观雕塑厂家十二生肖玻璃钢雕塑设计厂家拉萨商场美陈雕塑贵州佛像玻璃钢雕塑供应商山东中庭商场美陈研发公司福建开业商场美陈供应玻璃钢雕塑专业吗河北玻璃钢花盆厂家陕西学校玻璃钢抽象艺术雕塑摆件香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化