① 下面是51單片機30秒倒計時程序,怎麼把它改成24小時倒計時程序,別的不變,十分感謝
#include "reg51.h"
sbit start=P3^2; //外部中斷0引腳 開始
sbit rst=P3^3; //外部中斷1引腳 復位
sbit breakk=P3^4;
sbit led=P3^5;
sbit beep=P3^7;
sbit P30=P3^0;
sbit P31=P3^1;
unsigned char code anma[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff
};
char time=24;//【原來的30s改為24小時】
char flag_t=0; // 1秒輔助計時
char now=0; // 0停止 1 計時 2報警 3復位
unsigned int temp=0;//【添加此行】// 【定義一個16位臨時變數】
unsigned char g=0,s=3,i=0;
void delay(unsigned int n)
{
while(--n);
}
void t0_srv() interrupt 1 using 1
{
TH0=0X3C;
TL0=0XB0;
flag_t++;
if(flag_t>=20){ //20*50ms=1s
flag_t=0;
temp++; //【添加此行】
if(temp>=3600)//1小時=3600s //【添加此行】
{
temp=0;//【添加此行】
time--;
if(time<=0){
beep=0;
led=0;
TR0=0;
now=2;
time=0;
}
}
}
}
void button_start() interrupt 0 using 1 //外部中斷0
{
delay(1500);
if(start==0) {
now=1;
TR0=1;
}
else return;
while(start==0);
delay(1500);
}
void button_rst() interrupt 2 using 1
{
delay(1500);
if(rst==0) {
TR0=0;
time=24;//【原為time=30;】
i=0;
led=1;
beep=1;
now=0;
}
else return;
while(rst==0);
delay(1500);
}
void disp()
{
g=time%10;
s=time/10;
g=anma[g];
s=anma[s];
P1=g;
P31=0;
delay(250);
P31=1;
P1=s;
P30=0;
delay(250);
P30=1;
//
}
void key()
{
if(breakk==0)delay(1500);
else return;
if(breakk==0) {
if(now==1){
i++;
if(i%2)TR0=0;
if(!(i%2))TR0=1;
}
}
else return;
while(breakk==0);
delay(1500);
}
main()
{
TMOD=0X01;//定時器0工作在方式1,
EA=1;
IT0=1;
ET0=1;
TH0=0X3C;//在12M 晶振下,定時時間為50ms
TL0=0XB0;
EX0=1;
EX1=1;
//TR0=1;
while(1){
disp();
key();
}
}
② 單片機,10000H-7DH怎麼計算的求詳細計算過程
1
2
3
51
單片機
C
語言程序(二)定時
/
計數器
中斷
程序一
利用定時
/
計數器
T0
從
P1.0
輸出周期為
1s
的方波,
讓發光二極體以
1HZ
閃爍,
#include<reg52.h>
//52
單片機頭文件
#include<intrins.h>//
包含有左右循環移位子函數的庫
#defineuintunsignedint
//
宏定義
#defineucharunsignedchar
//
宏定義
sbitP1_0=P1^0;
uchartt;
voidmain()
//
主函數
{
TMOD=0x01;//
設置定時器
0
為工作方式
1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//
開總中斷
ET0=1;//
開定時器
0
中斷
TR0=1;//
啟動定時器
0
while(1);//
等待中斷產生
}
單片機系統開發,2021最新報價!立即圍觀!
廣告單片機系統開發意法半導體包含廣泛產品線包含低成本8位單片機和具備豐富外設選擇的單片機系統開發單片機。查看詳情 >
voidtimer0()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==20)
{
tt=0;
P1_0=~P1_0;
}
}
程序二
利用定時
/
計數器
T1
產生定時時鍾
,
由
P1
口控制
8
個發光二極體
,
使
8
個指示燈依次一個一個閃動,
閃動頻率為
10
次
/
秒
(8
個燈依次亮一遍為一個周期
)
,循環。
#include<reg52.h>
//52
單片機頭文件
#include<intrins.h>//
包含有左右循環移位子函數的庫
#defineuintunsignedint
//
宏定義
#defineucharunsignedchar
//
宏定義
華清遠見c語言單片機,新手入門-實戰教學,嵌入式開發
廣告c語言單片機,華清遠見自主研發,軟硬體結合教學,畢業相當於擁有1-3年工作經驗。查看詳情 >
sbitP1_0=P1^0;
uchartt,a;
voidmain()
//
主函數
{
TMOD=0x01;//
設置定時器
0
為工作方式
1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//
開總中斷
ET0=1;//
開定時器
0
中斷
TR0=1;//
啟動定時器
0
a=0xfe;
while(1);//
等待中斷產生
}
voidtimer0()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==2)
{
tt=0;
網路安全OTA-專業,可靠的單片機ota,初創企業免費申領
廣告2萬台設備OTA額度面向初創企業【免費開放】,為企業降低OTA成本,提高設備安全系數。查看詳情 >
P1=a;
a=_crol_(a,1);
}
}
程序三
同時用兩個定時器控制蜂鳴器發聲,
定時器
0
控制頻率,定時器
1
控制同個
頻率持續的時間,間隔
2s
依次輸出
1
,
10
,
50,100
,
200,400,800,
1k
(
hz
)的方波
#include<reg52.h>
//52
單片機頭文件
#include<intrins.h>//
包含有左右循環移位子函數的庫
#defineuintunsignedint
//
宏定義
#defineucharunsignedchar
//
宏定義
sbitbeep=P2^3;
uchartt;
uintfre,flag;
voidmain()
//
主函數
{
fre=50000;
活字格-企業級低代碼開發平台,軟博會獲獎產品
廣告可視化設計,快速開發企業Web應用,幫助用戶快速構建支持移動端的企業級應用程序,滿足企查看詳情 >
beep=0;
TMOD=0x11;//
設置定時器
0,
定時器
1
為工作方式
1
TH0=(65536-fre)/256;
TL0=(65536-fre)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;//
開總中斷
ET0=1;//
開定時器
0
中斷
ET1=1;
TR1=1;
TR0=1;//
啟動定時器
0
while(1);//
等待中斷產生
}
voidtimer0()interrupt1
//
定時器
0
中斷
{
TR0=0;
//
進中斷後先把定時器
0
中斷關閉,防止內部程序過
多而造成中斷丟失
TH0=(65536-fre)/256;
TL0=(65536-fre)%256;
tt++;
if(flag<40)
//
以下幾個
if
分別用來選取不同的頻率
等,希望以上內容能對你有所幫助、。
③ gd32單片機id好解嗎
不太好解。
如果精通這方面應該容易,就是常說的會者不難難者不會。使用J-Link配合seggerj-link軟體中的Unsecure命令就很容易進行解除讀保護。打開JLink-commander,可以發現晶元,輸入mem0x1ffff80010,從0x1ffff800地址讀取10個位元組,如果讀出來的前兩個位元組全是FF的話說明晶元處於讀保護狀態。
單片機是典型的嵌入式微控制器,由運算器,控制器,存儲器,輸入輸出設備等構成,相當於一個微型的計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自供應(不用外接硬體)和節約成本。它的最大優點是體積小,可放在儀表內部,但存儲量小,輸入輸出介面簡單,功能較低。