欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1884|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

如何補全這avr單片機程序,還要有按鍵檢測、延時去抖,等待抬起等環(huán)節(jié)。需要怎么補?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:713870 發(fā)表于 2020-3-23 10:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源程序如下:

#include <iom16v.h>

#define  uint unsigned int

void delay10ms(void)
{
uint t;
for( t=0;t<1360;t++);
}

void main(void)
{
    SFIOR&=0xFB;
        DDRA = 0x00;                                                /*A口輸入*/
        PORTA = 0xFF;                                                /*A口上拉*/
    DDRB = 0xFF;                                                /*B口輸出*/
        PORTB = 0xFF;                                                /*LED全滅*/
        DDRC = 0xFF;
        PORTC = 0xFF;
        DDRD = 0x00;
        PORTD = 0xFF;

        while (1) {
                if ((PINA & (1 << PA0)) == 0)
                   {        
                      delay10ms();
                          if ((PINA & (1 << PA0)) == 0)
                          while((PINA & (1 << PA0)) == 0);//??????   
                          PORTB = ~(1 << PB0);                /*?????*/
                        }
                if ((PINA & (1 << PA1)) == 0)
                    {
                         delay10ms();
                         if ((PINA & (1 << PA1)) == 0)
                         while((PINA & (1 << PA1)) == 0);//??????
                         PORTB = ~(1 << PB1);
                        }
                if ((PINA & (1 << PA2)) == 0)
                   {
                     delay10ms();
                         if ((PINA & (1 << PA2)) == 0)
                         while((PINA & (1 << PA2)) ==0);//??????  
                        PORTB = ~(1 << PB2);
                        }
                if ((PINA & (1 << PA3)) == 0)
                   {
               
               
               
                        PORTB = ~(1 << PB3);
                        }
                if ((PINA & (1 << PA4)) == 0)
                    {
                        
                        PORTB = ~(1 << PB4);
                        }
                if ((PINA & (1 << PA5)) == 0)
                   {
                  
                        PORTB = ~(1 << PB5);
                        }
                if ((PINA & (1 << PA6)) == 0)
                    {
                        
                        PORTB = ~(1 << PB6);
                        }
                if ((PINA & (1 << PA7)) == 0)
                   {
                  
                        PORTB = ~(1 << PB7);
                        }
                }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:191511 發(fā)表于 2020-3-23 14:13 | 只看該作者
如果是初學(xué)者,建議先學(xué)51,因為51的IO口配置很簡單,讀寫IO的值和位操作的方便性、可操作性都是單片機里最省事的,同時51的例子網(wǎng)上也有好多,便于脫開51硬件去學(xué)習(xí)外圍電路的使用(編程)。
回復(fù)

使用道具 舉報

板凳
ID:191511 發(fā)表于 2020-3-23 14:16 | 只看該作者
教科書式的按鍵檢測一般是這樣的
if(某個按鍵按下)
     {
          表達(dá)式;
          while(按鍵按下) ;
回復(fù)

使用道具 舉報

地板
ID:21069 發(fā)表于 2020-3-23 14:52 | 只看該作者
建議你買一塊AVR的板子回來練,光自己整是折磨,板子才不到100,再或者用仿真軟件練,網(wǎng)上面很多AVR的案子,先搞定AVR的端口,其他的同51差別不大
回復(fù)

使用道具 舉報

5#
ID:316880 發(fā)表于 2020-3-23 15:24 | 只看該作者
wo4fisher 發(fā)表于 2020-3-23 14:16
教科書式的按鍵檢測一般是這樣的
if(某個按鍵按下)
     {

用   while(按鍵按下) ;  做判斷延時真的不好,如果有數(shù)碼管是閃
回復(fù)

使用道具 舉報

6#
ID:473159 發(fā)表于 2020-3-23 15:56 | 只看該作者
很簡單,壇子里大把的代碼,多練練手你就明白怎么做了
回復(fù)

使用道具 舉報

7#
無效樓層,該帖已經(jīng)被刪除
8#
ID:687694 發(fā)表于 2020-3-23 18:35 | 只看該作者
動手碼上缺失的代碼,然后調(diào)試。就這么補。
回復(fù)

使用道具 舉報

9#
ID:21069 發(fā)表于 2020-3-23 19:35 | 只看該作者
余生不負(fù) 發(fā)表于 2020-3-23 15:24
用   while(按鍵按下) ;  做判斷延時真的不好,如果有數(shù)碼管是閃

錯!就看你將顯示函數(shù)放在什么地方
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表