找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2177|回复: 0
打印 上一主题 下一主题
收起左侧

原创VB上位机控制单片机数码管-流水灯-蜂鸣器 下位机联合测试源程序

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar flag,CPdata,count;
  5. sbit dula=P2^6;
  6. sbit wela=P2^7;
  7. sbit beep=P2^3;
  8. uchar code table[]={

  9.                 0x3F,  //"0"
  10.                 0x06,  //"1"
  11.                 0x5B,  //"2"
  12.                 0x4F,  //"3"
  13.                 0x66,  //"4"
  14.                 0x6D,  //"5"
  15.                 0x7D,  //"6"
  16.                 0x07,  //"7"
  17.                 0x7F,  //"8"
  18.                 0x6F,  //"9"
  19.                 0x77,  //"A"
  20.                 0x7C,  //"B"
  21.                 0x39,  //"C"
  22.                 0x5E,  //"D"
  23.                 0x79,  //"E"
  24.                 0x71,  //"F"
  25.                          };
  26. void delay1(uint z)//1ms
  27. {
  28.         uint x,y;
  29.         for(x=z;x>0;x--)
  30.                 for(y=120;y>0;y--);       
  31. }
  32. void display(uchar value)
  33. {
  34.         uchar bai,shi;
  35.         bai=value/16;
  36.         shi=value%16;

  37.         dula=1;
  38.         P0=table[bai];
  39.         dula=0;
  40.         P0=0xff;
  41.         wela=1;
  42.         P0=0xfe;
  43.         wela=0;
  44.         delay1(1);

  45.         dula=1;
  46.         P0=table[bai];
  47.         dula=0;
  48.         P0=0xff;
  49.         wela=1;
  50.         P0=0xfd;
  51.         wela=0;
  52.         delay1(1);

  53.         dula=1;
  54.         P0=table[bai]|0x80;
  55.         dula=0;
  56.         P0=0xff;
  57.         wela=1;
  58.         P0=0xfb;
  59.         wela=0;
  60.         delay1(1);

  61.         dula=1;
  62.         P0=table[shi];
  63.         dula=0;
  64.         P0=0xff;
  65.         wela=1;
  66.         P0=0xf7;
  67.         wela=0;
  68.         delay1(1);

  69.         dula=1;
  70.         P0=table[shi];
  71.         dula=0;
  72.         P0=0xff;
  73.         wela=1;
  74.         P0=0xef;
  75.         wela=0;
  76.         delay1(1);

  77.         dula=1;
  78.         P0=table[shi];
  79.         dula=0;
  80.         P0=0xff;
  81.         wela=1;
  82.         P0=0xdf;
  83.         wela=0;
  84.         delay1(1);
  85. }
  86. void init()
  87. {
  88.         TMOD=0x20;//设置定时计数器T1为工作方式2,8位自动重装
  89.         TH1=0xfd;//此溢出率为波特率9600
  90.         TL1=0xfd;
  91.         TR1=1; //启动定时器1
  92.         SM1=1; //设置串口工作方式1,10位异步收发器
  93.         REN=1; //允许串口接受位
  94.         EA=1;  //开总中断
  95.         ES=1;  //开串口中断
  96. }
  97. void main()
  98. {
  99.         init();
  100.         while(1)
  101.         {
  102.                 display(CPdata);
  103.                 if(CPdata==0xeb)
  104.                   beep=0;
  105.                 else
  106.                         beep=1;
  107.                 if(flag==1)
  108.                 {
  109.                         ES=0;
  110.                         flag=0;
  111.                         SBUF=CPdata;
  112.                         while(!TI);
  113.                         TI=0;
  114.                         ES=1;
  115.                 }       
  116.         }
  117. }
  118. void timer3() interrupt 4        //串口中断
  119. {
  120.         RI=0;
  121.         P1=SBUF;
  122.         CPdata=SBUF;
  123.         flag=1;
  124. }
复制代码

所有资料51hei提供下载:
原创VB上位机控制数码管-流水灯-蜂鸣器.zip (106.69 KB, 下载次数: 25)


评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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