日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

AVR单片机计算器C语言源程序,一个基于AVR单片机的计算器程序.doc

發(fā)布時(shí)間:2025/3/11 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AVR单片机计算器C语言源程序,一个基于AVR单片机的计算器程序.doc 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)基于AVR單片機(jī)的計(jì)算器程序

#include

#include//延時(shí)函數(shù)的頭文件

#include // 中斷函數(shù)的頭文件

#define uint unsigned int

#define uchar unsigned char

#define BIT(k) (1<

#define DI PORTC //夜晶的數(shù)據(jù)輸入端

#define No_key 255//沒有按鍵按下的返回值

#define key_port PORTD//鍵盤輸入

#define key_ddr DDRD

#define key_pin PIND //宏定義方便以后程序移植

#define lone_key_port PORTB //獨(dú)立鍵盤接口 用于輸入小數(shù)點(diǎn)

#define lone_key_ddr DDRB

#define lone_key_pin (PINB&BIT(0)) //讀取獨(dú)立鍵盤接口的電平

#define rs_0 PORTA&=~BIT(0) //RS復(fù)位

#define rs_1 PORTA|=BIT(0) //RS置位

#define en_0 PORTA&=~BIT(1) //使能端復(fù)位

#define en_1 PORTA|=BIT(1) //使能端置位

const uchar table1[]=" You are welcome!";//初始顯示字符

const uchar table2[]="ERROR!";//出錯(cuò)提示字符

uchar a[7]={0,0,0,0,0,0,0},b[11]={0,0,0,0,0,0,0},a1[5]={0,0,0,0,0},b1[5]={0,0,0,0,0}; //用來(lái)存儲(chǔ)輸入的兩個(gè)數(shù)字,位數(shù)不可超過(guò)10位

uchar aa,bb,cc,dd; //用來(lái)記數(shù)輸入的位數(shù)

uchar sym; //用來(lái)保存符號(hào)

uchar flag;//起動(dòng)標(biāo)志

uchar fuhao; //符號(hào)標(biāo)志

uchar deflag1 ; //小數(shù)點(diǎn)標(biāo)志

uchar deflag2 ; //小數(shù)點(diǎn)標(biāo)志

uchar overflag; //數(shù)值溢出標(biāo)志

uchar allowflag=1; //符號(hào)允許標(biāo)志,用于禁止連續(xù)兩個(gè)符號(hào)的輸出

uchar negative; //負(fù)數(shù)標(biāo)志,當(dāng)是負(fù)數(shù)要作相應(yīng)的處理

long temp3,temp4; //計(jì)算的數(shù)值 得數(shù)用其中一個(gè)變量存儲(chǔ)即可,不用再浪費(fèi)內(nèi)存開辟其他變量

float temp1, temp2;

const unsigned char key_table[16] =

{

7, 8, 9, 10,

4, 5, 6, 11,

1, 2, 3, 12,

50,0, 21,13

}; // 鍵盤編碼可根據(jù)具體情況而設(shè)定

void port_init();//端口初始化

void device_init(); //夜晶初始化

void time_init();//定時(shí)器初始化

void wright_com(uchar com); //夜晶寫指令函數(shù)

void wright_data(uchar date); //夜晶寫數(shù)據(jù)函數(shù)

void lcd_handle(uchar temp); //夜晶顯示處理,該顯示什么,不該顯示什么

uchar keyscan(); //鍵盤掃描

void judgechar(uchar t); //判斷字符為符號(hào)還是數(shù)字

void decimal(uchar de) ; //判斷是不是小數(shù)點(diǎn),只能出現(xiàn)兩個(gè)小數(shù)點(diǎn),且不能連續(xù)出現(xiàn)

void reset() ; //復(fù)位函數(shù)

void calculate(void); //對(duì)數(shù)值進(jìn)行計(jì)算

void result(long value); //顯示結(jié)果

void flow_clew() ; //溢出提示函數(shù)

int main()

{

port_init();

device_init();

time_init(); //初始化

while(

總結(jié)

以上是生活随笔為你收集整理的AVR单片机计算器C语言源程序,一个基于AVR单片机的计算器程序.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。