/*
*功能:開關(guān)key1控制實(shí)現(xiàn)每按一次,數(shù)碼管數(shù)字加1,實(shí)現(xiàn)00-99的循環(huán)
*開關(guān)key2實(shí)現(xiàn)隨時(shí)清零
*/
QQ截圖20190519105201.png (49.14 KB, 下載次數(shù): 34)
下載附件
2019-5-19 10:52 上傳
- #include<reg52.h>
- sbit SEG1 = P1^0; //定義顯示十位的數(shù)碼管
- sbit SEG2 = P2^0; //定義顯示個(gè)位的數(shù)碼管
- sbit key1 = P3^2; //定義實(shí)現(xiàn)數(shù)碼管加1的開關(guān)key1
- sbit key2 = P3^3; //定義實(shí)現(xiàn)清零的開關(guān)key2
- typedef unsigned int uint;
- uint i,j;
- uint sum = 0;
- unsigned char code DSY_CODE[] = {0xC0,0xF9,0xA4,
- 0xB0,0x99,0x92,
- 0x82,0xF8,0x80,0x90}; //共陽極數(shù)碼管
- void display(uint i,uint j); //數(shù)碼管顯示函數(shù)
- void main()
- {
- IE = 0X85;
- IT0 = 1;
- IT1 = 1;
- while(1)
- {
- display(i,j);
- }
-
- }
- void EX0_INT(void) interrupt 0 // 外部中斷0,實(shí)現(xiàn)按鍵按一下數(shù)碼管數(shù)字加一
- {
- sum++;
- }
- void EX1_INT(void) interrupt 2//外部中斷1,實(shí)現(xiàn)清零
- {
- sum = 0;
- }
- void display(uint i,uint j) //數(shù)碼管顯示數(shù)字
- {
- i = sum/10; //數(shù)碼管顯示十位數(shù)字
- j = sum%10; //數(shù)碼管顯示個(gè)位數(shù)字
- if(sum == 100)
- sum = 0;
- P1 = DSY_CODE[i];
- P2 = DSY_CODE[j];
- }
復(fù)制代碼
|