英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3384|回复: 0
打印 上一主题 下一主题

一组实用的PICC应用模块

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-31 15:04:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1:BIN TO BCD
(我认为我这个是很好的了;即小又快!用在有时钟显示的地方)
/*******************************************************************
公司名称:
模块名称:BCD.c
功    能:BCD模块//仅适用于两位数           
说    明:count选1则返回个位数;为2则返回十位数;display_buf为送显的数
程序设计:FANZENGTING      
设计时间:2001.06.02        
版 本 号: 20010602
*******************************************************************/
/////////////////////////////////////////////
unsigned char bcd(unsigned char count,unsigned char display_buf)
{
unsigned char one_count=0;
unsigned char two_count=0;
unsigned char bus_count=0;
for(;display_buf!=bus_count;)
{
   bus_count++;
        one_count++;
  if(one_count==10)
  {
   one_count=0;
   two_count++;
  }
}
if(count==1)
{
  return(one_count);
}
else
{
  return(two_count);
}
}
/*******************************************************************/


2:BUZZER驱动
/*******************************************************************
公司名称:
模块名称:BUZZER.c
功    能:蜂鸣器模块驱动      
说    明:用PWM输出来驱动无源蜂鸣器
程序设计:FANZENGTING      
设计时间:2001.06.02        
版 本 号: 20010602
*******************************************************************/
/*******************************************************************
buzzer_count=1;buzzer_leng=60000;(一声短)
buzzer_count=2;buzzer_leng=60000;(两声短)
buzzer_count=1;buzzer_leng=120000;(一声长)
/*******************************************************************/
void buzzer_task( buzzer_count,buzzer_leng)/*蜂鸣器;*/
unsigned char buzzer_count;
unsigned int buzzer_leng;
{
unsigned int count;
  for(;buzzer_count;)
  {
   CCPR1L=0X7F;
          CCP1CON=0X3C;
          PR2=0Xf9;//(4khz);f=1/(pr2+1*4]*T*t2
          T2CON=0X04;
          count=buzzer_leng;
   for(;count;)
   {
    count--;
   }
   buzzer_count--;
  }
  CCP1CON=0;
         RC2=0;
}
/*********************************************************************/

再来个BIBI叫的
/*******************************************************************
公司名称:
模块名称:BUZZER.c
功    能:蜂鸣器模块驱动2      
说    明:16CX无源4M晶振,4KHz;200ms输出;分频比1:256;
程序设计:FANZENGTING      
设计时间:2001.06.02        
版 本 号: 20010602
*******************************************************************/
#define BUZZER_OUT  RB0
#define BUZZER_IO  TRISB0
void buzzer(void)
{
unsigned int buzzercount=0;
BUZZER_IO=0;
RTCC=0;
for(;buzzercount<800;)
{
  CLRWDT( );
  if(RTCC==1)
  {
   BUZZER_OUT=BUZZER_OUT^1;
   RTCC=0;
  }
  buzzercount++;
}
        BUZZER_OUT=0;
}
/********************************************************************/

164
/*******************************************************************
公司名称:
模块名称:164.c
功    能:74ls164移位寄存器驱动      
说    明:
程序设计:FANZENGTING      
设计时间:2001.06.02        
版 本 号: 20010602
*******************************************************************/
#define SDA_164 RC4/*数据线*/
#define SCL_164 RC3/*时钟线*/
/********************************************/
send_164(unsigned char k )
{
unsigned char i;
  for(i=1; i<=8; i++)
  {
   SCL_164=0;
   if(k>=128)
   {
    SDA_164=1;
   }
   else
   {
    SDA_164=0;
   }
   SCL_164=1;
   k=k<<1;
  }
}      
/********************************************/  

a/d转换用做按键的
/*******************************************************************
公司名称:
模块名称:ad_key.c
功    能:用a/d转换的按键模块   
说    明: 上拉电阻为1k;5个按键分别为10k;4.7k;2k;1k;330欧
程序设计:FANZENGTING      
设计时间:2001.06.02        
版 本 号: 20010602
*******************************************************************/
bit key_bit;/*按键状态标志*/
/************************************************************************/
key(ADCON0_value,ADCON1_value )//按键
unsigned  char ADCON0_value;/*用来设定a/d通道及功能*/
unsigned  char ADCON1_value;/*用来设a/d转换引脚功能*/
{
unsigned  char key_value;/*键值*/
unsigned char ad_temp[5];
unsigned char loop;
    for(loop=1;loop<6;loop++)
    {
     ADCON1=ADCON1_value;
         ADCON0=ADCON0_value;
  #asm
         nop;
         nop;
         nop;
         nop;
         #endasm
         ADGO=1;
         for(;ADGO==1;)
         {
          #asm
          nop;
          #endasm
          CLRWDT( );
         }
         ad_temp[loop]=ADRES;
}
        key_value=(ad_temp[1]+ad_temp[2]+ad_temp[3]+ad_temp[4]+ad_temp[5])/5;
        if(key_value>=0xf0)
        {
         key_bit=0;/*无按键按下*/
         return;
        }
if(key_bit==0)
{
  key_bit=1;/*有按键按下*/
         if(key_value>=0xdd)/*10k欧电阻对应按键处理*/
         {
           return;
  }
/************************************************************************/
         if(key_value>=0xc0)/*4.7k欧电阻对应按键处理*/
         {
          return;
  }
/************************************************************************/
  if(key_value>=0x90)/*2k欧电阻对应按键处理*/
  {
   return;
         }
/************************************************************************/
         if(key_value>=0x70)/*1k欧电阻对应按键处理*/
         {
        return;
  }
/************************************************************************/
  if(key_value>=0x38)/*330欧电阻对应按键处理*/
  {
          return;
  }
        }
}
/*************************************************************************/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-28 03:02 , Processed in 0.051637 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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