找回密码
 立即注册

QQ登录

只需一步,快速开始

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

自行车测速仿真 PROTEUS

  [复制链接]
跳转到指定楼层
#
希望对大家有帮助!下记住要顶呀!

自行车测速仿真.rar (48.8 KB, 下载次数: 512)

源码:
  1. #include "d:\c51\reg51.h"
  2. #include "d:\c51\intrins.h"


  3. sbit LCM_RS=P3^0;
  4. sbit LCM_RW=P3^1;
  5. sbit LCM_EN=P3^7;

  6. #define BUSY                  0x80              //常量定义
  7. #define DATAPORT         P1
  8. #define uchar                 unsigned char
  9. #define uint                   unsigned int
  10. #define L                        50

  11. uchar str0[16],str1[16],count;
  12. uint speed;
  13. unsigned long time;

  14. void ddelay(uint);
  15. void lcd_wait(void);
  16. void display();
  17. void initLCM();
  18. void WriteCommandLCM(uchar WCLCM,uchar BusyC);
  19. void STR();
  20. void account();


  21. /*********延时K*1ms,12.000mhz**********/

  22. void int0_isr(void) interrupt 0         /*遥控使用外部中断0,接P3.2口*/
  23. {
  24.     unsigned int temp;
  25.         time=count;
  26.     TR0=0;
  27.         temp=TH0;
  28.         temp=((temp << 8) | TL0);
  29.     TH0=0x3c;
  30.     TL0=0xaf;
  31.         count=0;
  32.     TR0=1;
  33.         time=time*50000+temp;
  34. }

  35. void time0_isr(void) interrupt 1        /*遥控使用定时计数器1 */
  36. {
  37.    TH0 =0x3c;
  38.    TL0 =0xaf;
  39.    count++;
  40. }

  41. void main(void)
  42. {
  43.            TMOD=0x01;                       /*TMOD T0选用方式1(16位定时) */
  44.     IP|=0x01;                           /*INT0 中断优先*/
  45.     TCON|=0x11;                         /*TCON  EX0下降沿触发,启动T0*/
  46.     IE|=0x83;  
  47.     TH0=0x3c;
  48.     TL0=0xaf;
  49.   
  50.         initLCM();
  51.            WriteCommandLCM(0x01,1);                    //清显示屏
  52.         for(;;)
  53.         {
  54.                 account();
  55.                 display();
  56.         }
  57. }

  58. void account()
  59. {
  60.         unsigned long a;
  61.         if (time!=0)
  62.         {
  63.                 a=L*360000000/time;
  64.         }
  65.         speed=a;
  66. }



  67. void STR()
  68. {
  69.         str0[0]='S';
  70.         str0[1]='p';
  71.         str0[2]='e';
  72.     str0[3]='e';
  73.         str0[4]='d';
  74.         str0[5]=' ';       
  75.         str0[6]=(speed%100000)/10000+0x30;
  76.         str0[7]=(speed%10000)/1000+0x30;
  77.         str0[8]=(speed%1000)/100+0x30;
  78.         str0[9]='.';
  79.         str0[10]=(speed%100)/10+0x30;
  80.         str0[11]=speed%10+0x30;
  81.         str0[12]='k';
  82.         str0[13]='m';
  83.         str0[14]='/';
  84.         str0[15]='h';
  85. }

  86. void ddelay(uint k)
  87. {
  88.     uint i,j;
  89.     for(i=0;i<k;i++)
  90.     {
  91.         for(j=0;j<60;j++)
  92.                 {;}
  93.     }
  94. }
  95. /**********写指令到LCD子函数************/

  96. void WriteCommandLCM(uchar WCLCM,uchar BusyC)
  97. {
  98.     if(BusyC)lcd_wait();
  99.         DATAPORT=WCLCM;
  100.     LCM_RS=0;                   /* 选中指令寄存器*/
  101.     LCM_RW=0;                       // 写模式
  102.     LCM_EN=1;
  103.         _nop_();
  104.         _nop_();
  105.         _nop_();
  106.     LCM_EN=0;

  107. }

  108. /**********写数据到LCD子函数************/

  109. void WriteDataLCM(uchar WDLCM)
  110. {
  111.     lcd_wait( );            //检测忙信号
  112.         DATAPORT=WDLCM;
  113.     LCM_RS=1;               /* 选中数据寄存器  */
  114.     LCM_RW=0;                   // 写模式
  115.     LCM_EN=1;
  116.     _nop_();
  117.         _nop_();
  118.         _nop_();
  119.     LCM_EN=0;
  120. }

  121. /***********lcd内部等待函数*************/

  122. void lcd_wait(void)
  123. {
  124.     DATAPORT=0xff;             //读LCD前若单片机输出低电平,而读出LCD为高电平,则冲突,Proteus仿真会有显示逻辑黄色
  125.         LCM_EN=1;
  126.     LCM_RS=0;
  127.     LCM_RW=1;
  128.     _nop_();
  129.     _nop_();
  130.         _nop_();
  131.     while(DATAPORT&BUSY)
  132.         {  LCM_EN=0;
  133.            _nop_();
  134.            _nop_();
  135.            LCM_EN=1;
  136.            _nop_();
  137.            _nop_();
  138.         }
  139.            LCM_EN=0;

  140. }

  141. /**********LCD初始化子函数***********/
  142. void initLCM( )
  143. {
  144.         DATAPORT=0;
  145.         ddelay(15);
  146.         WriteCommandLCM(0x38,0);    //三次显示模式设置,不检测忙信号
  147.     ddelay(5);
  148.     WriteCommandLCM(0x38,0);
  149.     ddelay(5);
  150.     WriteCommandLCM(0x38,0);
  151.     ddelay(5);

  152.     WriteCommandLCM(0x38,1);    //8bit数据传送,2行显示,5*7字型,检测忙信号
  153.     WriteCommandLCM(0x08,1);    //关闭显示,检测忙信号
  154.     WriteCommandLCM(0x01,1);    //清屏,检测忙信号
  155.     WriteCommandLCM(0x06,1);    //显示光标右移设置,检测忙信号
  156.     WriteCommandLCM(0x0c,1);    //显示屏打开,光标不显示,不闪烁,检测忙信号
  157. }

  158. /****显示指定坐标的一个字符子函数****/

  159. void DisplayOneChar(uchar X,uchar Y,uchar DData)
  160. {
  161.     Y&=1;
  162.     X&=15;
  163.     if(Y)X|=0x40;               //若y为1(显示第二行),地址码+0X40
  164.     X|=0x80;                    //指令码为地址码+0X80
  165.     WriteCommandLCM(X,0);
  166.     WriteDataLCM(DData);
  167. }

  168. /*******显示指定坐标的一串字符子函数*****/

  169. void DisplayListChar(uchar X,uchar Y,uchar *DData)
  170. {
  171.     uchar ListLength=0;
  172.     Y&=0x01;
  173.     X&=0x0f;
  174.     while(X<16)
  175.     {
  176.         DisplayOneChar(X,Y,DData[ListLength]);
  177.         ListLength++;
  178.         X++;
  179.     }
  180. }


  181. void display()
  182. {

  183.         STR();
  184.         DisplayListChar(0,0,str0);
  185.            DisplayListChar(0,1,str1);
  186. }
