久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
自動售水機代碼
[打印本頁]
作者:
17803856022
時間:
2020-10-8 19:22
標題:
自動售水機代碼
main.c
#include <STC15F2K60S2.h>
#include "intrins.h"
#include "iic.h"
#define uchar unsigned char
#define uint unsigned int
#define Y4 P2=(P2&0x1f)|0x80;
#define Y5 P2=(P2&0x1f)|0xa0;
#define Y6 P2=(P2&0x1f)|0xc0;
#define Y7 P2=(P2&0x1f)|0xe0;
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};
uchar yi,er,san,si,wu,liu,qi,ba;
uchar num;unsigned long int ml; uchar s;unsigned long int die;uchar g;
void allinit(void);
void Timer0Init(void);
void display1(uchar yi,uchar er);
void display2(uchar san,uchar si);
void display3(uchar wu,uchar liu);
void display4(uchar qi,uchar ba);
void keyscan();
void keyscan16();
void delayms(int ms) //延時函數(shù)
{
int i,j;
for(i=ms;i>0;i--)
for(j=845;j>0;j--);
}
void main()
{
allinit();
Timer0Init();
while(1)
{
keyscan(); //獨立按鍵
// keyscan16(); //矩陣按鍵
display1(10,0);
display2(5,0);
display3(wu,liu);
display4(qi,ba);
if(ml == 99990)
{
Y5;P0=0x00;
ET0=0;EA=0;
die=ml*5;
wu=die/100000;
liu=die%100000/10000;
qi=die%10000/1000;
ba=die%1000/100;
}
g=pcf8591(1);
if(g<64)
{Y4;P0=0xfe;}
if(g>=64)
{Y4;P0=0xff;}
}
}
void allinit(void)
{
Y5;P0=0x00; //關(guān)閉蜂鳴器和繼電器
Y6;P0=0xff; //打開數(shù)碼管位選
Y7;P0=0xff; //關(guān)閉數(shù)碼管段選
Y4;P0=0xff; //關(guān)閉led燈
}
void display1(uchar yi,uchar er) //數(shù)碼管顯示
{
Y6;P0=0x01;Y7;P0=tab[yi];delayms(1);
Y6;P0=0x02;Y7;P0=tab[er]&0x7f;delayms(1);
}
void display2(uchar san,uchar si)
{
Y6;P0=0x04;Y7;P0=tab[san];delayms(1);
Y6;P0=0x08;Y7;P0=tab[si];delayms(1);
}
void display3(uchar wu,uchar liu)
{
Y6;P0=0x10;Y7;P0=tab[wu];delayms(1);
Y6;P0=0x20;Y7;P0=tab[liu]&0x7f;delayms(1);
}
void display4(uchar qi,uchar ba)
{
Y6;P0=0x40;Y7;P0=tab[qi];delayms(1);
Y6;P0=0x80;Y7;P0=tab[ba];delayms(1);
}
void keyscan(void) //獨立按鍵處理
{
if(P30==0)
{
delayms(5);
if(P30==0)
{
wu=0;liu=0;qi=0;ba=0;
ET0=1;EA=1;
Y5;P0=0x10;
}while(!P30);
}
else if(P31==0)
{
delayms(5);
if(P31==0)
{
die=ml*5;
wu=die/100000;
liu=die%100000/10000;
qi=die%10000/1000;
ba=die%1000/100;
ET0=0;EA=0;
Y5;P0=0x00;
ml=0;
}while(!P31);
}
else if(P32==0)
{
delayms(5);
if(P32==0)
{
san=5;
}while(!P32);
}
else if(P33==0)
{
delayms(5);
if(P33==0)
{
si=6;
}while(!P33);
}
}
void keyscan16() //矩陣按鍵
{
uchar temp;
P44=0;P42=1;P3=0X7F;
temp=P3;
temp=temp&0X0F;
if(temp!=0x0f)
{
delayms(5);
temp=P3;
temp=temp&0X0F;
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0x7e: num=0;break;
case 0x7d: num=4;break;
case 0x7b: num=8;break;
case 0x77: num=12;break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp&0X0F;
}
}
}
P44=1;P42=0;P3=0XBF;
temp=P3;
temp=temp&0X0F;
if(temp!=0x0f)
{
delayms(5);
temp=P3;
temp=temp&0X0F;
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0xBe: num=1;break;
case 0xBd: num=5;break;
case 0xBb: num=9;break;
case 0xB7: num=13;break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp&0X0F;
}
}
}
P3=0XDF;P44=1;P42=1;
temp=P3;
temp=temp&0X0F;
if(temp!=0x0f)
{
delayms(5);
temp=P3;
temp=temp&0X0F;
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0xDe: num=2;break;
case 0xDd: num=6;break;
case 0xDb: num=10;break;
case 0xD7: num=14;break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp&0X0F;
}
}
}
P3=0XEF;P44=1;P42=1;
temp=P3;
temp=temp&0X0F;
if(temp!=0x0f)
{
delayms(5);
temp=P3;
temp=temp&0X0F;
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0xEe: num=3;break;
case 0xEd: num=7;break;
case 0xEb: num=11;break;
case 0xE7: num=15;break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp&0X0F;
}
}
}
}
void Timer0Init() //1毫秒@11.0592MHz
{
AUXR |= 0x80; //定時器時鐘1T模式
TMOD &= 0xF0; //設置定時器模式
TL0 = 0xCD; //設置定時初值
TH0 = 0xD4; //設置定時初值
TF0 = 0; //清除TF0標志
TR0 = 1; //定時器0開始計時
}
void timer0 () interrupt 1
{
s++;
if(s == 10)
{
s=0;
ml++;
wu=ml/10000;liu=ml%10000/1000;
qi=ml%1000/100;ba=ml%100/10;
}
}
復制代碼
iic.c
/*
程序說明: IIC總線驅(qū)動程序
軟件環(huán)境: Keil uVision 4.10
硬件環(huán)境: CT107單片機綜合實訓平臺 8051,12MHz
日 期: 2011-8-9
*/
#include "reg52.h"
#include "intrins.h"
#include "iic.h"
#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
#define SlaveAddrW 0xA0
#define SlaveAddrR 0xA1
//總線引腳定義
sbit SDA = P2^1; /* 數(shù)據(jù)線 */
sbit SCL = P2^0; /* 時鐘線 */
//總線啟動條件
void IIC_Start(void)
{
SDA = 1;
SCL = 1;
somenop;
SDA = 0;
somenop;
SCL = 0;
}
//總線停止條件
void IIC_Stop(void)
{
SDA = 0;
SCL = 1;
somenop;
SDA = 1;
}
//應答位控制
void IIC_Ack(bit ackbit)
{
if(ackbit)
{
SDA = 0;
}
else
{
SDA = 1;
}
somenop;
SCL = 1;
somenop;
SCL = 0;
SDA = 1;
somenop;
}
//等待應答
bit IIC_WaitAck(void)
{
SDA = 1;
somenop;
SCL = 1;
somenop;
if(SDA)
{
SCL = 0;
IIC_Stop();
return 0;
}
else
{
SCL = 0;
return 1;
}
}
//通過I2C總線發(fā)送數(shù)據(jù)
void IIC_SendByte(unsigned char byt)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(byt&0x80)
{
SDA = 1;
}
else
{
SDA = 0;
}
somenop;
SCL = 1;
byt <<= 1;
somenop;
SCL = 0;
}
}
//從I2C總線上接收數(shù)據(jù)
unsigned char IIC_RecByte(void)
{
unsigned char da;
unsigned char i;
for(i=0;i<8;i++)
{
SCL = 1;
somenop;
da <<= 1;
if(SDA)
da |= 0x01;
SCL = 0;
somenop;
}
return da;
}
uchar pcf8591(uchar add)
{
uchar dat;
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(add);
IIC_WaitAck();
IIC_Stop();
IIC_Start();
IIC_SendByte(0x91);
IIC_WaitAck();
dat=IIC_RecByte();
IIC_Stop();
return dat;
}
復制代碼
iic.h
#ifndef _IIC_H
#define _IIC_H
#define uchar unsigned char
#define uint unsigned int
//函數(shù)聲明
void IIC_Start(void);
void IIC_Stop(void);
void IIC_Ack(bit ackbit);
void IIC_SendByte(unsigned char byt);
bit IIC_WaitAck(void);
unsigned char IIC_RecByte(void);
uchar pcf8591(uchar add);
#endif
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产资源在线播放
|
风间由美一区二区三区在线观看
|
成人免费观看视频
|
色婷婷av99xx
|
日韩视频在线免费观看
|
一级欧美一级日韩片免费观看
|
伊人一二三
|
国产日韩欧美在线观看
|
亚洲视频中文
|
亚洲精品在线免费
|
国产资源视频
|
久久精品一
|
久久噜噜噜精品国产亚洲综合
|
国产精品观看
|
亚洲v日韩v综合v精品v
|
成人影院免费视频
|
伊人网91
|
欧美精品在线一区
|
日韩久久久久
|
国产精品久久久久久久久久久久久
|
日韩精品视频一区二区三区
|
国产探花在线观看视频
|
www.久久精品视频
|
国产清纯白嫩初高生视频在线观看
|
亚洲精品黄色
|
国产成人自拍一区
|
欧美激情久久久
|
国产一在线观看
|
妹子干综合
|
麻豆一区
|
成人妇女免费播放久久久
|
亚洲高清av在线
|
高清av一区
|
羞羞视频在线观看网站
|
狠狠操狠狠操
|
我我色综合
|
精品国产乱码久久久久久果冻传媒
|
国产1区2区
|
在线亚洲一区二区
|
亚洲国产精品99久久久久久久久
|
日韩乱码在线
|