久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于STC15F2K60S2單片機的stc-b單片機學習板實現導航按鍵測試
[打印本頁]
作者:
nmzmk
時間:
2017-8-9 15:04
標題:
基于STC15F2K60S2單片機的stc-b單片機學習板實現導航按鍵測試
使用頭文件如下:
**************************/
#include "STC15F2K60S2.H"
#include <intrins.h> //_cror_();
#define uint unsigned int
#define ulint unsigned long
#define uchar unsigned char
#define ADC_FLAG 0x10
/**************************
引腳別名定義如下:
**************************/
sbit SEL0 = P2^0;
sbit SEL1 = P2^1;
sbit SEL2 = P2^2;
sbit LED_SEL = P2^3;
/**************************
定義變量如下:
**************************/
uint global = 0;
uint date_h = 0;
ulint sum = 0;
uint x = 0;
uint y = 0;
uchar seg_flag;
//0123456789-
char duanxuan[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//選擇哪一位數碼管
uchar weixuan[] = {0x00,0x06,0x07};
//初始化系統
void InitSYS(){
//P0口推挽輸出,用于給數碼管和發光二極管增加電流
P0M1 = 0x00;
P0M0 = 0xff;
//P2.3(即LED_SEL),P2.2,P2.1為推挽輸出
P2M1 = 0x00;
P2M0 = 0x0E;
seg_flag = 0;
TMOD = 0x00; //定時器0,工作方式1;
EA = 1; //打開總中斷;
TH0 = (65535-1000)/256; //定時器初值 定時大約1mS
TL0 = (65535-1000)%256;
ET0 = 1; //打開定時中斷;
TR0 = 1; //啟動定時器;
}
//初始化ADC
void InitADC()
{
P1ASF = 0x80; //P1.7作為A/D使用
ADC_RES = 0; //清零ADC結果寄存器
ADC_CONTR = 0X8F; //打開ADC電源 540個時鐘周期轉換一次 選擇P1.7作為A/D輸入來用
CLK_DIV = 0X00; //ADRJ = 0 ADC_RES存放高八位結果
EADC = 1; //允許ADC中斷
PADC = 1; //ADC中斷優先級為1
}
//顯示高三位和低五位
void HighThree()
{
x = date_h&0xE0; //將八位轉換結果的低五位清零
x = _cror_(x,5); //將高三位移到低三位 獲取高三位數值
y = date_h&0x1F; //將八位轉換結果的高三位清零
}
void timer0() interrupt 1 {
seg_flag++;
if(seg_flag==4)
seg_flag = 0;
P0 = 0x00;
switch(seg_flag) {
case 0:
LED_SEL = 0; //選擇數碼管顯示
P2 = weixuan[seg_flag];
P0 = duanxuan[x]; //顯示ADC轉換結果高三位的十進制值
break;
case 1:
LED_SEL = 0; //選擇數碼管顯示
P2 = weixuan[seg_flag];
P0 = duanxuan[y/10]; //顯示ADC轉換結果低五位的十進制值的高位
break;
case 2:
LED_SEL = 0; //選擇數碼管顯示
P2 = weixuan[seg_flag];
P0 = duanxuan[y%10]; //顯示ADC轉換結果低五位的十進制值的低位
break;
case 3:
LED_SEL = 1; //選擇發光二極管顯示
P0=date_h;
break;
}
}
//AD中斷
void adc_isr() interrupt 5
{
IE=0x00; //關閉所有中斷,防止數據沒有采集完就進入新的中斷
ADC_CONTR&=~0X10; //將ADC_FLAG位清零
global++;
if(global>1000) //將采集1000次后的數據求出平均值
{
date_h=(sum+500)/1000;//四舍五入
HighThree(); //獲取轉換結果高三位和低五位
global=0;
sum=0;
}
sum+=ADC_RES;
ADC_CONTR|=0X08; //將ADC_START進行軟件置位
IE=0xa2; //開啟中斷
}
void main() //主函數
{
InitSYS();
InitADC();
while(1)
;
}
作者:
nmzmk
時間:
2017-8-21 19:26
我猜你是湖大的
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产91丝袜在线播放
|
精精国产xxxx视频在线播放
|
国产精品毛片在线
|
久久无毛
|
最新黄色在线观看
|
日日摸日日碰夜夜爽2015电影
|
亚洲精品一区二区
|
视频一区在线观看
|
日韩精品一区二区三区视频播放
|
欧美三级电影在线播放
|
成人在线视频一区二区三区
|
一区亚洲
|
www.久久久久久久久
|
国产成人av免费看
|
亚洲国产成人在线视频
|
操操日
|
欧美日韩视频在线
|
久久精品国产亚洲
|
五月天国产视频
|
国产精品永久免费视频
|
日批免费观看
|
亚洲国产一区二区三区,
|
久久综合伊人
|
女人精96xxx免费网站p
|
色久电影
|
国产精品久久久久国产a级 欧美日韩国产免费
|
国产精品免费一区二区三区
|
午夜精品影院
|
国产精品美女一区二区
|
免费黄色大片
|
人人鲁人人莫人人爱精品
|
日韩色在线
|
一区二区在线不卡
|
色啪网
|
亚洲视频欧美视频
|
国产精品爱久久久久久久
|
国产精品伦一区二区三级视频
|
91国内精品久久
|
日本一区二区高清不卡
|
亚洲成人福利在线观看
|
欧美专区日韩专区
|