复制代码



评分

参与人数 2黑币 +14 收起 理由
tieq1952 + 9 赞一个!
348652560 + 5 赞一个!

查看全部评分

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

使用道具 举报

68#
ID:312929 发表于 2019-4-17 20:54 | 只看该作者
下载以后液晶没变化则呢么办
回复

使用道具 举报

67#
ID:375739 发表于 2018-7-20 12:24 | 只看该作者
赞赞赞
回复

使用道具 举报

66#
ID:308395 发表于 2018-5-3 09:51 | 只看该作者
楼主,你能说明一下 下方蓝色的是怎么出来的吗?我是新手,有点不懂
回复

使用道具 举报

65#
ID:253767 发表于 2018-1-3 15:24 | 只看该作者
新买一辆电动车,只能显示电量,没有速度、里程等显示,准备自己DIY一个。这个可以作个参考。
回复

使用道具 举报

64#
ID:265670 发表于 2017-12-23 14:42 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

63#
ID:253767 发表于 2017-12-2 18:58 | 只看该作者
赞一下!下载了。谢谢!
回复

使用道具 举报

62#
ID:211517 发表于 2017-6-15 16:11 | 只看该作者
楼主下面那个蓝色的是啥呀
回复

使用道具 举报

61#
ID:209181 发表于 2017-6-8 21:06 | 只看该作者
谢谢分享
回复

