芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

PCF8591简易电压表制作单片机解密

  1. 单片机解密#include<reg52.h>    //包含单片机寄存器的头文件
  2. 单片机解密#include <intrins.h>

  3. #define ulong unsigned long
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define LCD1602_PORT P2          //用LED1602_PORT表示P2总线接口
  7. #define  PCF8591 0x90    //PCF8591 地址
  8. #define  NOP()   _nop_()   /* 定义空指令 */
  9. #define  _Nop()  _nop_()   /*定义空指令*/

  10. // 位定义
  11. sbit SCL=P1^0;       //I2C  时钟
  12. sbit SDA=P1^1;       //I2C  数据
  13. sbit LCD1602_RS = P0^5;      //定义1602液晶显示屏的数据/命令选择端,数据/命令(H/L)
  14. sbit LCD1602_RW = P0^6;      //定义1602液晶显示屏的读/写选择端,读/写(H/L)
  15. sbit LCD1602_EN = P0^7;      //定义1602液晶显示屏的使能端
  16. bit ack;                 /*应答标志位*/

  17. // 变量定义
  18. uchar AD_CHANNEL;
  19. ulong xdata  LedOut[8];      //单片机内部存取器
  20. ulong  v,a,ss;
  21. uchar date;

  22. // 函数申明
  23. extern bit ack;        //起动总线函数
  24. extern void Start_I2c();    //结束总线函数  
  25. extern void Stop_I2c();        //应答子函数
  26. extern void Ack_I2c(bit a);        //字节数据发送函数
  27. extern void  SendByte(uchar  c);    //有子地址发送多字节数据函数               
  28. extern bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no) ;    //无子地址发送多字节数据函数   
  29. extern bit ISendStrExt(uchar sla,uchar *s,uchar no);    //无子地址读字节数据函数               
  30. extern uchar RcvByte();

  31. void LCD1602_delay_ms(uint n);
  32. void LCD1602_write_com(uchar com);
  33. void LCD1602_write_data(ulong dat);
  34. void LCD1602_write_word(uchar *s);
  35. void Init_LCD1602();

  36. bit ISendByte(uchar sla,uchar c);
  37. uchar IRcvByte(uchar sla);

  38. //MS延时函数(12M晶振下测试)
  39. void delay_ms(uint n)   
  40. {
  41.     unsigned int  i,j;
  42.     for(i=0;i<n;i++)
  43.         for(j=0;j<123;j++);
  44. }

  45. //写指令
  46. void LCD1602_write_com(uchar com)
  47. {
  48.     LCD1602_RS = 0;         //1602液晶显示屏的数据/命令选择端置0,数据/命令(H/L),此时选择写命令操作
  49.     delay_ms(1);
  50.     LCD1602_EN = 1;         //使能,也就是打开液晶接收数据命令的通道
  51.     LCD1602_PORT = com;     //把命令送给P2口
  52.     delay_ms(1);
  53.     LCD1602_EN = 0;
  54. }

  55. //写数据
  56. void LCD1602_write_data(ulong dat)
  57. {
  58.     LCD1602_RS = 1;         //1602液晶显示屏的数据/命令选择端置0,数据/命令(H/L),此时选择写数据操作
  59.     delay_ms(1);   
  60.     LCD1602_PORT = dat;     //把数据送给P2口
  61.     LCD1602_EN = 1;
  62.     delay_ms(1);
  63.     LCD1602_EN = 0;
  64. }

  65. //连续写字符
  66. void LCD1602_write_word(uchar *s)
  67. {
  68.     while(*s>0)
  69.     {
  70.         LCD1602_write_data(*s);
  71.         s++;
  72.     }
  73. }

  74. //1602初始化函数
  75. void Init_LCD1602()                    
  76. {
  77.     LCD1602_EN = 0;
  78.     LCD1602_RW = 0;                        //设置为写状态
  79.     LCD1602_write_com(0x38);            //显示模式设定
  80.     LCD1602_write_com(0x0c);            //开关显示、光标有无设置、光标闪烁设置
  81.     LCD1602_write_com(0x06);            //写一个字符后指针加一
  82.     LCD1602_write_com(0x01);            //清屏指令
  83. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信