兩位數碼管顯示按鍵的按下的次數,從0-99,按鍵按到99后下一次清零,適合剛接觸單片機的同學。內容包含keil+Proteus
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- /*兩位靜態數碼管顯示按鍵次數*/
- //頭文件
- #include "reg51.h"
- /* 定義 uint uchar */
- typedef unsigned int uint;
- typedef unsigned char uchar;
- uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
- 0x92,0x82,0xf8,0x80,0x90}; //0~9的數組 (共陽極)
- sbit key = P1^0; //定義按鍵
- void Delay_ms(uint z); //聲明延時函數
- void main(void) //主函數
- {
- uint i;
- while(1)
- {
- if(key == 0) //判斷按鍵是否按下
- {
- Delay_ms(10); //延時10ms
- if(key == 0) //再次判斷
- {
- i++; //按鍵次數
- while(key == 0); //判斷是否松開按鍵
- if(i == 100) i=0; //如果到達99,下一次回到0
- }
- }
- P2 = table[i/10]; //顯示十位
- P3 = table[i%10]; //顯示各位
- }
- }
- void Delay_ms(uint z) //延時函數
- {
- while(z--) //@12.000MHz
- {
- unsigned char i, j;
-
- i = 2;
- j = 239;
- do
- {
- while (--j);
- } while (--i);
- }
- }
復制代碼
所有資料51hei提供下載:
兩位靜態數碼管顯示獨立按鍵的次數.rar
(54.84 KB, 下載次數: 29)
2019-4-4 09:28 上傳
點擊文件名下載附件
有什么單片機的問題大家也可以留言評論!
|