找回密码
 立即注册

QQ登录

只需一步,快速开始

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

电子硬币存钱罐的设计

[复制链接]
ID:319025 发表于 2018-4-29 17:25 | 显示全部楼层 |阅读模式
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #include<math.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define ulong unsigned long
  7. uint buffer1,buffer2;
  8. uchar dis1[17] ={'T','o','t','a','l','M','o','n','e','y','=',' ',' ',' ','.',' ','\0'};
  9. uchar dis2[17] ={'C','u','r','r','e','n','t','M','o','n','e','y','=',' ','.',' ','\0'};
  10. sbit LCD_RS = P1^1;           
  11. sbit LCD_EN = P1^0;              
  12. sbit QQ=P2^0;
  13. sbit WW=P2^1;
  14. sbit EE=P2^2;
  15. sbit RR=P2^3;
  16. void delay(int ms)
  17. {                           
  18.    int i;
  19.    while(ms--)
  20.    {
  21.      for(i =0; i< 250; i++)
  22.      {
  23.       _nop_();
  24.       _nop_();
  25.       _nop_();
  26.       _nop_();
  27.      }
  28.    }
  29. }

  30. void lcd_wcmd(uchar cmd)
  31. {                          
  32.   //while(lcd_busy());
  33.     LCD_RS =0;
  34.     LCD_EN =0;
  35.     _nop_();
  36.     _nop_();
  37.     P0 = cmd;
  38.     _nop_();
  39.     _nop_();
  40.     _nop_();
  41.     _nop_();
  42.     LCD_EN =1;
  43.     _nop_();
  44.     _nop_();
  45.     _nop_();
  46.     _nop_();
  47.     LCD_EN =0;  
  48. }

  49. void lcd_wdat(uchar dat)
  50. {                          
  51. //while(lcd_busy());
  52.     LCD_RS =1;
  53.    // LCD_RW =0;
  54.     LCD_EN =0;
  55.     P0 = dat;
  56.     _nop_();
  57.     _nop_();
  58.     _nop_();
  59.     _nop_();
  60.     LCD_EN =1;
  61.     _nop_();
  62.     _nop_();
  63.     _nop_();
  64.     _nop_();
  65.     LCD_EN =0;
  66. }

  67. void lcd_pos(uchar pos)
  68. {                          
  69.   lcd_wcmd(pos|0x80);   
  70. }

  71. void lcd_init()
  72. {                        
  73.    lcd_wcmd(0x38);         
  74.     delay(5);
  75.    lcd_wcmd(0x38);         
  76.     delay(5);
  77.    lcd_wcmd(0x38);         
  78.     delay(5);
  79.    lcd_wcmd(0x0c);         
  80.     delay(5);
  81.    lcd_wcmd(0x06);         
  82.     delay(5);
  83.    lcd_wcmd(0x01);         
  84.     delay(5);
  85. }

  86. void shujuchuli()
  87. {  
  88.     float temp1,temp2;
  89.        if(QQ==0)
  90.        {
  91.         temp1=temp1+1;
  92.         temp2=1;
  93.        }
  94.        if(WW==0)
  95.        {
  96.         temp1=temp1+0.5;
  97.         temp2=0.5;
  98.        }
  99.        if(EE==0)
  100.        {
  101.         temp1=temp1+0.1;
  102.         temp2=0.1;
  103.        }
  104.        if(RR==0)
  105.        {
  106.         temp1=temp1+0.1;
  107.         temp2=0.1;
  108.        }   
  109. buffer1=temp1*10;
  110. dis1[11]=(buffer1%10000)/1000+'0';
  111. dis1[12]=(buffer1%1000)/100+'0';
  112. dis1[13]=(buffer1%100)/10+'0';
  113. dis1[15]=buffer1%10+'0';
  114. buffer2=temp2*100;
  115. dis2[13]=(buffer2%1000)/100+'0';
  116. dis2[15]=(buffer2%100)/10+'0';                  
  117. }
  118. void xianshi()
  119. {uchar i;
  120.   lcd_wcmd(0x06);               
  121.      lcd_pos(0);                    
  122.          delay(5);
  123.          lcd_pos(0);                    

  124.       i = 0;
  125.          delay(1);
  126.     while(dis1[ i] != '\0')
  127.      {                                
  128.       lcd_wdat(dis1[ i]);
  129.        i++;
  130.       delay(1);               
  131.      }
  132.           delay(1);
  133.       lcd_pos(0x40);         
  134.           delay(1);
  135.           lcd_pos(0x40);        
  136.       i = 0;
  137.          delay(1);  
  138.     while(dis2[ i] != '\0')
  139.      {
  140.       lcd_wdat(dis2[ i]);           
  141.        i++;
  142.       delay(1);              
  143.      }
  144. }
  145. main()
  146. {
  147.   lcd_init();
  148.   while(1)
  149.    {
  150.    shujuchuli();
  151.     xianshi();
  152.    }
  153. }
复制代码


回复

使用道具 举报

ID:757960 发表于 2021-4-8 17:00 | 显示全部楼层
请问有Proteus仿真图吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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