找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1060|回复: 1
收起左侧

求思路 单片机LCD显示屏数字交换

[复制链接]
ID:645429 发表于 2019-12-3 20:57 | 显示全部楼层 |阅读模式
我想做个按钮可以将甲乙分数调换 可是不会做 求助大神救救孩子


下面是程序
  1. #include<reg51.h>//51?????????
  2. typedef unsigned char uchar;
  3. typedef unsigned int  uint;
  4. sbit K1=P3^2;//????????????/???
  5. sbit K3=P1^3;//???+1????
  6. sbit K5=P1^1;//???+1????
  7. sbit K9=P1^6;//??????  
  8. sbit RS=P2^7;
  9. sbit E=P2^5;
  10. uchar bb,cc;
  11. uchar code table1[]={"JIA 000:000 YI "};
  12. uchar code table2[]={"RU PING LAO DIAO"};
  13. //????????
  14. void delay(uint z)  
  15. {
  16. uint x;
  17. uchar y;
  18. for(x=z;x>0;x--)
  19.     for(y=110;y>0;y--);
  20. }
  21. //LCD1602???д????????
  22. void write_com(uchar com)
  23. {
  24. RS=0;
  25. P0=com;
  26. delay(5);
  27. E=1;
  28. delay(5);
  29. E=0;
  30. }
  31. //LCD1602???д?????????
  32. void write_date(uchar date)
  33. {
  34. RS=1;
  35. P0=date;
  36. delay(5);
  37. E=1;
  38. delay(5);
  39. E=0;
  40. }
  41. //LCD1602?????????????
  42. void LCD1602_init()
  43. {
  44. uchar i;
  45. bb=0;    //H.T?????????
  46. cc=0;    //R.T?????????
  47. TMOD=0x10;    //?????1?????
  48. TL1=0x00;
  49. TH1=0x4c;
  50. EA=1;     //?????ж?
  51. ET1=1;     //???????1
  52. TR1=0;     //?????1??????
  53. EX0=1;     //???ж?0
  54. EX1=1;     //???ж?1
  55. IT0=1;     //?ж?0????????
  56. IT1=1;     //?ж?1????????
  57. E=0;
  58. write_com(0x38);  //LCD???ó????
  59. write_com(0x0c);
  60. write_com(0x06);
  61. write_com(0x01);
  62. write_com(0x80);  //LCD????????
  63. for(i=0;i<16;i++)
  64. {
  65.     write_date(table1[i]);
  66. }
  67. write_com(0x80+0x40);
  68. for(i=0;i<16;i++)
  69. {
  70.     write_date(table2[i]);
  71. }
  72. }
  73. //?????????????
  74. void point_lcd(uchar add,uchar dat)
  75. {
  76. write_com(0x80+add);
  77. write_date(0x30+dat/100);
  78. write_date(0x30+(dat%100)/10);
  79. write_date(0x30+dat%10);
  80. write_com(0x80+add);
  81. }
  82. //????????????
  83. void keyscan()
  84. {
  85. if(K3==0)     //K3????H.T???????
  86. {
  87.     while(K3==0);
  88.   bb++;
  89.     point_lcd(0x04,bb);  //???????????
  90.     if(K3==0)    //??????  
  91.     {
  92.       while(K3==0);
  93.       delay(20);
  94.     }
  95. }
  96.   if(K5==0)    //S5????R.T???????
  97. {
  98.     while(K5==0);
  99.   cc++;
  100.     point_lcd(0x08,cc);
  101.     if(K5==0)
  102.     {
  103.       while(K5==0);
  104.       delay(20);
  105.     }
  106.   }
  107. }
  108. //??????
  109. void main()
  110. {
  111. LCD1602_init();
  112. while(1)
  113. {
  114.     keyscan();  //???????????
  115. }
  116. }
  117. //??0?ж??????
复制代码


111.PNG

111.zip

16.61 KB, 下载次数: 5, 下载积分: 黑币 -5

回复

使用道具 举报

ID:645429 发表于 2019-12-13 21:07 | 显示全部楼层
不用了 已经靠我的聪明才智解决了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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