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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

ATMEGA16驅(qū)動(dòng)內(nèi)部EEPROM程序

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年11月07日   【字體:

// 8MHZ晶體 在ATMEGA16上運(yùn)行
// 顯示效果:顯示按鍵設(shè)定數(shù)字
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#pragma data:code           
const uchar table[]="I LIKE AVR !";
const uchar table1[]="WWW*FUMANCHE*COM";
const uchar table_num[]="01234567890";

void delay(uint ms)//延時(shí)
{
        uint i,j;
    for(i=0;i<ms;i++)
       {
       for(j=0;j<1142;j++);
       }
}
void write_com(uchar com) //寫指令
{
       PORTD&=~BIT(4);
       PORTD&=~BIT(5);
       PORTC=com;
       PORTD|=BIT(6);
       delay(1);
       PORTD&=~BIT(6);
}

void write_dat(uchar dat) //寫數(shù)據(jù)
{    
       PORTD|=BIT(4);
       PORTD&=~BIT(5);
       PORTC=dat;
       PORTD|=BIT(6);
       delay(1);
       PORTD&=~BIT(6);
}

/*EEPROM讀取函數(shù)*/
/*addr:地址;number:長(zhǎng)度;p_buff:讀出數(shù)據(jù)存放指針*/

void eprom_read(unsigned int addr, unsigned char number, unsigned char *p_buff)
{

    while(EECR & (1 << EEWE));

    EEARH = 0x00;

    while(number --)
       {
        EEARL = addr ++;
        EECR |= (1 << EERE);
        *p_buff++ = EEDR;
        }
}
/*EEPROM寫入函數(shù)*/
/*addr:地址;number:長(zhǎng)度;p_buff:寫入數(shù)據(jù)存放指針*/

void eprom_write(unsigned int addr, unsigned char number, unsigned char *p_buff)
{

    EEARH = 0x00;

    while(number --) {
        while(EECR & (1 << EEWE));
        EEARL = addr ++;
        EEDR = *p_buff ++;
        EECR |= (1 << EEMWE);
        EECR |= (1 << EEWE);
        }
}

void main()
{

    uchar i;
    uchar bai,shi,ge,temp;
DDRB = 0xf0; //PB口低四位設(shè)為輸入
PORTB = 0x0f; //PB口低四位上拉電阻使能
    DDRC=0XFF;        //液晶端口設(shè)定為輸出
    DDRD|=BIT(4)|BIT(5)|BIT(6);

    delay(250);        //加入延時(shí),避免影響干擾下一句
    PORTD&=~BIT(6);    

    write_com(0X38);   //液晶初始化
    delay(5);
    write_com(0X01);    //顯示清屏
    delay(5);
    write_com(0X0C);   //開顯示
    delay(5);
//    write_com(0X0F); //顯示光標(biāo)并閃爍
//    delay(5);
   delay(250);                    //啟動(dòng)延時(shí)
      eprom_read(0x10, 0x01, &temp);//讀出記錄

while(1)
{
    if(PINB==0x0e)          //PB0按鍵檢測(cè)
{
   delay(250);                    //啟動(dòng)延時(shí)
      eprom_read(0x10, 0x01, &temp);//讀出記錄
      temp++;                        //刷新記錄
      eprom_write(0x10, 0x01, &temp);//寫入記錄
}
    while(PINB==0x0e);       //當(dāng)按鍵始終按下時(shí)等待

if(PINB==0x0d)              //PB1按鍵檢測(cè)
{
   delay(250);                    //啟動(dòng)延時(shí)
      eprom_read(0x10, 0x01, &temp);//讀出記錄
      temp--;                        //刷新記錄
      eprom_write(0x10, 0x01, &temp);//寫入記錄
}
while(PINB==0x0d);


       delay(5);
       ge=temp%10;
       shi=temp%100/10;
       bai=temp/100;
       write_com(0X80+0X06);//數(shù)據(jù)起始指針設(shè)置--重新設(shè)置為這個(gè)地址開始存放數(shù)據(jù)           
       write_dat(table_num[bai]);
       delay(5);
       write_dat(table_num[shi]);
       delay(5);
       write_dat(table_num[ge]);
       delay(5);

    write_com(0X80+0X40);//數(shù)據(jù)起始指針設(shè)置
    delay(5);
    for(i=0;i<16;i++) //循環(huán)13次顯示內(nèi)容
    {
         write_dat(table1[i]);
        delay(5);
    }
/*
    for(i=0;i<16;i++)    //循環(huán)16次從LCD屏幕左邊一直顯示到右邊
    {
         write_com(0X1c);
        delay(500);
    }
*/

   }  
}
//本程序通過驗(yàn)證,運(yùn)行穩(wěn)定!

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 国产伦精品一区二区三区照片91 | 欧美成人一区二区 | 欧美精品乱码99久久影院 | 韩国精品一区二区三区 | 欧美日韩一区二区视频在线观看 | 欧美在线激情 | 亚洲伊人久久综合 | 国产成人精品一区二 | 国内精品久久久久久久影视简单 | 欧美性大战久久久久久久蜜臀 | 久久久91精品国产一区二区三区 | 久久久久国产精品午夜一区 | 色综合久 | 久久久2o19精品 | 久久久久国产精品一区二区 | 精品不卡| 国产在线观看免费 | 亚洲精品永久免费 | 伊人狠狠 | 黄a在线播放 | av电影手机版 | 中文天堂网 | 欧美一区二区三区视频在线 | 久久久噜噜噜久久中文字幕色伊伊 | 自拍偷拍第1页 | 国产精品永久免费 | 欧美精品一区二区三区四区五区 | 日韩一区二区在线看 | 黄色成人在线观看 | 99久久精品免费看国产四区 | 欧美日韩中文字幕在线播放 | av黄色在线 | 日日夜夜精品视频 | 在线视频成人 | 亚洲精品中文字幕在线观看 | 国产成人在线观看免费 | 久草.com| 玖玖操| 久久久久久久久久久福利观看 | 91久久看片 | 久久久久久久网 |