找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5040|回复: 6
收起左侧

单片机简易计算器仿真及程序和Hex文件

[复制链接]
ID:137190 发表于 2016-9-3 02:53 | 显示全部楼层 |阅读模式
16493579hflvfdfy9ffuiu.bmp 164935ra365h6kfa52iftz.png.thumb.jpg
下面是计算器的程序(完整代码和仿真工程文件请下载本帖最后的附件)
  1. #include<reg51.h>   //头文件

  2. #define uint unsigned int //

  3. #define uchar unsigned char




  4. sbit lcden=P2^3; //定义引脚

  5. sbit rs=P2^4;

  6. sbit rw=P2^0;

  7. sbit busy=P0^7;




  8. char i,j,temp,num,num_1;

  9. long a,b,c;     //a,第一个数 b,第二个数 c,得数

  10. float a_c,b_c;

  11. uchar flag,fuhao;//flag表示是否有符号键按下,fuhao表征按下的是哪个符号




  12. uchar code table[]={

  13. 7,8,9,0,

  14. 4,5,6,0,

  15. 1,2,3,0,

  16. 0,0,0,0};

  17. uchar code table1[]={

  18. 7,8,9,0x2f-0x30,

  19. 4,5,6,0x2a-0x30,

  20. 1,2,3,0x2d-0x30,

  21. 0x01-0x30,0,0x3d-0x30,0x2b-0x30};




  22. void delay(uchar z) // 延迟函数

  23. {

  24. uchar y;

  25. for(z;z>0;z--)

  26.    for(y=0;y<110;y++);

  27. }




  28. void check() // 判断忙或空闲

  29. {

  30. do{

  31.     P0=0xFF;

  32.     rs=0;     //指令

  33.     rw=1;     //读

  34.     lcden=0;     //禁止读写

  35.     delay(1); //等待,液晶显示器处理数据

  36.     lcden=1;     //允许读写

  37.     }while(busy==1); //判断是否为空闲,1为忙,0为空闲

  38. }

  39. void write_com(uchar com) // 写指令函数

  40. {

  41. P0=com;    //com指令付给P0口

  42. rs=0;

  43. rw=0;

  44. lcden=0;

  45. check();

  46. lcden=1;

  47. }




  48. void write_date(uchar date) // 写数据函数

  49. {

  50.     P0=date;

  51. rs=1;

  52. rw=0;

  53. lcden=0;

  54. check();

  55. lcden=1;

  56. }




  57. void init() //初始化

  58. {

  59.     num=-1;

  60. lcden=1; //使能信号为高电平

  61. write_com(0x38); //8位,2行

  62. write_com(0x0c); //显示开,光标关,不闪烁*/

  63. write_com(0x06); //增量方式不移位 显竟獗暌贫 柚?

  64. write_com(0x80); //检测忙信号

  65. write_com(0x01); //显示开,光标关,不闪烁

  66. num_1=0;

  67. i=0;

  68. j=0;

  69. a=0;     //第一个参与运算的数

  70. b=0;     //第二个参与运算的数

  71. c=0;

  72. flag=0; //flag表示是否有符号键按下,

  73. fuhao=0; // fuhao表征按下的是哪个符号

  74. }
复制代码

真的设计.rar

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

回复

使用道具 举报

ID:160447 发表于 2017-1-7 12:06 | 显示全部楼层
为什么仿真按键不显示,,,,,
回复

使用道具 举报

ID:357437 发表于 2018-6-24 12:27 | 显示全部楼层
liuyuxi1111 发表于 2017-1-7 12:06
为什么仿真按键不显示,,,,,

程序怎么打不开
回复

使用道具 举报

ID:370090 发表于 2018-7-12 16:01 | 显示全部楼层
挺好呀,有点不懂,在学习
回复

使用道具 举报

ID:425384 发表于 2018-11-13 10:35 | 显示全部楼层
c语言的代码怎么没有?
回复

使用道具 举报

ID:435679 发表于 2018-11-29 13:42 | 显示全部楼层
哈,太好了
回复

使用道具 举报

ID:650894 发表于 2019-11-29 10:46 来自手机 | 显示全部楼层
可以吧ats89c51换成stc89c51吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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