使用道具 举报

60#
ID:154576 发表于 2017-3-6 14:04 | 只看该作者
学习了!感谢楼主!!
回复

使用道具 举报

59#
ID:140358 发表于 2016-9-27 08:15 | 只看该作者
发现好多东西都有用
回复

使用道具 举报

58#
ID:92733 发表于 2016-9-20 21:57 | 只看该作者
找了好久了
回复

使用道具 举报

57#
ID:129239 发表于 2016-7-4 23:26 | 只看该作者
顶一个
回复

使用道具 举报

56#
ID:116410 发表于 2016-4-24 20:30 | 只看该作者
顶咯 再加赞
回复

使用道具 举报

55#
ID:115147 发表于 2016-4-19 10:57 | 只看该作者
值得拥有,感谢楼主
回复

使用道具 举报

54#
ID:112239 发表于 2016-4-4 22:18 | 只看该作者
请问这是用什么软件仿真的?
回复

使用道具 举报

53#
ID:111582 发表于 2016-4-3 15:10 | 只看该作者
赞!!!!!!!!!
回复

使用道具 举报

52#
ID:80462 发表于 2016-3-30 13:13 | 只看该作者

多谢楼主奉献。
回复

使用道具 举报

51#
ID:110168 发表于 2016-3-22 14:38 | 只看该作者
感谢楼主分享哈哈哈
回复

使用道具 举报

50#
ID:110168 发表于 2016-3-22 14:38 | 只看该作者
很好,楼主棒棒的
回复

使用道具 举报

49#
ID:108109 发表于 2016-3-18 17:22 | 只看该作者
运行了,怎么测的?
回复

使用道具 举报

48#
ID:107450 发表于 2016-3-5 16:20 | 只看该作者
多谢楼主,先码了再看看!
回复

使用道具 举报

47#
ID:102308 发表于 2016-1-7 21:06 | 只看该作者
赚分路过
回复

使用道具 举报

46#
ID:44267 发表于 2015-10-20 11:21 | 只看该作者
下了,感觉不是想要的
回复

使用道具 举报

45#
ID:92222 发表于 2015-10-16 13:43 | 只看该作者
感谢朋友分享
回复

使用道具 举报

44#
ID:90992 发表于 2015-10-13 12:49 | 只看该作者
先谢谢了,下载望望
回复

使用道具 举报

43#
ID:84098 发表于 2015-6-27 19:19 | 只看该作者
蛮有用的
回复

使用道具 举报

42#
ID:83311 发表于 2015-6-19 12:44 | 只看该作者
看看,先谢过了。
回复

使用道具 举报

41#
ID:83311 发表于 2015-6-17 22:02 | 只看该作者
我是新手,想看看,先谢过。
回复

使用道具 举报

40#
ID:83193 发表于 2015-6-16 21:36 | 只看该作者
顶一下
回复

使用道具 举报

39#
ID:80994 发表于 2015-6-11 21:08 | 只看该作者
不错哦、,,,,
回复

使用道具 举报

38#
ID:81554 发表于 2015-6-10 00:32 | 只看该作者
谢谢了,正好学习下
回复

使用道具 举报

37#
ID:82353 发表于 2015-6-8 13:26 | 只看该作者
非常感谢,
回复

使用道具 举报

36#
ID:81598 发表于 2015-5-30 20:33 | 只看该作者
需要啊
回复

使用道具 举报

35#
ID:56948 发表于 2015-5-17 23:10 来自触屏版 | 只看该作者
新手多多指教
回复

使用道具 举报

34#
ID:80298 发表于 2015-5-17 22:08 | 只看该作者
谢谢楼主分享  先码了
回复

使用道具 举报

33#
ID:36735 发表于 2015-5-5 11:23 | 只看该作者
感谢楼主分享!!!
回复

使用道具 举报

32#
ID:47652 发表于 2015-5-4 16:26 | 只看该作者
顶一下!
回复

使用道具 举报

31#
ID:72050 发表于 2015-4-28 16:57 | 只看该作者
顶一下
回复

使用道具 举报

30#
ID:74370 发表于 2015-3-15 22:21 | 只看该作者
支持一下再看
回复

使用道具 举报

29#
ID:69482 发表于 2015-1-19 16:21 | 只看该作者
顶一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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