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

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

芯片解密单片机红外遥控直流电机调速系统的程序设计

  1. 芯片解密#include <reg51.h>

  2. 芯片解密#define uchar unsigned char
  3. 芯片解密#define uint unsigned int

  4. sbit RS=P2^6;   //LCD引脚
  5. sbit RW=P2^5;
  6. sbit EN=P2^7;
  7. sbit IRIN=P3^2;  //红外接口
  8. sbit PWM_Out=P1^0;  //PWM输出引脚

  9. uchar tab[]={"IR-CODE:00H"};                                                                                          
  10. unsigned char IrValue[6];
  11. unsigned char Time;
  12. unsigned char PWM_Cnt,PWM_Duty; //PWM_cnt : PWM周期变量 0~10; PWM_Duty: 占空比变量0~10
  13. void System_Init();   
  14. void Delay_Ms(unsigned int x);
  15. void delayms(uint ms)
  16. {
  17.   uint i,j;
  18.   for (i=ms;i>0;i--)
  19.   for(j=0;j<124;j++);
  20. }
  21. void lcdwc(uchar com)//写入命令
  22. {
  23.         RS=0;  //选择写入命令
  24.         RW=0;  //选择写入
  25.         EN=0;  //使能清零
  26.         P0=com; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
  27.         delayms(5);
  28.         EN=1;  //写入时序
  29.         delayms(5);
  30.         EN=0;  
  31.         P0=com<<4;//发送低四位
  32.         delayms(5);
  33.         EN= 1;         //写入时序
  34.         delayms(5);
  35.         EN= 0;

  36. }

  37. void lcdwd(uchar dat)//写入数据
  38. {
  39.         RS=1; //选择写入数据
  40.         RW=0; //选择写入
  41.         EN=0; //使能清零
  42.         P0=dat;//由于4位的接线是接到P0口的高四位,所以传送高四位不用改
  43.         delayms(5);
  44.         EN=1; //写入时序
  45.         delayms(5);
  46.         EN=0;
  47.         P0=dat<< 4; //写入低四位
  48.         delayms(5);
  49.         EN=1; //写入时序
  50.         delayms(5);
  51.         EN=0;

  52. }

  53. void initlcd()
  54. {
  55.         lcdwc(0x32); //将8位总线转为4位总线
  56.         lcdwc(0x28);//在四位线下的初始化
  57.         delayms(5);
  58.         lcdwc(0x0c);//00001100 显示开及光标设置
  59.         lcdwc(0x06);//00000110 显示光标移动设置
  60.         lcdwc(0x01);//00000001 清屏
  61.                
  62. }

  63. void main()
  64. {
  65.         uchar i;
  66.         initlcd();
  67.         lcdwc(0x80);//设置数据指针起点

  68.         for(i=0;i<11;i++)
  69.         {
  70.      lcdwd(tab[i]);               
  71.         }
  72.         
  73.         System_Init();
  74.         while(1)
  75.         {
  76.                
  77.         }
  78. }
  79. void System_Init()
  80. {
  81.         TMOD |= 0X10;   //定时器1 16位计时模式   
  82.         
  83.         TH1=(65536-1000)/256;   //定时1ms中断一次   生成100HZ 的PWM信号
  84.         TL1=(65536-1000)%256;
  85.         TR1=1;
  86.         ET1=1;
  87.         
  88.         IT0=1;//下降沿触发
  89.         EX0=1;//打开中断0允许
  90.         EA=1;        //打开总中断

  91.         IRIN=1;//初始化端口        
  92. }
  93. /*******************************************************************************
  94. * 函数名         : DelayMs()
  95. * 函数功能                   : 延时
  96. * 输入           : x
  97. * 输出                  : 无
  98. *******************************************************************************/

  99. void Delay_Ms(unsigned int x)   //0.14ms误差 0us
  100. {
  101. unsigned char i;
  102.   while(x--)
  103. {
  104.   for (i = 0; i<13; i++)
  105. {}
  106. }
  107. }



联系方式

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

在线客服
热线电话

企业微信