找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

求修改程序,大致上就是将八位数码管改成这样

查看数: 1923 | 评论数: 3 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-7-5 16:10

正文摘要:

#include<reg51.h> #define uchar unsigned char sbit S1=P3^4; sbit dula=P2^6; sbit wela=P2^7; uchar k; void delay_ms(uchar z) {         uchar i,j;     &n ...

回复

ID:213173 发表于 2020-7-5 21:45

  1. #include<reg51.h>
  2. #define uchar unsigned char

  3. sbit S1=P3^4;
  4. sbit dula=P2^6;
  5. sbit wela=P2^7;

  6. uchar code table[9][8]={
  7. 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
  8. 0x00,0x00,0x00,0x06,0x30,0x00,0x00,0x00,
  9. 0x00,0x00,0x00,0x36,0x36,0x00,0x00,0x00,
  10. 0x00,0x00,0x06,0x36,0x36,0x30,0x00,0x00,
  11. 0x00,0x00,0x36,0x36,0x36,0x36,0x00,0x00,
  12. 0x00,0x06,0x36,0x36,0x36,0x36,0x30,0x00,
  13. 0x00,0x36,0x36,0x36,0x36,0x36,0x36,0x00,
  14. 0x06,0x36,0x36,0x36,0x36,0x36,0x36,0x30,
  15. 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36};
  16. uchar code weia[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

  17. uchar i,j,k;

  18. void delay_ms(uchar z)
  19. {
  20.         uchar i,j;
  21.         for(i=z;i>0;i--)
  22.                 for(j=110;j>0;j--);
  23. }

  24. void keyscan()
  25. {
  26.         if(S1==0)
  27.         {
  28.                 if(++j>10)
  29.                         j=11;
  30.                 if(j==10)
  31.                 {
  32.                         k++;
  33.                         if(k>8)
  34.                                 k=0;
  35.                 }
  36.         }
  37.         else j=0;
  38. }

  39. void display()
  40. {
  41.         P0=0x00;dula=1;dula=0;
  42.         P0=weia[i];wela=1;wela=0;
  43.         P0=table[k][i];dula=1;dula=0;
  44.         i++;i%=8;
  45. }

  46. void main()
  47. {
  48.         while(1)
  49.         {
  50.                 keyscan();
  51.                 display();
  52.                 delay_ms(1);
  53.         }
  54. }
复制代码





ID:568565 发表于 2020-7-5 20:09

这样的效果?


ID:332444 发表于 2020-7-5 17:29
也就是一个数码管显示||这样的符号,送给数码管的信号是固定的,只要控制点亮的个数就可以了?还是要显示对称的,若显示对称的则一个数码管显示右|一个显示左|这样的话送给数码管的值就有变化了,不过也就是2个值而已。

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

Powered by 单片机教程网

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