代碼如下所示,
創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為甘井子等服務(wù)建站,甘井子等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為甘井子企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
#include
#include
#include
int main()
{
double x, y; // 定義函數(shù)的自變量、因變量,考慮到可能有小數(shù)的情況,設(shè)置數(shù)值類型為double型
int getBuff; // 用于最后清空輸入緩沖區(qū)殘留,了解即可
printf("請(qǐng)輸入自變量x的值(一個(gè)數(shù)字):\n");
scanf("%lf",x); // 輸入自變量的一個(gè)值
if(x-2)
y = 7-2*x;
else if(x=-2 x3)
y = 5 - fabs(3*x+2); // 注意,對(duì)浮點(diǎn)型數(shù)值取絕對(duì)值,要用fabs()函數(shù)
else
y = 3*x+4;
printf("自變量x為%lf時(shí),對(duì)應(yīng)的函數(shù)值y是:%lf\n",x,y);
while(getBuff=getchar()!='\n' getBuff!=EOF); // 清空輸入緩沖區(qū)殘留,了解即可
printf("按回車(chē)鍵結(jié)束...");
getchar();
return 0;
}為了避免手機(jī)上查看時(shí),代碼版式錯(cuò)亂,代碼的截圖如下,
如有幫助,煩請(qǐng)采納,謝謝!
外部中斷的常用功能
外部中斷經(jīng)常用來(lái)記錄外部脈沖的個(gè)數(shù),也就是當(dāng)我們使用外部中斷1時(shí),如果想記錄自身單片機(jī)的某個(gè)引腳的下降沿個(gè)數(shù),只需用杜邦線把這個(gè)引腳和P3.3連接即可。
比如P2.3引腳產(chǎn)生這樣的電平無(wú)規(guī)律跳轉(zhuǎn),則下降沿的個(gè)數(shù)為5
所以我們就用外部中斷1來(lái)實(shí)現(xiàn)記錄K4按鍵從按下到松手的抖動(dòng)過(guò)程中經(jīng)歷了多少個(gè)下降沿,把下降沿的個(gè)數(shù)顯示在數(shù)碼管上。
2.程序思路
我們定義一個(gè)16位的全局變量pulse用來(lái)記錄P2.3下降沿的個(gè)數(shù),在中斷函數(shù)中的任務(wù)就是簡(jiǎn)單的pulse自加,因?yàn)橐_遇到下降沿就會(huì)進(jìn)入中斷函數(shù)。
在主函數(shù)里就是負(fù)責(zé)數(shù)碼管顯示即可。
3.代碼#include?
#include?//詳見(jiàn)第六章第8講
u16?pulse=0;
void?main()
{
u16?x,PULSE_buf;
IT1?=?1;???//下降沿觸發(fā)模式
EX1?=?1;
EA??=?1;
LED_Init();//初始化LED硬件模塊
KEY_Init();//初始化按鍵功能模塊
ShowNumber(pulse);
while(1)
{
SEG_Scan();
if(PULSE_buf!=pulse)ShowNumber(pulse);//pulse不再是前一次的值,也就是pulse數(shù)值更新了,所以數(shù)碼管緩存區(qū)也要更新pulse的數(shù)值以便顯示出來(lái)
x++;
if(x=50)//隔一段時(shí)間過(guò)來(lái)記錄此時(shí)的pulse數(shù)值
{
x=0;
PULSE_buf=pulse;
}
}
}
//請(qǐng)把P3.3和P2.3用杜邦線連接起來(lái)
void?EXTI1_IRQHandler()?interrupt?2
{
pulse++;
}
大家多按幾次K4,發(fā)現(xiàn)按下后松手的一個(gè)動(dòng)作里有時(shí)pulse就自加了幾次,顯示在數(shù)碼管上的數(shù)加了好幾下。
形式如下:
void 中斷名(void) inerrupt 中斷號(hào) using 工作寄存器組
比如外部中斷0
void ext0(void) interrupt 0 using 1 //后面的using 1可以省略,缺省為0
定時(shí)器1
void t1isr() interrupt 3
擴(kuò)展資料:
單片機(jī)內(nèi)部結(jié)構(gòu)
1、CPU
它的名字沒(méi)有改,還是稱為CPU(Central Processing Unit)。它是單片機(jī)的核心部件,包括運(yùn)算器和控制器。
運(yùn)算器既是算術(shù)邏輯單元ALU(Arithmetic logic Unit),其功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。
控制器一般由指令寄存器、指令譯碼器、時(shí)序電路和控制電路組成。其作用是完成取指令、將指令譯碼形成各種微操作并執(zhí)行指令,同時(shí)控制計(jì)算機(jī)的各個(gè)部件有條不紊地工作。
2、單片機(jī)內(nèi)部結(jié)構(gòu)之一ROM
“硬盤(pán)”,改了名字,稱為程序存儲(chǔ)器,也叫只讀存儲(chǔ)器。用ROM(Read only memery)表示。其作用和計(jì)算機(jī)的硬盤(pán)差不多,用來(lái)存放用戶編寫(xiě)的程序。特點(diǎn)是:掉電后不會(huì)丟失數(shù)據(jù)(程序)。
首先你要寫(xiě)中斷函數(shù)
然后在主程序中像調(diào)用子函數(shù)一樣調(diào)用就可以了
舉個(gè)例子吧
#define uchar unsigned char
#define uchar unsigned char
sbit D1=P1^0;
uchar aa;
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
while(1)
{
if(aa==20)
{
D1=~D1;
aa=0;
}
}
}
void T0time()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
新聞名稱:c語(yǔ)言斷函數(shù) c語(yǔ)言中斷函數(shù)程序
文章來(lái)源:http://muchs.cn/article44/dohohhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、云服務(wù)器、商城網(wǎng)站、網(wǎng)站營(yíng)銷、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容