久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于51單片機的TLC5615電壓發生器

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年02月01日   【字體:
//本程序是基于51單片機的,可由矩陣鍵盤設置TLC5615 ad芯片要輸出的電壓值,
//并由1602液晶屏顯示輸入的電壓值.
//完整代碼下載: http://m.zg4o1577.cn/f/TLC56151602.rar 
//此程序測試成功,51hei版權所有,如果需要應用到你的項目中只需更改端口即可
#include "reg51.h"
#include"intrins.h"     //_nop_();延時函數用
#define uchar unsigned char
#define uint unsigned int
sbit CLK=P2^5;                 //三線控制
sbit DIN=P2^4;
sbit CS=P2^6;
sbit rs=P0^0;//命令/數據選擇
sbit rw=P0^1;//讀寫口
sbit e=P0^2; //鎖存控制
uchar data  dis1[15]={"output volt is:"};     //顯示兩行
uchar data  dis2[13]={".V"};
float vout;//系統輸出電壓
int shuzi;//給da數字量
int ge,shifen,baifen;//定義個位十分位百分位
unsigned int Data[10] = {0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039};
//延時函數
delay(uint z)
{
 uint i,j;
 for(i=0;i<z;i++)
 for(j=0;j<120;j++);
}
//鍵盤掃描函數
 saomiao (  )
{  
    unsigned char X,Y,Z;

 P3=0x0f;         //對P3置數進行行掃描
 if(P3!=0x0f)     //判斷是否有鍵按下
 {delay(40);      //延時去抖動,一般為5ms~10ms(由于機械觸點的彈性作用,按鍵在閉合時不會馬上穩定地接通,
                  //而在閉合瞬間伴隨有一連串的抖動,鍵抖動會引起一次按鍵被誤讀多次)
  if(P3!=0x0f)    //確認按鍵按下
 {
 X=P3;            //保存行掃描時有鍵按下時狀態
 P3=0xf0;         //列掃描
 Y=P3;            //保存列掃描時有鍵按下時狀態
  Z=X|Y;           //取出鍵值
return(Z);
} 
// 取值轉換
void fa5615(uint ad)
{
 uchar i;
 CS=0;//CS拉低,開始送轉換數值;
 _nop_();
 for(i=0;i<16;i++)
 {
  if((ad&0x8000)!=0)
  {DIN=1;}
  else
  {DIN=0;}
  CLK=1;
  _nop_();_nop_();
  CLK=0;
  ad=ad<<1
  _nop_();_nop_();
 }

CLK=0;
_nop_();_nop_();
CS=1;
}
//向LCD寫一命令
wcode(uchar t)
{
 rs=0;//寫的是命令
 rw=0;//寫狀態
 e=1;
 P1=t;
 delay(7);
 e=0;//數據的鎖定
}
//向LCD寫數據
wdata(uchar t)
{
 rs=1;//寫的是數據
 rw=0;//寫狀態
 e=1;
 P1=t;
 delay(7);
 e=0;//數據的鎖定
}
//功能:LCD顯示第一行
xian1()
{
  uchar i;


  wcode(0x81);   //設置第一行顯示地址

  for(i=0;i<15;i++)
    {
      wdata(dis1[i]);
    }
}


//************************************************************************************
//功能:LCD顯示第二行
//************************************************************************************

xian2()
{
   uchar i;

   wcode(0xc0);   //設置第二行顯示地址

   for(i=0;i<13;i++)
    {
      wdata(dis2[i]);
    }
}
//功能:LCD 初始化  InitLCD
//************************************************************************************
InitLCD()
   {
    
   wcode(0x01);   //清屏

   wcode(0x06);   //輸入方式控制

   wcode(0x0e);   //顯示開關控制

   wcode(0x38);   //功能設定:設置16x2顯示,5x7顯示,8位數據接口 
    
   } 
//功能:數據分離和顯示并給數據送DA輸出
fenxiaoout(float Vo)
{
 ge=Vo*100/100;//分離得到個位值
 shifen=Vo*100;
 shifen=shifen%100/10;//十分位
 baifen=Vo*100;
 baifen=baifen%100%10;//百分位
 wcoad(0xc4);//設置個位顯示地址
 wdata(Data[ge]);//顯示個位
 wcode(0xc5);//設置第二行中小數點的顯示地址
 wdata(dis2[0]);//顯示小數點
    wcode(0xc6);        //設置分位的顯示地址
 wdata(Data[shifen]);//顯示十分位
    wdata(Data[baifen]);//顯示百分位

    wcode(0xca);        //設置單位伏特V的顯示地址
    wdata(dis2[1]);  //顯示單位伏特"V"


 shuzi=(vout/4.92)*1024*4;
    fa5615(shuzi);

}  
 //解碼函數
uchar chuli(uchar tt)
{
  switch(tt)
  {
   case 0xee:
   {
   vout=vout+1.0;
   if(vout>4.5)vout=2.0;
   fenxianout(vout);
   return(0);
   break;
   }
   case 0xde:
   {
   vout=vout-1.0;
   if(vout<0) vout=2.0;
   fenxianout(vout);
   return(1);
   break;
   }
  
    
   case 0xbe:  
   {
   vout=vout+0.1;
   if(vout>4.5)vout=2.0;
   fenxianout(vout);

   return(2);
   break;
   } 

   case 0x7e:
   {

   vout=vout-0.1;
   if(vout<0) vout=2.0;
 
   fenxianout(vout);
   return(3);
   break;
   }
    
 
   default:{return(0x10);break;} 
  }
  
}
main()
{


   uchar kk=0xff;//鍵盤掃描返回碼11111111
 

   InitLCD();    //初始化1602

   vout=2.00;
   fenxianout(vout);
    

   xian1();        //顯示第一行   

 
  while(1)
   {
      
  kk=saomiao();     //掃描鍵盤
     chuli(kk); //按鍵處理
   
 
   }
}
關閉窗口

相關文章

主站蜘蛛池模板: 中文字幕二区 | 国产成人在线观看免费 | 一区二区三区精品视频 | 国产日韩一区二区 | 日韩福利 | 日本久草| 欧美成视频 | 在线播放亚洲 | 日本久久www成人免 成人久久久久 | 欧美一级免费 | 成人影院网站ww555久久精品 | 男女视频网站 | 有码在线 | 中文字幕在线不卡播放 | 久久精品a级毛片 | 国产精品久久久久久亚洲调教 | 亚洲成av| 成年免费大片黄在线观看岛国 | 欧美一a| 99久久久久久 | 91视频在线观看 | av网站在线免费观看 | 亚洲最大福利网 | 亚洲福利免费 | 在线播放一区 | 精品中文视频 | 日韩免费三级 | 国产精品亚洲片在线播放 | 久久久久久久久久爱 | 日韩视频在线一区 | 欧美日韩亚洲一区 | 国产日产精品一区二区三区四区 | 国产精品成人一区二区三区夜夜夜 | 日本精品视频在线观看 | 日韩欧美亚洲 | 日本久久视频 | 欧美簧片| 成人一区二区在线 | 91精品久久久久久久久久入口 | 在线视频一区二区三区 | 久久国产精品一区二区 |