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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2988|回復: 5
收起左側

按鍵控制1-9的加減循環 和STC單片機內部存儲功能怎么實現

[復制鏈接]
ID:517505 發表于 2019-4-22 13:12 | 顯示全部樓層 |閱讀模式
100黑幣
現在程序可以實現 1加操作到9  和9減到1  
怎么樣才可以把他改成 1加到9 如果再按加變成1    和 9減到1 再按減變回9
和 怎么可以把當前顯示的數 存儲到 內部寄存器EEPROM里面
單片機型號 STC 89C52
1-9.png
#include<reg52.h>
sbit k1=P3^6;
sbit k2=P3^7;



void delay(unsigned char i)
{
     unsigned char j,k,x;
         for(k=0;k<i;k++)
         for(j=0;j<255;j++)
         for(x=0;x<25;x++);
}
unsigned char smg[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};              //數碼管顯示1-9


unsigned a;
                                                         
                                       
void key1()
{   
  a=0;                                                                        
        while(1)

        
        {
        if(k1==0)                        //檢測按鍵是否按下
  {
  delay(5);                               //延時消抖
  if(k1==0)                              //再次檢測按鍵是否按下
        {
                while(!k1);               //檢測按鍵是否彈起
    if(a<8)     
                        a++;              //加操作
          }        
        
         

          }
        if(k2==0)                         //檢測按鍵是否按下
        {
                delay(5);                  //延時消抖
                if(k2==0)                 //再次檢測按鍵是否按下
                {
                        while(!k2);          //檢測按鍵是否彈起
                        if(a>0)
                                a--;            //減操作
                }
        }
                              //1234

        P2=smg[a];      //數碼管顯示
}         

}






void main()
{        
        while(1)
        {
                key1();
                  
        
        }               
}







兩個按鍵控制1-9的循環加減.zip

62.17 KB, 下載次數: 9

最佳答案

查看完整內容

為什么沒有從9減到0,而是1? 如果可以減到0,就可以這樣: if (a>200) a=9;//這個200的意思是:你的變量設置為unsigned char類型,當a=0時,再減1,就是負,但變量沒有負,就是255了,就大于200了。 if (a>9) a=0
回復

使用道具 舉報

ID:164602 發表于 2019-4-22 13:12 | 顯示全部樓層
Gchang 發表于 2019-4-22 21:34
試了 你的 方法 //加操作 成功了  //減操作 1再減 亂碼了

為什么沒有從9減到0,而是1?
如果可以減到0,就可以這樣:
if (a>200) a=9;//這個200的意思是:你的變量設置為unsigned char類型,當a=0時,再減1,就是負,但變量沒有負,就是255了,就大于200了。
if (a>9) a=0
回復

使用道具 舉報

ID:509408 發表于 2019-4-22 17:02 | 顯示全部樓層

if(++a>9)   a = 1;   //加操作
if(--a<1)     a = 9;   //減操作
回復

使用道具 舉報

ID:320663 發表于 2019-4-22 17:14 | 顯示全部樓層
if(a<8)       a++;
改成
a++;
if(a>9)a=1
回復

使用道具 舉報

ID:517505 發表于 2019-4-22 21:34 | 顯示全部樓層
tzs233 發表于 2019-4-22 17:02
if(++a>9)   a = 1;   //加操作
if(--a

試了 你的 方法 //加操作 成功了  //減操作 1再減 亂碼了



回復

使用道具 舉報

ID:517505 發表于 2019-4-23 15:03 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2019-4-23 08:19
為什么沒有從9減到0,而是1?
如果可以減到0,就可以這樣:
if (a>200) a=9;//這個200的意思是:你的變 ...

這方法可以 存儲當前數值 怎么解決 看了 好多EEPROM 的 教程 還是不懂
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩免费一区二区 | 91原创视频在线观看 | 色偷偷噜噜噜亚洲男人 | 国产一区二区三区在线视频 | 欧美三级不卡 | 国产精品福利在线观看 | 久久99精品久久久久久秒播九色 | 伊人色综合久久久天天蜜桃 | 91麻豆蜜桃一区二区三区 | 久久综合久久久 | av中文字幕网 | 国产精品一区一区三区 | 国产不卡在线观看 | 天天操天天射综合网 | 免费观看一级特黄欧美大片 | 久久噜| 国产精品久久久久久久久久久久冷 | 国产视频福利一区 | 午夜精品久久久久久久久久久久久 | 久久九精品 | 久久99精品久久久久子伦 | 亚洲欧美综合精品另类天天更新 | 一区二区三区韩国 | 亚洲午夜精品一区二区三区他趣 | 欧美视频在线播放 | 日韩免费一区二区 | 人妖av | 日日操夜夜操天天操 | 少妇一级淫片aaaaaaaaa | 日韩中文一区二区三区 | 欧美日韩亚 | 欧美一级免费看 | 亚洲精品乱码久久久久久蜜桃91 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 伊人狠狠 | 特级特黄特色的免费大片 | 久久国产精品网站 | 在线精品一区二区三区 | 不卡的av在线 | 亚洲精品一区二区三区中文字幕 | 国产欧美精品 |