当前位置:   article > 正文

22、基于51单片机电压电流功率系统设计(程序+原理图+PCB图+Proteus仿真+答辩技巧+开题报告+参考论文+元器件清单等)_基于51单片机的电压电流的系统设计

基于51单片机的电压电流的系统设计

目录

一、硬件方案

二、设计

三、成品实物图

四、原理图   

五、PCB图    

六、Proteus仿真   

七、程序源码   

部分代码:

 资料包括:


一、硬件方案

硬件组成:51系列单片机+ADC0832+按键+LCD1602液晶+LED设计而成。

 

二、设计功能

本设计基于单片机型号:STC89C52/51、AT89C52/51、AT89S52/51都可通用。
1、本设计基于51单片机实现电流、电压测量和功率的计算,并通过按键设置报警值,过压过流声光报警。
2、电压范围:直流0-30V;电流范围:直流0-1A。
3、系统四个按键,从左往右风别是,切换、设置、加、减。

三、成品实物图


四、原理图   


五、PCB图    


六、Proteus仿真   


七、程序源码   


部分代码:

  1. ADC0832_CLK=0; //为第一个脉冲作准备
  2. ADC0832_CS=0; //CS置0,片选有效
  3. ADC0832_DIO=1; //DIO置1,规定的起始信号
  4. ADC0832_CLK=1; //第一个脉冲
  5. ADC0832_CLK=0; //第一个脉冲的下降沿,此前DIO必须是高电平
  6. ADC0832_DIO=1; //DIO置1, 通道选择信号
  7. ADC0832_CLK=1; //第二个脉冲,第23个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道CH0
  8. ADC0832_CLK=0; //第二个脉冲下降沿
  9. ADC0832_DIO=Ch; //DI置0,选择通道0
  10. ADC0832_CLK=1; //第三个脉冲
  11. ADC0832_CLK=0; //第三个脉冲下降沿
  12. ADC0832_DIO=1; //第三个脉冲下沉之后,输入端DIO失去作用,应置1
  13. ADC0832_CLK=1; //第四个脉冲
  14. for(i=0;i<8;i++) //高位在前
  15. {
  16. ADC0832_CLK=1; //第四个脉冲
  17. ADC0832_CLK=0;
  18. dat<<=1; //将下面储存的低位数据向右移
  19. dat|=(unsigned char)ADC0832_DIO; //将输出数据DIO通过或运算储存在dat最低位
  20. }
  21. ADC0832_CS=1; //片选无效
  22. return dat; //将读书的数据返回
  23. }
  24. LCD1602_RS = 0;
  25. LCD1602_RW = 0;
  26. LCD1602_Data= com;
  27. delay_50us_1602(10);
  28. LCD1602_E = 1;
  29. delay_50us_1602(20);
  30. LCD1602_E = 0;
  31. }
  32. void LCD1602_write_data(unsigned int dat)
  33. {
  34. LCD1602_E = 0;
  35. LCD1602_RS = 1;
  36. LCD1602_RW = 0;
  37. LCD1602_Data = dat;
  38. delay_50us_1602(10);
  39. LCD1602_E = 1;
  40. delay_50us_1602(20);
  41. LCD1602_E = 0;
  42. }
  43. void LCD1602_init(void)
  44. {
  45. delay_50us_1602(300);
  46. LCD1602_write_com(0X38);
  47. delay_50us_1602(100);
  48. LCD1602_write_com(0X38);
  49. delay_50us_1602(100);
  50. LCD1602_write_com(0X38);
  51. LCD1602_write_com(0X38);
  52. LCD1602_write_com(0X08);
  53. LCD1602_write_com(0X01);
  54. LCD1602_write_com(0X06);
  55. LCD1602_write_com(0X0C);
  56. }
  57. void LCD1602_Clear(void)
  58. {
  59. LCD1602_write_com(0X01);
  60. }
  61. /*******************************************
  62. 函数名称:Disp_ZF
  63. 功 能:控制液晶显示字符
  64. 参 数:addr--显示位置的首地址
  65. pt--指向显示数据的指针
  66. num--显示字符个数
  67. 返回值 :无
  68. ********************************************/
  69. void LCD1602_Disp_ZF(unsigned char addr,const unsigned char * pt,unsigned char num)
  70. {
  71. unsigned char i;
  72. LCD1602_write_com(addr);

 资料包括:

需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/787813
推荐阅读
相关标签
  

闽ICP备14008679号